Add DuplicateRoot linter

Closes #109

Change-Id: I8f7a16aadfff132385cd18fcbe03050f0f97d63f
Reviewed-on: http://gerrit.causes.com/37417
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Clean up DuplicateRoot code and docs

Minor code style tweaks and rewording of documentation.

Change-Id: If7bcd1c0962bc41114964c5d4e398b84c7532f88
Reviewed-on: http://gerrit.causes.com/37418
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Fix DuplicateRoot handling of subtrees

There was a bug where the `DuplicateRoot` linter would suggest merging
rules declared within nested subtrees with root rules, e.g.

    p { ... }

    @include some-mixin {
      p { ... } // This gets flagged as a duplicate of above
    }

Fix this by adding stub implementations for the various subtree node
types so we don't recurse into them.

Change-Id: I7c55cae3949d85dfa306f7cf2f65fe66b292d262
Reviewed-on: http://gerrit.causes.com/37419
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add EditorConfig with whitespace conventions

Change-Id: Ib939fa72b593812a54188fd49984d2cbac710a79
Reviewed-on: http://gerrit.causes.com/37424
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Cut version 0.23.0

Change-Id: I306e7bcd0f70462bf2246952dbef9cfcc6700275
Reviewed-on: http://gerrit.causes.com/37433
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
disable UselessAccessModifier cop

Change-Id: I9283e0806529a4576afe055a424ac1f2c9631ff9
Reviewed-on: http://gerrit.causes.com/37446
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Disable RegexpLiteral cop

Change-Id: Ic811b277b6e675583582ac98da9d1e035942c39c
Reviewed-on: http://gerrit.causes.com/37447
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Use \ instead of << to concatenate those strings

Change-Id: I945b2eec287ec79d68bdc9bc2b25f502a7b6374c
Reviewed-on: http://gerrit.causes.com/37448
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Use the new Ruby 1.9 hash syntax

Change-Id: Id850e9ccc280b7304f0b769b8ad731d73e394431
Reviewed-on: http://gerrit.causes.com/37449
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Exclude file from Eval cop

This cop is usefull, but in this case there is no (easy) way without
eval.

Change-Id: I3ba8cd46f020873a9d7367c6238bc3d895fbb026
Reviewed-on: http://gerrit.causes.com/37450
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Disable HandleExceptions cop for known cases

Change-Id: Idc423abbcc7a9a7b190b69cd7b63d057fb6bee0b
Reviewed-on: http://gerrit.causes.com/37451
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Do not prefix writer method names with set_

It may not be perfect, but with this workarount rubocop is happy and the
code is still readable.

Change-Id: I18ab6a032eda47ded6e3de660355efddd6ccbfc4
Reviewed-on: http://gerrit.causes.com/37452
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Enable DotPosition cop

since Ruby 1.8.7 is no longer supported there is no need to disable this

Change-Id: I5a3382ce1f38423d5ffd34d71345b86e7de3f27e
Reviewed-on: http://gerrit.causes.com/37454
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Minor cleanup for inject call

Change-Id: If1757c51ebf69a601ea3d6281d43c103450671c3
Reviewed-on: http://gerrit.causes.com/37455
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Disable Encoding cop for now

the cop forces UTF-8 comment for all files (even with only ASCII
characters) - will try to improve this in rubocop and then the cop can
be reenabled

Change-Id: Ie072ea84167ee25adb6fa9115e15786d7a79e936
Reviewed-on: http://gerrit.causes.com/37456
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Fix SpaceAfterPropertyColon for semicolon-less properties

Change-Id: Ife115f7c00dcaf515793e48ade28010f6affeb8f
Reviewed-on: http://gerrit.causes.com/37457
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Don't try to combine roots in Keyframes

Fixes #138

Change-Id: I56f13dd1fb9a0e0017e511d10880d315bd7e7548
Reviewed-on: http://gerrit.causes.com/37458
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Update changelog with DuplicateRoot keyframes fix

Change-Id: I13fb6635aefc90309d5652b31b3c0cd828dfb499
Reviewed-on: http://gerrit.causes.com/37460
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add Rubocop checks to Travis CI run

Ensure that future changes do not add new offences.

For this all existing offences need to be disabled for now, and have to
be solved step by step.

Change-Id: Ie9b3c557a1d5ce3a47e16ad71686ce7567b02650
Reviewed-on: http://gerrit.causes.com/37453
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Cut version 0.23.1

Change-Id: Ibc87ef6289494abe8ce1e7189ffd462d6068c3f1
Reviewed-on: http://gerrit.causes.com/37463
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>