multigiri 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/multigiri/html5.rb +6 -0
- data/lib/multigiri/link_checker.rb +46 -0
- data/lib/multigiri/version.rb +1 -1
- metadata +20 -9
data/lib/multigiri/html5.rb
CHANGED
@@ -1,8 +1,13 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
+
# You might want to use some HTML 5 features right now, so your code is more readable & cleaner.
|
4
|
+
|
5
|
+
# In future it can detect if the browser is capable to deal with given HTML 5 feature and
|
6
|
+
# if yes, then there will be no transformation required. But then carefully with caching :)
|
3
7
|
module Rack
|
4
8
|
class Multigiri
|
5
9
|
module HTML5
|
10
|
+
# Browsers supporting HTML 5 should can submit forms through PUT or DELETE natively.
|
6
11
|
class Forms
|
7
12
|
def initialize(app)
|
8
13
|
@app = app
|
@@ -23,6 +28,7 @@ module Rack
|
|
23
28
|
end
|
24
29
|
end
|
25
30
|
|
31
|
+
# Elements can have attribute hidden.
|
26
32
|
class Hidden
|
27
33
|
def initialize(app)
|
28
34
|
@app = app
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# @example
|
4
|
+
# use Multigiri do
|
5
|
+
# use LinkChecker, Rango.logger do |path|
|
6
|
+
# "public" + path
|
7
|
+
# end
|
8
|
+
# end
|
9
|
+
module Rack
|
10
|
+
class Multigiri
|
11
|
+
class LinkChecker
|
12
|
+
def initialize(app, logger, patterns = nil, &block)
|
13
|
+
@app, @logger, @patterns, @block = app, logger, patterns, block
|
14
|
+
@patterns ||= {"img" => "src", "link" => "href", "a" => "href"}
|
15
|
+
end
|
16
|
+
|
17
|
+
def links
|
18
|
+
@links ||= Array.new
|
19
|
+
end
|
20
|
+
|
21
|
+
def call(env)
|
22
|
+
status, headers, document = @app.call(env)
|
23
|
+
@patterns.each do |tag, attribute|
|
24
|
+
document.css("#{tag}[#{attribute}]").each do |element|
|
25
|
+
link = element[attribute]
|
26
|
+
unless link.match(/^\w+:\/\//)
|
27
|
+
self.links << link
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
check_links
|
32
|
+
[status, headers, document]
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
def check_links
|
37
|
+
self.links.each do |link|
|
38
|
+
real_path = @block.call(link)
|
39
|
+
unless File.exist?(real_path)
|
40
|
+
@logger.error("[LINK] #{link} doesn't exist")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/multigiri/version.rb
CHANGED
metadata
CHANGED
@@ -1,26 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multigiri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Jakub Stastny aka Botanicus
|
8
13
|
autorequire:
|
9
14
|
bindir: bin
|
10
15
|
cert_chain:
|
11
|
-
date: 2010-
|
16
|
+
date: 2010-03-12 00:00:00 +00:00
|
12
17
|
default_executable: multigiri
|
13
18
|
dependencies:
|
14
19
|
- !ruby/object:Gem::Dependency
|
15
20
|
name: nokogiri
|
16
|
-
|
17
|
-
|
18
|
-
version_requirements: !ruby/object:Gem::Requirement
|
21
|
+
prerelease: false
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
23
|
requirements:
|
20
24
|
- - ">="
|
21
25
|
- !ruby/object:Gem::Version
|
26
|
+
segments:
|
27
|
+
- 0
|
22
28
|
version: "0"
|
23
|
-
|
29
|
+
type: :runtime
|
30
|
+
version_requirements: *id001
|
24
31
|
description: ""
|
25
32
|
email: stastny@101ideas.cz
|
26
33
|
executables: []
|
@@ -43,6 +50,7 @@ files:
|
|
43
50
|
- lib/multigiri/email_obfuscator.rb
|
44
51
|
- lib/multigiri/google_analytics.rb
|
45
52
|
- lib/multigiri/html5.rb
|
53
|
+
- lib/multigiri/link_checker.rb
|
46
54
|
- lib/multigiri/version.rb
|
47
55
|
- multigiri.gemspec
|
48
56
|
- multigiri.pre.gemspec
|
@@ -64,18 +72,21 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
64
72
|
requirements:
|
65
73
|
- - ">="
|
66
74
|
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 1
|
77
|
+
- 9
|
67
78
|
version: "1.9"
|
68
|
-
version:
|
69
79
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
80
|
requirements:
|
71
81
|
- - ">="
|
72
82
|
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
73
85
|
version: "0"
|
74
|
-
version:
|
75
86
|
requirements: []
|
76
87
|
|
77
88
|
rubyforge_project: multigiri
|
78
|
-
rubygems_version: 1.3.
|
89
|
+
rubygems_version: 1.3.6
|
79
90
|
signing_key:
|
80
91
|
specification_version: 3
|
81
92
|
summary: ""
|