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 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
+ }