peek-a-view 0.0.3 → 0.0.4
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/README.md +43 -2
- data/lib/peek_a_view/tools/checker.rb +0 -7
- data/lib/peek_a_view/tools/html_validator.rb +14 -2
- data/lib/peek_a_view/tools/yslow.rb +1 -1
- data/lib/peek_a_view/version.rb +1 -1
- data/lib/tasks/peek_a_view.rake +46 -11
- data/{tools → vendor}/yslow.js +0 -0
- metadata +13 -8
data/README.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# PeekAView
|
|
2
2
|
|
|
3
|
-
Experimental software ahead! Use with caution, if at all.
|
|
4
|
-
|
|
5
3
|
## What?
|
|
6
4
|
|
|
7
5
|
This gem provides a Rails engine adds functionality to an application
|
|
@@ -56,4 +54,47 @@ Start your rails application and point your browser at
|
|
|
56
54
|
If everything went well, you see a list of links to your views.
|
|
57
55
|
|
|
58
56
|
|
|
57
|
+
## Checking & Reporting
|
|
58
|
+
|
|
59
|
+
Peek-a-View includes a few Rake tasks and their support code for
|
|
60
|
+
checking the stubbed views with. Currently supported are
|
|
61
|
+
|
|
62
|
+
* the HTML5 validator from http://validator.nu/
|
|
63
|
+
* YSlow
|
|
64
|
+
|
|
65
|
+
The checkers are available through these tasks
|
|
66
|
+
|
|
67
|
+
rake peek-a-view:check # Run all checks
|
|
68
|
+
rake peek-a-view:check:html # Check view markup with validator.nu
|
|
69
|
+
rake peek-a-view:check:speed # Check views with YSlow and generate reports
|
|
70
|
+
rake peek-a-view:report # Run all checks and generate reports
|
|
71
|
+
rake peek-a-view:report:html # Check view markup with validator.nu and generate reports
|
|
72
|
+
rake peek-a-view:report:speed # Check views with YSlow and generate reports
|
|
73
|
+
|
|
74
|
+
Checks write their output to the console, reports generate xUnit-style (aka surefire)
|
|
75
|
+
reports in reports/html_validator and reports/yslow respectively.
|
|
76
|
+
|
|
77
|
+
These tasks have dependencies that are not explicitly declared for this gems.
|
|
78
|
+
This is to avoid dragging in gems for task that you may not want to use.
|
|
79
|
+
|
|
80
|
+
### Requirements for HTML5 checking/reporting
|
|
81
|
+
|
|
82
|
+
HTML5 checks require at instance of Validator.nu to be available at
|
|
83
|
+
http://localhost:8888/ or whatever URI the environment variable HTML_VALIDATOR
|
|
84
|
+
contains.
|
|
85
|
+
|
|
86
|
+
You can obtain the sources for the validator from
|
|
87
|
+
http://about.validator.nu/#src
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
### YSlow
|
|
91
|
+
|
|
92
|
+
YSlow runs as a JavaScript in the headless browser PhantomJS.
|
|
93
|
+
A version of the YSlow script itself is packaged with this gem.
|
|
94
|
+
To use it, you need to install PhantomJS
|
|
95
|
+
|
|
96
|
+
http://code.google.com/p/phantomjs/
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
59
100
|
This project rocks and uses MIT-LICENSE.
|
|
@@ -15,13 +15,6 @@ module PeekAView
|
|
|
15
15
|
|
|
16
16
|
protected
|
|
17
17
|
|
|
18
|
-
def print_hash(out, title, hash)
|
|
19
|
-
out.puts title
|
|
20
|
-
hash.each do |k, v|
|
|
21
|
-
out.puts "#{k}: #{v}"
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
18
|
def report_dir
|
|
26
19
|
raise NotImplementedError,
|
|
27
20
|
"report_dir must be overridden in subclasses of #{self.class}."
|
|
@@ -21,16 +21,28 @@ module PeekAView
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def check(uri)
|
|
24
|
-
|
|
24
|
+
results = validate(uri)
|
|
25
|
+
puts "Valid: #{results.is_valid?}"
|
|
26
|
+
puts
|
|
27
|
+
puts 'Errors'
|
|
28
|
+
puts results.errors.map(&:message)
|
|
29
|
+
puts
|
|
30
|
+
puts 'Warnings'
|
|
31
|
+
puts results.warnings.map(&:message)
|
|
32
|
+
puts
|
|
25
33
|
end
|
|
26
34
|
|
|
27
35
|
def report(uri)
|
|
28
|
-
results =
|
|
36
|
+
results = validate(uri)
|
|
29
37
|
write_report(uri, results)
|
|
30
38
|
end
|
|
31
39
|
|
|
32
40
|
private
|
|
33
41
|
|
|
42
|
+
def validate(uri)
|
|
43
|
+
@validator.validate_uri(uri)
|
|
44
|
+
end
|
|
45
|
+
|
|
34
46
|
def write_report(uri, results)
|
|
35
47
|
xml = Builder::XmlMarkup.new(indent: 2)
|
|
36
48
|
xml.instruct!
|
data/lib/peek_a_view/version.rb
CHANGED
data/lib/tasks/peek_a_view.rake
CHANGED
|
@@ -28,6 +28,17 @@ namespace 'peek-a-view' do
|
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
task :init_html_validator do
|
|
32
|
+
require 'peek_a_view/tools/html_validator'
|
|
33
|
+
|
|
34
|
+
validator_uri = ENV['HTML_VALIDATOR'] || 'http://localhost:8888/'
|
|
35
|
+
@html_validator = PeekAView::Tools::HtmlValidator.new(
|
|
36
|
+
validator_uri: validator_uri,
|
|
37
|
+
prefix: @index_uri,
|
|
38
|
+
encoding: Rails.configuration.encoding
|
|
39
|
+
)
|
|
40
|
+
end
|
|
41
|
+
|
|
31
42
|
desc "List views served by Peek-a-View"
|
|
32
43
|
task :list => :prepare do
|
|
33
44
|
require 'peek_a_view/tools'
|
|
@@ -49,23 +60,47 @@ namespace 'peek-a-view' do
|
|
|
49
60
|
end
|
|
50
61
|
|
|
51
62
|
desc "Check view markup with validator.nu"
|
|
52
|
-
task :html => :prepare do
|
|
53
|
-
|
|
63
|
+
task :html => [:prepare, :init_html_validator] do
|
|
64
|
+
@view_uris.each do |uri|
|
|
65
|
+
puts "-" * 70
|
|
66
|
+
puts "Validation results for #{uri}"
|
|
67
|
+
@html_validator.check(uri)
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
desc "Check views with YSlow and generate reports"
|
|
72
|
+
task :speed => :prepare do
|
|
73
|
+
require 'peek_a_view/tools/yslow'
|
|
74
|
+
|
|
75
|
+
yslow = PeekAView::Tools::YSlow.new(prefix: @index_uri)
|
|
76
|
+
|
|
77
|
+
@view_uris.each do |uri|
|
|
78
|
+
yslow.check(uri)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
desc "Run all checks and generate reports"
|
|
85
|
+
task :report => 'report:run'
|
|
86
|
+
|
|
87
|
+
namespace :report do
|
|
88
|
+
task :run => [:html, :speed]
|
|
89
|
+
|
|
90
|
+
task :prepare do
|
|
91
|
+
Rake::Task['peek-a-view:prepare'].invoke
|
|
92
|
+
end
|
|
54
93
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
prefix: @index_uri,
|
|
59
|
-
encoding: Rails.configuration.encoding
|
|
60
|
-
)
|
|
61
|
-
validator.clean_reports
|
|
94
|
+
desc "Check view markup with validator.nu and generate reports"
|
|
95
|
+
task :html => [:prepare, :init_html_validator] do
|
|
96
|
+
@html_validator.clean_reports
|
|
62
97
|
|
|
63
98
|
@view_uris.each do |uri|
|
|
64
|
-
|
|
99
|
+
@html_validator.report(uri)
|
|
65
100
|
end
|
|
66
101
|
end
|
|
67
102
|
|
|
68
|
-
desc "Check views with YSlow"
|
|
103
|
+
desc "Check views with YSlow and generate reports"
|
|
69
104
|
task :speed => :prepare do
|
|
70
105
|
require 'peek_a_view/tools/yslow'
|
|
71
106
|
|
data/{tools → vendor}/yslow.js
RENAMED
|
File without changes
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: peek-a-view
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.4
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2012-
|
|
12
|
+
date: 2012-08-02 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rails
|
|
16
|
-
requirement:
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ~>
|
|
@@ -21,7 +21,12 @@ dependencies:
|
|
|
21
21
|
version: 3.2.6
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements:
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ~>
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: 3.2.6
|
|
25
30
|
description: Show views using stubbed data.
|
|
26
31
|
email:
|
|
27
32
|
- michael@schuerig.de
|
|
@@ -84,7 +89,7 @@ files:
|
|
|
84
89
|
- test/integration/navigation_test.rb
|
|
85
90
|
- test/peek-a-view_test.rb
|
|
86
91
|
- test/test_helper.rb
|
|
87
|
-
-
|
|
92
|
+
- vendor/yslow.js
|
|
88
93
|
homepage: ''
|
|
89
94
|
licenses:
|
|
90
95
|
- MIT
|
|
@@ -100,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
100
105
|
version: '0'
|
|
101
106
|
segments:
|
|
102
107
|
- 0
|
|
103
|
-
hash: -
|
|
108
|
+
hash: -984046266106858959
|
|
104
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
110
|
none: false
|
|
106
111
|
requirements:
|
|
@@ -109,10 +114,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
109
114
|
version: '0'
|
|
110
115
|
segments:
|
|
111
116
|
- 0
|
|
112
|
-
hash: -
|
|
117
|
+
hash: -984046266106858959
|
|
113
118
|
requirements: []
|
|
114
119
|
rubyforge_project:
|
|
115
|
-
rubygems_version: 1.8.
|
|
120
|
+
rubygems_version: 1.8.23
|
|
116
121
|
signing_key:
|
|
117
122
|
specification_version: 3
|
|
118
123
|
summary: Look at your Rails views without bothering the application
|