Skip to content

Commit

Permalink
bears/css: Add AutoPrefixBear
Browse files Browse the repository at this point in the history
This bear uses PostCSS plugin autoprefixer to add
vendor prefixes to CSS rules.

Fixes coala#280
  • Loading branch information
mr-karan committed Mar 22, 2016
1 parent 884b26f commit 7720a73
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 0 deletions.
18 changes: 18 additions & 0 deletions bears/css/CSSAutoPrefixBear.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from coalib.bearlib.abstractions.Lint import Lint
from coalib.bears.LocalBear import LocalBear


class CSSAutoPrefixBear(Lint, LocalBear):
executable = "postcss"
arguments = "--use autoprefixer {filename}"
prerequisite_command = ['postcss', '--use', 'autoprefixer']
prerequisite_fail_msg = "Autoprefixer is not installed."
diff_message = "Add vendor prefixes to CSS rules."
gives_corrected = True

def run(self, filename, file):
'''
This bear adds vendor prefixes to CSS rules using ``autoprefixer``
utility.
'''
return self.lint(filename, file)
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
{
"dependencies": {
"alex": "~2.0.1",
"autoprefixer": "~6.3.4",
"bootlint": "~0.14.2",
"coffeelint": "~1.14.2",
"complexity-report": "~2.0.0-alpha",
"csslint": "~0.10.0",
"dockerfile_lint": "~0.0.9",
"eslint": "~2.3.0",
"jshint": "~2.9.1",
"postcss-cli": "~2.5.1",
"remark": "~3.2.3",
"tslint": "~3.5.0"
}
Expand Down
22 changes: 22 additions & 0 deletions tests/css/CSSAutoPrefixBearTest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from bears.css.CSSAutoPrefixBear import CSSAutoPrefixBear
from tests.LocalBearTestHelper import verify_local_bear


good_file = """
.example {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
""".splitlines(keepends=True)

bad_file = """
.example {
display: flex;
}
""".splitlines(keepends=True)

CSSAutoPrefixBear = verify_local_bear(CSSAutoPrefixBear,
valid_files=(good_file,),
invalid_files=(bad_file,))

0 comments on commit 7720a73

Please sign in to comment.