applied_css 0.0.2 → 0.0.3

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/.ruby-gemset ADDED
@@ -0,0 +1 @@
1
+ applied_csv
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ ruby-1.9.3-p429
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- applied_css (0.0.1)
4
+ applied_css (0.0.3)
5
5
  addressable
6
6
  awesome_print
7
7
  bundler
@@ -14,63 +14,67 @@ PATH
14
14
  GEM
15
15
  remote: http://rubygems.org/
16
16
  specs:
17
- addressable (2.3.2)
17
+ addressable (2.3.5)
18
18
  awesome_print (1.1.0)
19
- cobweb (1.0.1)
19
+ cobweb (1.0.11)
20
20
  addressable
21
21
  awesome_print
22
22
  haml
23
23
  json
24
- namespaced_redis (>= 1.0.2)
24
+ namespaced_redis
25
25
  nokogiri
26
26
  redis
27
27
  resque
28
28
  rspec
29
29
  sinatra
30
+ slop
30
31
  thin
31
- css_parser (1.2.6)
32
+ css_parser (1.3.4)
32
33
  addressable
33
- rdoc
34
34
  daemons (1.1.9)
35
- diff-lcs (1.1.3)
36
- eventmachine (1.0.0)
35
+ diff-lcs (1.2.4)
36
+ eventmachine (1.0.3)
37
37
  fakeweb (1.3.0)
38
- haml (3.1.7)
39
- json (1.7.5)
40
- multi_json (1.5.0)
38
+ haml (4.0.3)
39
+ tilt
40
+ json (1.8.0)
41
+ mini_portile (0.5.1)
42
+ mono_logger (1.1.0)
43
+ multi_json (1.7.7)
41
44
  namespaced_redis (1.0.4)
42
45
  redis
43
- nokogiri (1.5.6)
44
- rack (1.4.1)
45
- rack-protection (1.3.2)
46
+ nokogiri (1.6.0)
47
+ mini_portile (~> 0.5.0)
48
+ rack (1.5.2)
49
+ rack-protection (1.5.0)
46
50
  rack
47
- rdoc (3.12)
48
- json (~> 1.4)
49
- redis (3.0.2)
50
- redis-namespace (1.2.1)
51
+ redis (3.0.4)
52
+ redis-namespace (1.3.0)
51
53
  redis (~> 3.0.0)
52
- resque (1.23.0)
54
+ resque (1.24.1)
55
+ mono_logger (~> 1.0)
53
56
  multi_json (~> 1.0)
54
- redis-namespace (~> 1.0)
57
+ redis-namespace (~> 1.2)
55
58
  sinatra (>= 0.9.2)
56
59
  vegas (~> 0.1.2)
57
- rspec (2.12.0)
58
- rspec-core (~> 2.12.0)
59
- rspec-expectations (~> 2.12.0)
60
- rspec-mocks (~> 2.12.0)
61
- rspec-core (2.12.2)
62
- rspec-expectations (2.12.1)
63
- diff-lcs (~> 1.1.3)
64
- rspec-mocks (2.12.1)
65
- sinatra (1.3.3)
66
- rack (~> 1.3, >= 1.3.6)
67
- rack-protection (~> 1.2)
68
- tilt (~> 1.3, >= 1.3.3)
69
- thin (1.5.0)
60
+ rspec (2.14.1)
61
+ rspec-core (~> 2.14.0)
62
+ rspec-expectations (~> 2.14.0)
63
+ rspec-mocks (~> 2.14.0)
64
+ rspec-core (2.14.3)
65
+ rspec-expectations (2.14.0)
66
+ diff-lcs (>= 1.1.3, < 2.0)
67
+ rspec-mocks (2.14.1)
68
+ sinatra (1.4.3)
69
+ rack (~> 1.4)
70
+ rack-protection (~> 1.4)
71
+ tilt (~> 1.3, >= 1.3.4)
72
+ slop (3.4.5)
73
+ thin (1.5.1)
70
74
  daemons (>= 1.0.9)
71
75
  eventmachine (>= 0.12.6)
72
76
  rack (>= 1.0.0)
73
- tilt (1.3.3)
77
+ tilt (1.4.1)
74
78
  vegas (0.1.11)
75
79
  rack (>= 1.0.0)
76
80
 
@@ -1,3 +1,3 @@
1
1
  module AppliedCss
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/applied_css.rb CHANGED
@@ -12,6 +12,8 @@ class AppliedCSS
12
12
  @options = {:ancestors => false}.merge(options)
13
13
  @options[:cache] = 120 unless @options.has_key? :cache
14
14
  @options[:cache_type] = :full unless @options.has_key? :cache_type
15
+
16
+ @options[:debug] = false unless @options.has_key? :debug
15
17
 
16
18
  @base_uri = Addressable::URI.parse(@options[:url])
17
19
  raise "url must be specified" unless @base_uri
@@ -23,11 +25,14 @@ class AppliedCSS
23
25
  @doc = Nokogiri::HTML.parse(html) unless html.nil?
24
26
  end
25
27
 
28
+ puts "Genrating Parser." if @options[:debug]
26
29
  @parser = CssParser::Parser.new
27
30
  styles.each do |uri, style|
31
+ puts "adding #{style}" if @options[:debug]
28
32
  @parser.add_block! style
29
33
  end
30
34
  @doc.css("style").each do |style_node|
35
+ puts "adding #{style_node.text()}" if @options[:debug]
31
36
  @parser.add_block! style_node.text()
32
37
  end
33
38
  end
@@ -56,9 +61,11 @@ class AppliedCSS
56
61
  private
57
62
  def populate_style_hash
58
63
  @style_hash = {}
