css_validator 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/Rakefile +20 -3
- data/css_validator.gemspec +1 -1
- data/lib/css_validator.rb +3 -3
- data/spec/fixtures/invalid_css/1.css +1 -3
- data/spec/fixtures/valid_css/1.css +3 -0
- data/vendor/csslint-rhino.js +9651 -0
- data/vendor/js.jar +0 -0
- metadata +12 -12
- data/spec/fixtures/invalid_css/2.css +0 -1
- data/vendor/css-validator.jar +0 -0
- data/vendor/lib/commons-collections-3.2.1.jar +0 -0
- data/vendor/lib/commons-lang-2.6.jar +0 -0
- data/vendor/lib/htmlparser-1.2.1.jar +0 -0
- data/vendor/lib/jigsaw.jar +0 -0
- data/vendor/lib/tagsoup-1.2.jar +0 -0
- data/vendor/lib/velocity-1.7.jar +0 -0
- data/vendor/lib/xercesImpl.jar +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c88186e16bb12ede012f688d59039d59db05c6d8
|
4
|
+
data.tar.gz: bb0e22aa6502c3215c613fb1e2a6894e634ca884
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fe2a790534678405e67758bfa2ece9766daea3287b4dc7963499ab8151c4f74edd8155d73a9350fc2672631d07bd8a73aa551c2aa216e4c7fb8a517ae6516dd
|
7
|
+
data.tar.gz: e90a399cb3016be36165b3da679a170776ce1207a6574eb0e92cf46b698980e681c52ecbcefecb65d8cdd6ebf39b16ac8c9d92e8e1414f71cf881c4f5f43f412
|
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# CSS Validator
|
2
2
|
|
3
|
-
This uses the `
|
4
|
-
So, your system requires `java` to use this gem.
|
3
|
+
This uses the `csslint.js` with `js.jar` from [CSSLint](https://github.com/CSSLint/csslint) to validate CSS in ActiveModel.
|
4
|
+
So, your system requires `java` to use this gem. And, it also works fine on Heroku.
|
5
5
|
|
6
6
|
## Usage
|
7
7
|
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
|
4
4
|
desc "Run specs"
|
@@ -6,5 +6,22 @@ RSpec::Core::RakeTask.new do |t|
|
|
6
6
|
t.pattern = 'spec/**/*_spec.rb'
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
task :
|
9
|
+
desc "Download csslint jar and js file from Github"
|
10
|
+
task :download_csslint do
|
11
|
+
vendor_dir = 'vendor'
|
12
|
+
mkdir(vendor_dir) unless File.directory? vendor_dir
|
13
|
+
|
14
|
+
host_url = 'https://raw.github.com/CSSLint/csslint'
|
15
|
+
dependencies = [ "#{host_url}/master/lib/js.jar", "#{host_url}/master/release/csslint-rhino.js" ]
|
16
|
+
dependencies.each do |dependency|
|
17
|
+
puts "Downloading #{dependency}..."
|
18
|
+
|
19
|
+
file_name = File.basename(dependency)
|
20
|
+
|
21
|
+
File.open("#{vendor_dir}/#{file_name}", "w") do |file|
|
22
|
+
file.write open(dependency).read
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
task default: [ :spec ]
|
data/css_validator.gemspec
CHANGED
data/lib/css_validator.rb
CHANGED
@@ -3,7 +3,7 @@ require 'active_model'
|
|
3
3
|
require 'active_model/validations'
|
4
4
|
|
5
5
|
class CssValidator < ActiveModel::EachValidator
|
6
|
-
|
6
|
+
VENDOR_DIR = File.join(File.expand_path('../..', __FILE__), 'vendor')
|
7
7
|
|
8
8
|
def validate_each(record, attribute, value)
|
9
9
|
java_path = `which java`.rstrip
|
@@ -16,10 +16,10 @@ class CssValidator < ActiveModel::EachValidator
|
|
16
16
|
css_file.write(value)
|
17
17
|
css_file.close
|
18
18
|
|
19
|
-
cmd = "#{java_path} -jar #{
|
19
|
+
cmd = "#{java_path} -jar #{VENDOR_DIR}/js.jar #{VENDOR_DIR}/csslint-rhino.js --quiet #{css_file.path}"
|
20
20
|
Open3.popen3(cmd) do |stdin, stdout, stderr|
|
21
21
|
result = stdout.read
|
22
|
-
if result =~ /
|
22
|
+
if result =~ /error/
|
23
23
|
record.errors.add attribute, (options[:message] || 'is invalid')
|
24
24
|
end
|
25
25
|
end
|