html_validation 0.0.1 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -11,6 +11,7 @@ end
11
11
 
12
12
  gem 'rdoc'
13
13
  gem 'thor'
14
+ gem 'open3'
14
15
 
15
16
  # Unix Rubies (OSX, Linux)
16
17
  platform :ruby do
data/README.rdoc CHANGED
@@ -78,7 +78,7 @@ On linux/OS X machines, confirm the right installation path shows up with: whic
78
78
  in the data_folder. Typically this is the default folder: spec/.validation.
79
79
  After a validation fails, run the thor task to accept or reject validation exceptions.
80
80
 
81
- From your project's root folder, run: thor validation:review
81
+ From your project's root folder, run: validation review
82
82
 
83
83
  Note, if you configure an alternate data_folder, you may pass it as an option
84
84
  to the Thor task.
@@ -1,5 +1,9 @@
1
- #!/usr/bin/env thor
2
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'html_validation'))
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'thor'
5
+ require 'html_validation'
6
+
3
7
 
4
8
  class Validation < Thor
5
9
  include PageValidations
@@ -24,4 +28,6 @@ class Validation < Thor
24
28
  end
25
29
  $stdout.puts "HTML Validation Acceptance completed"
26
30
  end
27
- end
31
+ end
32
+
33
+ Validation.start
@@ -9,9 +9,9 @@ Gem::Specification.new do |gem|
9
9
  gem.homepage = "https://github.com/ericbeland/html_validation"
10
10
 
11
11
  gem.files = `git ls-files`.split($\)
12
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
12
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
13
  gem.name = "html_validation"
15
14
  gem.require_paths = ["lib"]
15
+ gem.executables = ['validation']
16
16
  gem.version = PageValidations::HTML_VALIDATOR_VERSION
17
17
  end
@@ -1,8 +1,5 @@
1
- require 'html_validation'
2
1
 
3
- # This is a sample matcher for use with Rspec and Capybara.
4
- # https://github.com/jnicklas/capybara
5
- # keep this in spec/support/matchers
2
+
6
3
  module PageValidations
7
4
 
8
5
  class HaveValidHTML
@@ -1,4 +1,6 @@
1
1
  require 'open3'
2
+ require File.join(File.dirname(__FILE__), '..', 'html_validation')
3
+
2
4
 
3
5
  class HTMLValidationResult
4
6
  attr_accessor :resource, :html, :exceptions
@@ -0,0 +1,61 @@
1
+
2
+
3
+ module PageValidations
4
+
5
+ class HTMLValidation
6
+
7
+ # The data_folder is where we store our output. options[:tidyopts], which defaults to "-qi"
8
+ # can be used to override the command line options to html tidy. On *nix, man tidy to see
9
+ # what else you might use for this string instead of "-qi", however "-qi" is probably what
10
+ # you want 95% of the time.
11
+
12
+ # You may also pass :ignore_proprietary => true as an option to suppress messages like:
13
+ # line 1 column 176 - Warning: <textarea> proprietary attribute "wrap"
14
+ # line 1 column 176 - Warning: <textarea> proprietary attribute "spellcheck"
15
+
16
+ # It may be useful to pass a subfolder in your project as the data_folder, so your
17
+ # HTML Validation status and validation results are stored along with your source.
18
+ def initialize(folder_for_data = nil, options = {})
19
+ self.data_folder = folder_for_data || default_result_file_path
20
+ @options = options
21
+ end
22
+
23
+ # For each stored exception, yield an HTMLValidationResult object to allow the user to
24
+ # call .accept! on the exception if it is OK.
25
+ def each_exception
26
+ Dir.chdir(@data_folder)
27
+ Dir.glob("*.exceptions.txt").each do |file|
28
+ if File.open(File.join(@data_folder, file), 'r').read != ''
29
+ yield HTMLValidationResult.load_from_files(file.gsub('.exceptions.txt',''))
30
+ end
31
+ end
32
+ end
33
+
34
+ def validation(html, resource)
35
+ resource_data_path = File.join(@data_folder, filenameize(resource))
36
+ HTMLValidationResult.new(resource, html, resource_data_path, @options)
37
+ end
38
+
39
+ def data_folder=(path)
40
+ FileUtils.mkdir_p(path)
41
+ @data_folder = path
42
+ end
43
+
44
+ def default_result_file_path
45
+ posix = RbConfig::CONFIG['host_os'] =~ /(darwin|linux)/
46
+ rootpath = Rails.root if defined?(Rails)
47
+ rootpath ||= HTMLValidationMatcher.data_path if HTMLValidationMatcher.data_path
48
+ rootpath ||= posix ? '/tmp/' : "c:\\tmp\\"
49
+ File.join(rootpath, '.validation')
50
+ end
51
+
52
+ private
53
+
54
+ # Takes a url or filepath qne trims and sanitizes it for use as a filename.
55
+ def filenameize(path)
56
+ path.gsub!(/www.|^(http:\/\/|\/|C:\\)/, '')
57
+ path.gsub(/[^0-9A-Za-z.]/, '_')
58
+ end
59
+
60
+ end
61
+ end
@@ -1,3 +1,3 @@
1
1
  module PageValidations
