bbc_mobile_standards 0.0.1

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/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in bbc_mobile_standards.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+ RSpec::Core::RakeTask.new(:spec)
4
+ task :default => :spec
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "bbc_mobile_standards/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "bbc_mobile_standards"
7
+ s.version = BBCMobileStandards::VERSION
8
+ s.authors = ["Matthew Crouch"]
9
+ s.email = ["matthew.crouch@bbc.co.uk"]
10
+ s.homepage = "http://www.bbc.co.uk/"
11
+ s.summary = %q{BBC Mobile Standards validator}
12
+ s.description = %q{Validates HTML and accessibility. Follows FM&T Standards: http://www.bbc.co.uk/guidelines/futuremedia/technical/semantic_markup.shtml}
13
+
14
+ s.rubyforge_project = "bbc_mobile_standards"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency "raakt", "~> 0.5.6"
22
+ s.add_dependency "nokogiri"
23
+ s.add_dependency "w3c_validators"
24
+ s.add_dependency "rest-client"
25
+
26
+ s.add_development_dependency "rspec"
27
+ s.add_development_dependency "fakeweb"
28
+
29
+ end
@@ -0,0 +1,32 @@
1
+ module BBCMobileStandards
2
+ class AccessibilityValidator
3
+
4
+ attr_reader :errors
5
+
6
+ def initialize(html_string)
7
+ @html_string = html_string
8
+ @page = Nokogiri::HTML(@html_string)
9
+ @errors = []
10
+ validate_page
11
+ end
12
+
13
+ def valid?
14
+ true unless @errors.size > 0
15
+ end
16
+
17
+ protected
18
+
19
+ def validate_page
20
+ rakkt_test = Raakt::Test.new(@html_string)
21
+ rakkt_test.check_images.map { |e| @errors << e.text }
22
+ @errors << "Document heading structure is wrong" unless rakkt_test.check_document_structure.size == 0
23
+ @page.xpath('//img[not(@width) or not(@height)]').map { |img| @errors << "No width or height attribute for #{img.to_s}" }
24
+ @errors << "Page is using <br> for whitespace" if @page =~ /<br\/>\s*<br\/>/
25
+ @errors << "Page doesn't have 1 <h1> tag" unless @page.xpath('//h1').size == 1
26
+ %w(b i big blink marquee s strike tt u center nobr font).each do |tag|
27
+ @errors << "Page is using <#{tag}>" if @page.xpath("//#{tag}").any?
28
+ end
29
+ @page.xpath("//form[not(@type)]").map { |form| @errors << "There is a form without a type tag" }
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,39 @@
1
+ require "w3c_validators"
2
+ module BBCMobileStandards
3
+ class HTMLValidator
4
+
5
+ attr_reader :valid, :errors
6
+
7
+ include W3CValidators
8
+
9
+ def initialize(html)
10
+ @html = html
11
+ @errors = []
12
+ w3c_validate_html
13
+ end
14
+
15
+ def valid?
16
+ self.valid
17
+ end
18
+
19
+ protected
20
+
21
+ def w3c_validate_html
22
+ results = validator.validate_text(@html)
23
+ unless results.errors.empty?
24
+ @errors = results.errors
25
+ @valid = false
26
+ else
27
+ @valid = true
28
+ end
29
+ end
30
+
31
+ def validator
32
+ if BBCMobileStandards::Proxy.set?
33
+ MarkupValidator.new(:proxy_host => BBCMobileStandards::Proxy.host)
34
+ else
35
+ MarkupValidator.new
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,31 @@
1
+ module BBCMobileStandards
2
+ class Proxy
3
+
4
+ @port = 80
5
+ @host = nil
6
+
7
+ def self.port
8
+ @port
9
+ end
10
+
11
+ def self.port=(number)
12
+ @port = number
13
+ end
14
+
15
+ def self.host
16
+ @host
17
+ end
18
+
19
+ def self.host=(host)
20
+ @host = host
21
+ end
22
+
23
+ def self.set?
24
+ unless @host.nil?
25
+ true
26
+ else
27
+ false
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,3 @@
1
+ module BBCMobileStandards
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,65 @@
1
+ require "bbc_mobile_standards/version"
2
+ require "bbc_mobile_standards/proxy"
3
+ require "bbc_mobile_standards/html_validator"
4
+ require "bbc_mobile_standards/accessibility_validator"
5
+ require "rest-client"
6
+ require "raakt"
7
+
8
+ module BBCMobileStandards
9
+ class << self
10
+
11
+ attr_reader :html_errors, :accessibility_errors
12
+
13
+ def new(url)
14
+ @html_errors = []
15
+ @accessibility_errors = []
16
+ @valid = true
17
+ @url = url
18
+ load_html
19
+ validate
20
+ self
21
+ end
22
+
23
+ def valid?
24
+ @valid
25
+ end
26
+
27
+ def generate_report(file_name)
28
+
29
+ end
30
+
31
+ protected
32
+
33
+ def load_html
34
+ set_proxies
35
+ @html = RestClient.get(@url)
36
+ end
37
+
38
+ def set_proxies
39
+ if BBCMobileStandards::Proxy.set?
40
+ RestClient.proxy = BBCMobileStandards::Proxy.host
41
+ end
42
+ end
43
+
44
+ def validate
45
+ validate_html
46
+ validate_accessibility
47
+ end
48
+
49
+ def validate_html
50
+ validator = BBCMobileStandards::HTMLValidator.new(@html)
51
+ unless validator.valid?
52
+ @valid = false
53
+ @html_errors << validator.errors
54
+ end
55
+ end
56
+
57
+ def validate_accessibility
58
+ validator = BBCMobileStandards::HTMLValidator.new(@html)
59
+ unless validator.valid?
60
+ @valid = false
61
+ @accessibility_errors << validator.errors
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,178 @@
1
+ require "spec_helper"
2
+
3
+ describe BBCMobileStandards::AccessibilityValidator do
4
+ describe "validating invalid image tags" do
5
+ before(:each) do
6
+ @test_html = <<-EOF
7
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
8
+ <html xmlns="http://www.w3.org/1999/xhtml">
9
+ <head>
10
+ <title>hello world</title>
11
+ </head>
12
+ <body>
13
+ <h1>My h1</h1>
14
+ <h2>My h2</h2>
15
+ <p>
16
+ <img src="width_and_height.jpg" width="14" height="14" alt="Image has width and height attributes" />
17
+ <img src="width.jpg" width="14" alt="Image ONLY has width attribute" />
18
+ <img src="height.jpg" height="14" alt="Image ONLY has height attribute" />
19
+ </p>
20
+ </body>
21
+ </html>
22
+ EOF
23
+ @validator = BBCMobileStandards::AccessibilityValidator.new(@test_html)
24
+ end
25
+
26
+ it "should add 2 errors" do
27
+ @validator.errors.size.should equal(2)
28
+ end
29
+ end
30
+
31
+ describe "validating document structure" do
32
+ before(:each) do
33
+ @test_html = <<-EOF
34
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
35
+ <html xmlns="http://www.w3.org/1999/xhtml">
36
+ <head>
37
+ <title>hello world</title>
38
+ </head>
39
+ <body>
40
+ <h2>My h2</h2>
41
+ <h1>My h1</h1>
42
+ </body>
43
+ </html>
44
+ EOF
45
+ @validator = BBCMobileStandards::AccessibilityValidator.new(@test_html)
46
+ end
47
+
48
+ it "should add 1 errors" do
49
+ @validator.errors.size.should equal(1)
50
+ end
51
+ end
52
+
53
+ describe "validating page has 1 <h1> tag" do
54
+ before(:each) do
55
+ @test_html = <<-EOF
56
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
57
+ <html xmlns="http://www.w3.org/1999/xhtml">
58
+ <head>
59
+ <title>hello world</title>
60
+ </head>
61
+ <body>
62
+ </body>
63
+ </html>
64
+ EOF
65
+ @validator = BBCMobileStandards::AccessibilityValidator.new(@test_html)
66
+ end
67
+
68
+ it "should add 1 errors" do
69
+ @validator.errors.size.should equal(1)
70
+ end
71
+ end
72
+
73
+ describe "validating page no banned tags are used" do
74
+ before(:each) do
75
+ @test_html = <<-EOF
76
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
77
+ <html xmlns="http://www.w3.org/1999/xhtml">
78
+ <head>
79
+ <title>hello world</title>
80
+ </head>
81
+ <body>
82
+ <h1>Horrid HTML</h1>
83
+ <p>
84
+ <big><b>Note:</b></big> <i>These tags should never ever be used</i>
85
+ </p>
86
+ <marquee>
87
+ <blink>
88
+ <s>I said never</s>
89
+ <tt><u>Never!</u></tt>
90
+ </blink>
91
+ </marquee>
92
+ <p>
93
+ <center><strike>Line through text</strike></center>
94
+ </p>
95
+ <p>
96
+ <font color="red">Or using Font tags</font>
97
+ </p>
98
+ <p>
99
+ <nobr>Also, don't break text</nobr>
100
+ </p>
101
+ </body>
102
+ </html>
103
+ EOF
104
+ @validator = BBCMobileStandards::AccessibilityValidator.new(@test_html)
105
+ end
106
+
107
+ it "should add 12 errors" do
108
+ @validator.errors.size.should equal(12)
109
+ end
110
+ end
111
+
112
+ describe "validating forms, should use type" do
113
+ before(:each) do
114
+ @test_html = <<-EOF
115
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
116
+ <html xmlns="http://www.w3.org/1999/xhtml">
117
+ <head>
118
+ <title>Form Test</title>
119
+ </head>
120
+ <body>
121
+ <h1>Form Test</h1>
122
+ <form action="">
123
+ <input type="text" name="some_input" id="some_input" title="Some Input"/>
124
+ </form>
125
+ </body>
126
+ </html>
127
+ EOF
128
+ @validator = BBCMobileStandards::AccessibilityValidator.new(@test_html)
129
+ end
130
+
131
+ it "should add 1 errors" do
132
+ @validator.errors.size.should equal(1)
133
+ end
134
+ end
135
+
136
+ describe "#valid?" do
137
+ context "failed accessibility tests" do
138
+ before(:each) do
139
+ @test_html = <<-EOF
140
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
141
+ <html xmlns="http://www.w3.org/1999/xhtml">
142
+ <head>
143
+ <title>hello world</title>
144
+ </head>
145
+ <body>
146
+ </body>
147
+ </html>
148
+ EOF
149
+ @validator = BBCMobileStandards::AccessibilityValidator.new(@test_html)
150
+ end
151
+
152
+ it "should add return false" do
153
+ @validator.valid?.should be_false
154
+ end
155
+ end
156
+ end
157
+
158
+ context "passed accessibility tests" do
159
+ before(:each) do
160
+ @test_html = <<-EOF
161
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
162
+ <html xmlns="http://www.w3.org/1999/xhtml">
163
+ <head>
164
+ <title>Test Page</title>
165
+ </head>
166
+ <body>
167
+ <h1>Test Page</h1>
168
+ </body>
169
+ </html>
170
+ EOF
171
+ @validator = BBCMobileStandards::AccessibilityValidator.new(@test_html)
172
+ end
173
+
174
+ it "should add return true" do
175
+ @validator.valid?.should be_true
176
+ end
177
+ end
178
+ end
@@ -0,0 +1,57 @@
1
+ require "spec_helper"
2
+
3
+ describe BBCMobileStandards::HTMLValidator do
4
+ context "invalid HTML" do
5
+ before(:each) do
6
+ @test_html = <<-EOF
7
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
8
+ <html xmlns="http://www.w3.org/1999/xhtml">
9
+ <head>
10
+ <title>Testing</title>
11
+ </head>
12
+ <body>
13
+ <p>
14
+ <p>
15
+ Hello
16
+ </p>
17
+ </p>
18
+ </body>
19
+ </html>
20
+ EOF
21
+ end
22
+
23
+ it "should return false HTML is invalid" do
24
+ validation = BBCMobileStandards::HTMLValidator.new(@test_html)
25
+ validation.valid?.should be_false
26
+ end
27
+
28
+ it "should allow access to the html errors when invalid" do
29
+ validation = BBCMobileStandards::HTMLValidator.new(@test_html)
30
+ validation.errors.size.should == 1
31
+ end
32
+
33
+ end
34
+
35
+ context "valid HTML" do
36
+ before(:each) do
37
+ @test_html = <<-EOF
38
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
39
+ <html xmlns="http://www.w3.org/1999/xhtml">
40
+ <head>
41
+ <title>Testing</title>
42
+ </head>
43
+ <body>
44
+ <p>
45
+ Hello
46
+ </p>
47
+ </body>
48
+ </html>
49
+ EOF
50
+ end
51
+
52
+ it "should return true when HTML is valid" do
53
+ validation = BBCMobileStandards::HTMLValidator.new(@test_html)
54
+ validation.valid?.should be_true
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,44 @@
1
+ require "spec_helper"
2
+
3
+ describe BBCMobileStandards::Proxy do
4
+
5
+ before(:each) do
6
+ # Reset values to defaults
7
+ BBCMobileStandards::Proxy.port = 80
8
+ BBCMobileStandards::Proxy.host = nil
9
+ end
10
+
11
+ describe "setting ports" do
12
+ it "should return 80 if no port is set" do
13
+ BBCMobileStandards::Proxy.port.should == 80
14
+ end
15
+
16
+ it "should return 443 if port is set to 443" do
17
+ BBCMobileStandards::Proxy.port = 443
18
+ BBCMobileStandards::Proxy.port.should == 443
19
+ end
20
+ end
21
+
22
+ describe "setting host" do
23
+ it "should return nil if no host is set" do
24
+ BBCMobileStandards::Proxy.host.should == nil
25
+ end
26
+
27
+ it "should return 443 if port is set to 443" do
28
+ BBCMobileStandards::Proxy.host = "www.google.com"
29
+ BBCMobileStandards::Proxy.host.should == "www.google.com"
30
+ end
31
+ end
32
+
33
+ describe "#set?" do
34
+
35
+ it "should return false if host is nil" do
36
+ BBCMobileStandards::Proxy.set?.should be_false
37
+ end
38
+
39
+ it "should return true if host is set" do
40
+ BBCMobileStandards::Proxy.host = "www.google.co.uk"
41
+ BBCMobileStandards::Proxy.set?.should be_true
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,7 @@
1
+ dir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift "#{dir}/../lib"
3
+
4
+ require 'rubygems'
5
+ require 'rspec'
6
+ require 'fakeweb'
7
+ require 'bbc_mobile_standards'
@@ -0,0 +1,83 @@
1
+ require "spec_helper"
2
+
3
+ describe BBCMobileStandards do
4
+
5
+ let(:set_proxy) { BBCMobileStandards::Proxy.host = "www-cache.reith.bbc.co.uk" }
6
+
7
+ describe "invalid html" do
8
+
9
+ before(:each) do
10
+ set_proxy
11
+ @test_html = <<-EOF
12
+ <html xmlns="http://www.w3.org/1999/xhtml">
13
+ <head>
14
+ </head>
15
+ <body>
16
+ <p>
17
+ <p>
18
+ Hello
19
+ </p>
20
+ </p>
21
+ </body>
22
+ </html>
23
+ EOF
24
+ FakeWeb.register_uri(:get, "http://www.bbc.co.uk/news/mobile/", :body => @test_html)
25
+ end
26
+
27
+ it "should return errors if html is not valid" do
28
+ results = BBCMobileStandards.new("http://www.bbc.co.uk/news/mobile/")
29
+ results.valid?.should be_false
30
+ results.html_errors.size.should equal(1)
31
+ end
32
+ end
33
+
34
+ describe "valid html" do
35
+
36
+ before(:each) do
37
+ set_proxy
38
+ @test_html = <<-EOF
39
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
40
+ <html xmlns="http://www.w3.org/1999/xhtml">
41
+ <head>
42
+ <title>Testing</title>
43
+ </head>
44
+ <body>
45
+ <p>
46
+ Hello
47
+ </p>
48
+ </body>
49
+ </html>
50
+ EOF
51
+ FakeWeb.register_uri(:get, "http://www.bbc.co.uk/news/mobile/", :body => @test_html)
52
+ end
53
+
54
+ it "should return true" do
55
+ results = BBCMobileStandards.new("http://www.bbc.co.uk/news/mobile/")
56
+ results.valid?.should be_true
57
+ end
58
+ end
59
+
60
+ describe "return accessibility errors" do
61
+ before(:each) do
62
+ set_proxy
63
+ @test_html = <<-EOF
64
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
65
+ <html xmlns="http://www.w3.org/1999/xhtml">
66
+ <head>
67
+ </head>
68
+ <body>
69
+ <h1>Testing</h1>
70
+ <p>Hello</p>
71
+ </body>
72
+ </html>
73
+ EOF
74
+ FakeWeb.register_uri(:get, "http://www.bbc.co.uk/news/mobile/", :body => @test_html)
75
+ end
76
+
77
+ it "should return true" do
78
+ results = BBCMobileStandards.new("http://www.bbc.co.uk/news/mobile/")
79
+ results.accessibility_errors.size.should equal(1)
80
+ end
81
+ end
82
+
83
+ end
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bbc_mobile_standards
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Matthew Crouch
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-11-09 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: raakt
16
+ requirement: &2151815580 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.5.6
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2151815580
25
+ - !ruby/object:Gem::Dependency
26
+ name: nokogiri
27
+ requirement: &2151814920 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2151814920
36
+ - !ruby/object:Gem::Dependency
37
+ name: w3c_validators
38
+ requirement: &2151813800 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2151813800
47
+ - !ruby/object:Gem::Dependency
48
+ name: rest-client
49
+ requirement: &2151813100 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *2151813100
58
+ - !ruby/object:Gem::Dependency
59
+ name: rspec
60
+ requirement: &2151812260 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *2151812260
69
+ - !ruby/object:Gem::Dependency
70
+ name: fakeweb
71
+ requirement: &2151811300 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *2151811300
80
+ description: ! 'Validates HTML and accessibility. Follows FM&T Standards: http://www.bbc.co.uk/guidelines/futuremedia/technical/semantic_markup.shtml'
81
+ email:
82
+ - matthew.crouch@bbc.co.uk
83
+ executables: []
84
+ extensions: []
85
+ extra_rdoc_files: []
86
+ files:
87
+ - .gitignore
88
+ - Gemfile
89
+ - Rakefile
90
+ - bbc_mobile_standards.gemspec
91
+ - lib/bbc_mobile_standards.rb
92
+ - lib/bbc_mobile_standards/accessibility_validator.rb
93
+ - lib/bbc_mobile_standards/html_validator.rb
94
+ - lib/bbc_mobile_standards/proxy.rb
95
+ - lib/bbc_mobile_standards/version.rb
96
+ - spec/bbc_mobile_standards/accessibility_validator_spec.rb
97
+ - spec/bbc_mobile_standards/html_validator_spec.rb
98
+ - spec/bbc_mobile_standards/proxy_spec.rb
99
+ - spec/spec_helper.rb
100
+ - spec/validator_spec.rb
101
+ homepage: http://www.bbc.co.uk/
102
+ licenses: []
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ required_rubygems_version: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ requirements: []
120
+ rubyforge_project: bbc_mobile_standards
121
+ rubygems_version: 1.8.10
122
+ signing_key:
123
+ specification_version: 3
124
+ summary: BBC Mobile Standards validator
125
+ test_files:
126
+ - spec/bbc_mobile_standards/accessibility_validator_spec.rb
127
+ - spec/bbc_mobile_standards/html_validator_spec.rb
128
+ - spec/bbc_mobile_standards/proxy_spec.rb
129
+ - spec/spec_helper.rb
130
+ - spec/validator_spec.rb