59
- @doc.css("link[rel='stylesheet']").each do |link|
60
- uri = @base_uri.join(link["href"]).to_s
61
- get_style(uri)
64
+ @doc.search("link").each do |link|
65
+ if link["rel"].downcase == "stylesheet"
66
+ uri = @base_uri.join(link["href"]).to_s
67
+ get_style(uri)
68
+ end
62
69
  end
63
70
  end
64
71
 
@@ -84,7 +91,7 @@ class AppliedCSS
84
91
  declarations = {}
85
92
  node_identifications(node).each do |node_path|
86
93
  @parser.find_by_selector(node_path).each do |detected_decs|
87
- detected_decs.split(";").map{|detected_dec| declarations[detected_dec.split(":")[0].strip.to_sym] = detected_dec.split(":")[1].strip}
94
+ detected_decs.split(";").map{|detected_dec| declarations[detected_dec.split(":")[0].strip.to_s] = detected_dec.split(":")[1].strip}
88
95
  end
89
96
  end
90
97
  declarations
@@ -114,7 +121,7 @@ class AppliedCSS
114
121
  nodes += node.ancestors[0..-2].reverse
115
122
  end
116
123
  nodes << node
117
- nodes
124
+ nodes.reject{|node| node.nil?}
118
125
  end
119
126
 
120
127
  def get(url)
@@ -136,7 +143,7 @@ class AppliedCSS
136
143
  http.request(request)
137
144
  }
138
145
  if response.code.to_i.between? 300, 399
139
- puts "redirecting to #{response["location"]}"
146
+ puts "redirecting to #{response["location"]}" if @options[:debug]
140
147
  uri = uri.merge(response["location"])
141
148
  elsif response.code.to_i == 404
142
149
  raise "The style #{url} doesen't exist (404)"
@@ -80,11 +80,11 @@ describe AppliedCSS do
80
80
 
81
81
  describe "load ordering" do
82
82
  it "should overwrite earlier declarations" do
83
- @applied_css.css("#container")[:height].should == "600px"
83
+ @applied_css.css("#container")["height"].should == "600px"
84
84
  end
85
85
 
86
86
  it "should not take settings from ancestors" do
87
- @applied_css.css("#container")[:"font-size"].should be_nil
87
+ @applied_css.css("#container")["font-size"].should be_nil
88
88
  end
89
89
 
90
90
  describe "with ancestors" do
@@ -92,28 +92,28 @@ describe AppliedCSS do
92
92
  @applied_css = AppliedCSS.new(:url => @sample_html, :ancestors => true)
93
93
  end
94
94
  it "should take settings from ancestors" do
95
- @applied_css.css("#container")[:"font-size"].should == "20px"
95
+ @applied_css.css("#container")["font-size"].should == "20px"
96
96
  end
97
97
  end
98
98
  end
99
99
 
100
100
  describe "using ids" do
101
101
  it "should find declarations using ids" do
102
- @applied_css.css("#container")[:width].should == "900px"
102
+ @applied_css.css("#container")["width"].should == "900px"
103
103
  end
104
104
  end
105
105
 
106
106
  describe "using classes" do
107
107
  it "should find declarations using classes" do
108
- @applied_css.css("#container > span").keys.should include :color
109
- @applied_css.css("#container > span")[:color].should == "#ff0000"
108
+ @applied_css.css("#container > span").keys.should include "color"
109
+ @applied_css.css("#container > span")["color"].should == "#ff0000"
110
110
  end
111
111
  end
112
112
 
113
113
  describe "for imported stylesheets using @import" do
114
114
  it "should find declarations delared on imported stylesheets" do
115
- @applied_css.css("#from-imported").keys.should include :color
116
- @applied_css.css("#from-imported")[:color].should == "green"
115
+ @applied_css.css("#from-imported").keys.should include "color"
116
+ @applied_css.css("#from-imported")["color"].should == "green"
117
117
  end
118
118
  end
119
119
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: applied_css
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
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-28 00:00:00.000000000Z
12
+ date: 2013-07-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70166700522100 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70166700522100
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: bundler
27
- requirement: &70166700520840 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70166700520840
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: nokogiri
38
- requirement: &70166700519920 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70166700519920
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: css_parser
49
- requirement: &70166700519100 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *70166700519100
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: fakeweb
60
- requirement: &70166700518260 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *70166700518260
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: awesome_print
71
- requirement: &70166700517300 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: '0'
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *70166700517300
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: addressable
82
- requirement: &70166700516040 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: '0'
88
118
  type: :runtime
89
119
  prerelease: false
90
- version_requirements: *70166700516040
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: cobweb
93
- requirement: &70166700515320 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ! '>='
@@ -98,7 +133,12 @@ dependencies:
98
133
  version: '0'
99
134
  type: :runtime
100
135
  prerelease: false
101
- version_requirements: *70166700515320
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
102
142
  description: Gem for interrogating CSS and Script elements of a html document
103
143
  email:
104
144
  - stewart@theizone.co.uk
@@ -108,7 +148,8 @@ extra_rdoc_files: []
108
148
  files:
109
149
  - .gitignore
110
150
  - .rspec
111
- - .rvmrc
151
+ - .ruby-gemset
152
+ - .ruby-version
112
153
  - Gemfile
113
154
  - Gemfile.lock
114
155
  - LICENSE.txt
@@ -148,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
189
  version: '0'
149
190
  requirements: []
150
191
  rubyforge_project: applied_css
151
- rubygems_version: 1.8.10
192
+ rubygems_version: 1.8.25
152
193
  signing_key:
153
194
  specification_version: 3
154
195
  summary: CSS and Script extraction tool for html documents
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 1.9.2@applied_css