Remove single quotes from DuplicateProperty output

- By using ' in the linter, the XML formatter will produce invalid XML,
  since single-quotes are used for strings in the XML
- Replacing the single-quote with ` fixes this issue and ensures valid XML
  output

Change-Id: If5691a5b680e274cbc319d06ae90f88037821f1a
Reviewed-on: http://gerrit.causes.com/36031
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add Ruby 2.1.0 testing in TravisCI

We've technically supported this for a while, but let's make it
official.

Change-Id: Iee4191deca9b2677d5116374581f63cd53a32ec5
Reviewed-on: http://gerrit.causes.com/36032
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Update gem description

SCSS lint is now configurable, so use that as an adjective instead of
"opinionated".

Change-Id: I82b4004b7d1c84bedaf08220af31158b4cb7b397
Reviewed-on: http://gerrit.causes.com/36034
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add Overcommit configuration file

Enable Gerrit change ID hook.

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

Change-Id: I86713ef4afb12efc2f1f69e1ec7d21669cc13117
Reviewed-on: http://gerrit.causes.com/36033
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Make property order configurable in SortedProperties

Change-Id: I9eee1d858590a32fb710bad1d3f7e7d865f0919e
Reviewed-on: http://gerrit.causes.com/36069
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Order unspecified properties at the end

Previously the `SortedProperties` linter would prefer unspecified
properties to be ordered at the beginning. Since this doesn't really
align with the purpose of specifying an explicit order, change it to
order them at the end.

Change-Id: I168517747c1391055626b2d3da6650df54b64e09
Reviewed-on: http://gerrit.causes.com/36070
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Update SortedProperties documentation

Elaborate on the behavior of the `SortedProperties` linter when the
`order` option is specified.

Change-Id: I8b50f272e3733c3a363fa794f544259911db326b
Reviewed-on: http://gerrit.causes.com/36071
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Rename SortedProperties to PropertySortOrder

The `SortedProperties` linter is an old name that doesn't match our
current convention of describing the "thing" the linter is checking.
Change it.

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

Change-Id: I880737a863abedc581891ce01d921ac5f557a2e6
Reviewed-on: http://gerrit.causes.com/36073
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add second `exclude` value in readme example

In #87 it became apparent that our documentation is not clear enough in
regards to how to exclude multiple things. This commit attempts to
clarify that some by adding to the example in the readme.

Change-Id: Ia6706dfbb0106ebcebfff99f393e16b89c26fa1d
Reviewed-on: http://gerrit.causes.com/36074
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add YARD files to .gitignore

The doc directory contains the compiled YARD documentation, which can
exist after running:

  yard doc

The .yardoc directory is used by the YARD server, which can exist after
running:

  yard server

or:

  yard server --reload

In either case, we don't want these in our repo. Our YARD documentation
is being hosted by rdoc.info:

  http://rdoc.info/github/causes/scss-lint/master/frames

Change-Id: Ia873b7c114eb699b29baace2f68a11e00d8568dd
Reviewed-on: http://gerrit.causes.com/36076
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add link to rdoc.info documentation

This website hosts compiled YARD documentation. Although there isn't
much YARD in this project yet, this documentation serves as a good
starting point to build off of.

At the same time, I set up a Github service hook to automatically
regenerate the documentation at rdoc.info every time a new commit is
pushed to master.

The documentation can be found at:

  http://rdoc.info/github/causes/scss-lint/master/frames

Change-Id: I371ac87488dc14321c86c9cf680b28dfa5c5c9de
Reviewed-on: http://gerrit.causes.com/36075
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add YARD to CLI, Lint, Linter, and Runner

I find code much more easy to work with when the argument datatypes and
return value datatypes for each method are clearly specified. This
commit attempts to add that documentation via YARD tags to a few of the
classes. I'm not entirely sure I got everything correct, but it seems
like a pretty good start.

While I was at it, I aligned some code to improve readability.

Change-Id: I8ca68c5e05ec53a07497a94c12eade15c251b97c
Reviewed-on: http://gerrit.causes.com/36105
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Fix Rubocop lint in gemspec

Switch from using `$:` to `$LOAD_PATH`, which is much more readable.

Change-Id: Ibd13032cee0f4428c1c5cbeebff3053083423241
Reviewed-on: http://gerrit.causes.com/36106
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Clean up gemspec

Align and reorder some fields to make it easier to read.

Change-Id: I9241ac257e205178c555558c6a1e23459c9fcd10
Reviewed-on: http://gerrit.causes.com/36107
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add support for -moz-osx vendor prefix

Since Firefox 25 the vendor prefix `-moz-osx` is supported:
https://bugzilla.mozilla.org/show_bug.cgi?id=857142#c83

Add support for this vendor prefix to the `PropertySortOrder` linter.

Change-Id: Ib5b328bad6d2403dfe5fdf05debf188f0225282b
Reviewed-on: http://gerrit.causes.com/36110
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Update Sass dependency from 3.3.0.rc.1 -> 3.3.0

Sass 3.3.0 has finally been released, so update our dependency to use
that version. We can't support anything before this version going
forward due to the monkey-patching we employ and the fact that we are
highly dependent on the new source map support included in 3.3.0.

In order to get the specs to pass, the following changes were made:

 * Class methods `node_name` and `visit_method` were dynamically defined
   for all Sass::Script::Value and Sass::Script::Tree types

 * `SpaceAfterComma` linter had its `check_commas_after_args`
   implementation changed to scan outwards from the end of the source
   range to find the comma (since the Sass parser was unpredictable in
   where it would consider the end of the source range)

 * `ZeroUnit` linter implementation was changed to check the original
   source for units, since the parser now seems to strip units when the
   value is zero

Closes #81, #89

Change-Id: I8b9c02a6de36d92ba6be0d3d0f509192da64334a
Reviewed-on: http://gerrit.causes.com/36133
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Fix source_from_range for single lines

The `source_from_range` helper was incorrect since it returned the
entire line for single-line ranges, even if the end position was not the
end of the line.

In the process, this revealed two specs that were incorrectly coded.
They previously assumed that a lint could be reported for strings with
interpolation. We actually can't check if a string with interpolation
will have characters that justify single or double quotes (for example,
the string "hello #{"'" + 'world' + "'"}" should not report a lint, but
with the specs as written this would be expected to report a lint).

Change the behavior to fix this bug.

Change-Id: I1432ea1e423421ee5e882bfd10ab7a677347bcbb
Reviewed-on: http://gerrit.causes.com/36134
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>
Add basic Rubocop configuration

Copied from the Overcommit repository.

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