css_validator 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80f97ca610e810853f305d79c2c44ce14ee523fc
4
- data.tar.gz: b05352c7fe8a508185de7d137e128fe3b66c57ef
3
+ metadata.gz: c88186e16bb12ede012f688d59039d59db05c6d8
4
+ data.tar.gz: bb0e22aa6502c3215c613fb1e2a6894e634ca884
5
5
  SHA512:
6
- metadata.gz: 0038dfe753e6a87f64f4fe3378b2e6568d4b72746557cd12577b5629faac9b6cb616532c580194e47010f7c6d4eca8ed6fef2a585a2fc52b1af7086594a220af
7
- data.tar.gz: dbfd43c1d94b07362ccacfe68e59cd8bbed045a2c3ae63a8e51630150fcdd19493ac89d118d6f67695722eb2534913febe706bdbd9326be78c91faaaa45febbd
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 `css-validator.jar` from [W3C](http://jigsaw.w3.org/css-validator/DOWNLOAD.html) to validate CSS in ActiveModel.
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 "bundler/gem_tasks"
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
- task :default => [:spec]
10
- task :build => [:spec]
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 ]
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "css_validator"
3
- s.version = "1.0.0"
3
+ s.version = "2.0.0"
4
4
  s.authors = ["Teng Siong Ong"]
5
5
  s.email = ["siong1987@gmail.com"]
6
6
  s.homepage = "https://github.com/siong1987/css_validator"
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
- VALIDATOR = File.join(File.expand_path('../..', __FILE__), 'vendor', 'css-validator.jar')
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 #{VALIDATOR} -output text -profile css3 'file:#{css_file.path}'"
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 =~ /found the following errors \((\d+)\)/
22
+ if result =~ /error/
23
23
  record.errors.add attribute, (options[:message] || 'is invalid')
24
24
  end
25
25
  end
@@ -1,3 +1 @@
1
- #valid {
2
- margin: invalid;
3
- }
1
+ alert("javascript injection");
@@ -0,0 +1,3 @@
1
+ #valid {
2
+ margin: invalid;
3
+ }