html_acceptance 0.1.5 → 0.1.7
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.
- data/VERSION +1 -1
- data/html_acceptance.gemspec +1 -1
- data/lib/html_acceptance.rb +13 -7
- data/spec/html_acceptance_spec.rb +28 -7
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.7
|
data/html_acceptance.gemspec
CHANGED
data/lib/html_acceptance.rb
CHANGED
@@ -5,8 +5,9 @@
|
|
5
5
|
# to alert you to changes in your html's validity so you can fix them, or barring that, review and accept
|
6
6
|
# errors and warnings.
|
7
7
|
|
8
|
-
# ==
|
9
|
-
# When calling the validation routine, a path, or URL is passed.
|
8
|
+
# ==Resource paths
|
9
|
+
# When calling the validation routine, a path, or URL is passed. This is used internally to name
|
10
|
+
# the resulting validation output files.
|
10
11
|
|
11
12
|
# NOTE: HTMLAcceptance never retreives html or reads in files *for* you. It doesn't read files, or call
|
12
13
|
# passed URL's. The purpose of passing a resource path is to give the test a name which saved exceptions
|
@@ -21,16 +22,20 @@ require 'html_acceptance/html_acceptance_result'
|
|
21
22
|
class HTMLAcceptance
|
22
23
|
|
23
24
|
|
24
|
-
# The
|
25
|
+
# The data_folder is where we store our output. options[:tidyopts], which defaults to "-qi"
|
25
26
|
# can be used to override the command line options to html tidy. On *nix, man tidy to see
|
26
|
-
# what else you might use for this string instead of
|
27
|
+
# what else you might use for this string instead of "-qi", however "-qi" is probably what
|
28
|
+
# you want 95% of the time.
|
29
|
+
|
30
|
+
# It may be useful to pass a subfolder in your project as the data_folder, so your
|
31
|
+
# html acceptance status and validation results are stored along with your source.
|
27
32
|
def initialize(data_folder, options={})
|
28
33
|
@data_folder = data_folder
|
29
34
|
@options=options
|
30
35
|
end
|
31
36
|
|
32
|
-
#
|
33
|
-
# accept the exception
|
37
|
+
# For each stored exception, yield an HTMLAcceptanceResult object to allow the user to
|
38
|
+
# call .accept! on the exception if it is OK.
|
34
39
|
def each_exception
|
35
40
|
Dir.chdir(@data_folder)
|
36
41
|
Dir.glob("*.exceptions.txt").each do |file|
|
@@ -47,8 +52,9 @@ class HTMLAcceptance
|
|
47
52
|
|
48
53
|
private
|
49
54
|
|
55
|
+
# take a url or filepath, trim and sanitize it for use as a filename
|
50
56
|
def filenameize(path)
|
51
|
-
path.gsub!(/www.|^(http:\/\/|\/|C
|
57
|
+
path.gsub!(/www.|^(http:\/\/|\/|C:\\)/, '')
|
52
58
|
path.gsub(/[^0-9A-Za-z.]/,'_')
|
53
59
|
end
|
54
60
|
|
@@ -2,13 +2,9 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
|
2
2
|
|
3
3
|
describe "HtmlAcceptance" do
|
4
4
|
|
5
|
-
def tmp_path
|
6
|
-
is_windows=(RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)
|
7
|
-
is_windows ? 'c:\temp\validation' : '/tmp/validation'
|
8
|
-
end
|
9
|
-
|
10
5
|
before(:each) do
|
11
|
-
FileUtils.mkdir
|
6
|
+
FileUtils.mkdir tmp_path if !File.exists?('/tmp/validation')
|
7
|
+
clean_dir(tmp_path)
|
12
8
|
@h=HTMLAcceptance.new('/tmp/validation')
|
13
9
|
end
|
14
10
|
|
@@ -60,7 +56,7 @@ describe "HtmlAcceptance" do
|
|
60
56
|
result=@h.validator(bad_html, "http://notmysite.com").valid?.should be_false
|
61
57
|
end
|
62
58
|
|
63
|
-
it "should not pass different exception" do
|
59
|
+
it "should not pass a different non-accepted exception" do
|
64
60
|
result=@h.validator(bad_html, "http://mycoolsite.com")
|
65
61
|
result.accept!
|
66
62
|
e1=result.exceptions
|
@@ -76,6 +72,20 @@ describe "HtmlAcceptance" do
|
|
76
72
|
result.exceptions.include?("were found!").should be_false
|
77
73
|
end
|
78
74
|
|
75
|
+
|
76
|
+
it "should yeild exception results" do
|
77
|
+
@h=HTMLAcceptance.new('/tmp/validation', :tidy_opts=>"-e")
|
78
|
+
result=@h.validator("<html>foo", 'c:\evencooler.com\somesite.html')
|
79
|
+
had_exceptions=false
|
80
|
+
@h.each_exception do |e|
|
81
|
+
had_exceptions=true
|
82
|
+
e.is_a?(HTMLAcceptanceResult).should be_true
|
83
|
+
(e.resource.length > 0).should be_true
|
84
|
+
(e.html.length > 0).should be_true
|
85
|
+
end
|
86
|
+
had_exceptions.should be_true
|
87
|
+
end
|
88
|
+
|
79
89
|
private
|
80
90
|
|
81
91
|
def bad_html
|
@@ -86,4 +96,15 @@ describe "HtmlAcceptance" do
|
|
86
96
|
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><title>the title</title></head><body><p>a paragraph</body></html>'
|
87
97
|
end
|
88
98
|
|
99
|
+
def tmp_path
|
100
|
+
is_windows=(RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)
|
101
|
+
is_windows ? 'c:\temp\validation' : '/tmp/validation'
|
102
|
+
end
|
103
|
+
|
104
|
+
# clean our temp dir without killing it
|
105
|
+
def clean_dir(dir)
|
106
|
+
Dir.chdir(dir)
|
107
|
+
Dir.glob('*').each {|f| FileUtils.rm(f) }
|
108
|
+
end
|
109
|
+
|
89
110
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: html_acceptance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 21
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 7
|
10
|
+
version: 0.1.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Eric Beland
|