2
- HTML_VALIDATOR_VERSION = "0.0.1"
2
+ HTML_VALIDATOR_VERSION = "0.4.1"
3
3
  end
@@ -18,65 +18,8 @@
18
18
 
19
19
  require 'rbconfig'
20
20
 
21
- require File.expand_path(File.join(File.dirname(__FILE__), 'html_validation/html_validation_result'))
22
- require File.expand_path(File.join(File.dirname(__FILE__), 'html_validation/html_validation_matcher'))
23
21
 
24
- module PageValidations
25
-
26
- class HTMLValidation
27
-
28
- # The data_folder is where we store our output. options[:tidyopts], which defaults to "-qi"
29
- # can be used to override the command line options to html tidy. On *nix, man tidy to see
30
- # what else you might use for this string instead of "-qi", however "-qi" is probably what
31
- # you want 95% of the time.
32
-
33
- # You may also pass :ignore_proprietary => true as an option to suppress messages like:
34
- # line 1 column 176 - Warning: <textarea> proprietary attribute "wrap"
35
- # line 1 column 176 - Warning: <textarea> proprietary attribute "spellcheck"
36
-
37
- # It may be useful to pass a subfolder in your project as the data_folder, so your
38
- # HTML Validation status and validation results are stored along with your source.
39
- def initialize(folder_for_data = nil, options = {})
40
- self.data_folder = folder_for_data || default_result_file_path
41
- @options = options
42
- end
43
22
 
44
- # For each stored exception, yield an HTMLValidationResult object to allow the user to
45
- # call .accept! on the exception if it is OK.
46
- def each_exception
47
- Dir.chdir(@data_folder)
48
- Dir.glob("*.exceptions.txt").each do |file|
49
- if File.open(File.join(@data_folder, file), 'r').read != ''
50
- yield HTMLValidationResult.load_from_files(file.gsub('.exceptions.txt',''))
51
- end
52
- end
53
- end
54
-
55
- def validation(html, resource)
56
- resource_data_path = File.join(@data_folder, filenameize(resource))
57
- HTMLValidationResult.new(resource, html, resource_data_path, @options)
58
- end
59
-
60
- def data_folder=(path)
61
- FileUtils.mkdir_p(path)
62
- @data_folder = path
63
- end
64
-
65
- def default_result_file_path
66
- posix = RbConfig::CONFIG['host_os'] =~ /(darwin|linux)/
67
- rootpath = Rails.root if defined?(Rails)
68
- rootpath ||= HTMLValidationMatcher.data_path if HTMLValidationMatcher.data_path
69
- rootpath ||= posix ? '/tmp/' : "c:\\tmp\\"
70
- File.join(rootpath, '.validation')
71
- end
72
-
73
- private
74
-
75
- # Takes a url or filepath qne trims and sanitizes it for use as a filename.
76
- def filenameize(path)
77
- path.gsub!(/www.|^(http:\/\/|\/|C:\\)/, '')
78
- path.gsub(/[^0-9A-Za-z.]/, '_')
79
- end
80
-
81
- end
82
- end
23
+ require File.expand_path(File.join(File.dirname(__FILE__), 'html_validation/page_validations'))
24
+ require File.expand_path(File.join(File.dirname(__FILE__), 'html_validation/html_validation_result'))
25
+ require File.expand_path(File.join(File.dirname(__FILE__), 'html_validation/html_validation_matcher'))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html_validation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,13 +9,14 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-16 00:00:00.000000000 Z
12
+ date: 2013-04-05 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: HTML Validation lets you validate html locally. Lets you build html validation
15
15
  into your test suite, but break the rules if you must.
16
16
  email:
17
17
  - ebeland@gmail.com
18
- executables: []
18
+ executables:
19
+ - validation
19
20
  extensions: []
20
21
  extra_rdoc_files: []
21
22
  files:
@@ -27,14 +28,14 @@ files:
27
28
  - LICENSE.txt
28
29
  - README.rdoc
29
30
  - Rakefile
30
- - VERSION
31
+ - bin/validation
31
32
  - html_validation.gemspec
32
33
  - lib/html_validation.rb
33
34
  - lib/html_validation/have_valid_html.rb
34
35
  - lib/html_validation/html_validation_matcher.rb
35
36
  - lib/html_validation/html_validation_result.rb
37
+ - lib/html_validation/page_validations.rb
36
38
  - lib/html_validation/version.rb
37
- - lib/tasks/validation.thor
38
39
  - spec/html_validator_matcher_spec.rb
39
40
  - spec/html_validator_spec.rb
40
41
  - spec/spec_helper.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.1