klepto 0.4.2 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -214,4 +214,8 @@ assertions do
214
214
  #presence and value assertions...
215
215
  end
216
216
  on_assertion_failure{ |response, bot| }
217
- ```
217
+ ```
218
+
219
+ Structure
220
+ :if
221
+ unless: lambda{|node| node.class.include?("newsflash")}
@@ -45,6 +45,11 @@ EOS
45
45
 
46
46
  browser.set_headers config.headers
47
47
  #browser.set_driver config.driver
48
+
49
+ # Call before(:each) handlers...
50
+ config.before_handlers[:each].each { |bh|
51
+ bh.call(structure._hash, url, browser)
52
+ }
48
53
 
49
54
  begin
50
55
  browser.fetch! url
@@ -54,7 +59,7 @@ EOS
54
59
 
55
60
  # Fire callbacks on GET
56
61
  config.after_handlers[:get].each do |ah|
57
- ah.call(browser.page)
62
+ ah.call(browser.page, browser, url)
58
63
  end
59
64
 
60
65
  # Capybara automatically follows redirects... Checking the page here
@@ -73,7 +78,12 @@ EOS
73
78
  # If the page was not a failure or if not aborting, structure that bad boy.
74
79
  if (browser.failure? && config.abort_on_failure?) || (config.abort_on_redirect? && statuses.include?(:redirect))
75
80
  config.after_handlers[:abort].each do |ah|
76
- ah.call(browser.page)
81
+ ah.call(browser.page,{
82
+ browser_failure: browser.failure?,
83
+ abort_on_failure: config.abort_on_failure?,
84
+ abort_on_redirect: config.abort_on_redirect?,
85
+ redirect: statuses.include?(:redirect)
86
+ })
77
87
  end
78
88
  else
79
89
  resources << __structure(browser.page)
@@ -1,6 +1,7 @@
1
1
  module Klepto
2
2
  class Config
3
3
  attr_reader :after_handlers
4
+ attr_reader :before_handlers
4
5
 
5
6
  def initialize
6
7
  @headers = {}
@@ -1,3 +1,3 @@
1
1
  module Klepto
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.5"
3
3
  end
@@ -40,5 +40,8 @@ describe Klepto::Structure do
40
40
  @structure[:username].should eq '@justinbieber'
41
41
  @structure[:last_tweet][:twitter_id].should == @structure[:tweets].first[:twitter_id]
42
42
  end
43
+
44
+ pending 'should be able to specify an :unless statement for a collection'
45
+ pending 'should be able to specify an :if statement for a collection'
43
46
  end
44
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: klepto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2013-05-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: poltergeist
16
- requirement: &70332727963300 !ruby/object:Gem::Requirement
16
+ requirement: &70250867811560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70332727963300
24
+ version_requirements: *70250867811560
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: capybara
27
- requirement: &70332727962800 !ruby/object:Gem::Requirement
27
+ requirement: &70250867811060 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 2.0.2
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70332727962800
35
+ version_requirements: *70250867811060
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: nokogiri
38
- requirement: &70332727962340 !ruby/object:Gem::Requirement
38
+ requirement: &70250867810600 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.5.6
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70332727962340
46
+ version_requirements: *70250867810600
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &70332727961960 !ruby/object:Gem::Requirement
49
+ requirement: &70250867810220 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70332727961960
57
+ version_requirements: *70250867810220
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: multi_json
60
- requirement: &70332727961420 !ruby/object:Gem::Requirement
60
+ requirement: &70250867809680 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '1.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70332727961420
68
+ version_requirements: *70250867809680
69
69
  description: Tearing up web pages into ActiveRecord resources
70
70
  email:
71
71
  - github@coryodaniel.com