wombat 2.4.0 → 2.5.0

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.
@@ -1,16 +1,16 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Wombat::Property::Locators::Text do
4
- it 'should locate text property with xpath selector and namespaces' do
5
- fake_elem = double :element
6
- context = double :context
7
- fake_elem.stub inner_text: "Something cool "
8
- context.stub(:xpath).with("/abc", 'boom').and_return [fake_elem]
9
- property = Wombat::DSL::Property.new('data1', 'xpath=/abc', :text, 'boom')
10
-
11
- locator = Wombat::Property::Locators::Text.new(property)
12
-
13
- locator.locate(context).should == { "data1" => "Something cool" }
4
+ it 'should locate text property with xpath selector and namespaces' do
5
+ fake_elem = double :element
6
+ context = double :context
7
+ fake_elem.stub inner_text: "Something cool "
8
+ context.stub(:xpath).with("/abc", 'boom').and_return [fake_elem]
9
+ property = Wombat::DSL::Property.new('data1', 'xpath=/abc', :text, 'boom')
10
+
11
+ locator = Wombat::Property::Locators::Text.new(property)
12
+
13
+ locator.locate(context).should == { "data1" => "Something cool" }
14
14
  end
15
15
 
16
16
  it 'should locate text property with xpath selector using xpath functions' do
@@ -23,37 +23,37 @@ describe Wombat::Property::Locators::Text do
23
23
  locator.locate(context).should == { "data1" => "Something" }
24
24
  end
25
25
 
26
- it 'should locate text property with css selector' do
27
- fake_elem = double :element
28
- context = double :context
29
- fake_elem.stub inner_text: "My name"
30
- context.stub(:css).with("/def").and_return [fake_elem]
31
- property = Wombat::DSL::Property.new('data1', 'css=/def', :text)
32
-
33
- locator = Wombat::Property::Locators::Text.new(property)
34
-
35
- locator.locate(context).should == { "data1" => "My name" }
36
- end
37
-
38
- it 'should return plain symbols as strings' do
39
- fake_elem = double :element
40
- context = double :context
41
- property = Wombat::DSL::Property.new('data_2', :hardcoded_value, :text)
42
-
43
- locator = Wombat::Property::Locators::Text.new(property)
44
-
45
- locator.locate(context).should == { "data_2" => "hardcoded_value" }
46
- end
47
-
48
- it 'should invoke property callback' do
49
- fake_elem = double :element
50
- context = double :context
51
- fake_elem.stub inner_text: "My name"
52
- context.stub(:css).with("/def").and_return [fake_elem]
53
- property = Wombat::DSL::Property.new('data1', 'css=/def', :text) { |s| s.gsub(/name/, 'ass') }
54
-
55
- locator = Wombat::Property::Locators::Text.new(property)
56
-
57
- locator.locate(context).should == { "data1" => "My ass" }
58
- end
59
- end
26
+ it 'should locate text property with css selector' do
27
+ fake_elem = double :element
28
+ context = double :context
29
+ fake_elem.stub inner_text: "My name"
30
+ context.stub(:css).with("/def").and_return [fake_elem]
31
+ property = Wombat::DSL::Property.new('data1', 'css=/def', :text)
32
+
33
+ locator = Wombat::Property::Locators::Text.new(property)
34
+
35
+ locator.locate(context).should == { "data1" => "My name" }
36
+ end
37
+
38
+ it 'should return plain symbols as strings' do
39
+ fake_elem = double :element
40
+ context = double :context
41
+ property = Wombat::DSL::Property.new('data_2', :hardcoded_value, :text)
42
+
43
+ locator = Wombat::Property::Locators::Text.new(property)
44
+
45
+ locator.locate(context).should == { "data_2" => "hardcoded_value" }
46
+ end
47
+
48
+ it 'should invoke property callback' do
49
+ fake_elem = double :element
50
+ context = double :context
51
+ fake_elem.stub inner_text: "My name"
52
+ context.stub(:css).with("/def").and_return [fake_elem]
53
+ property = Wombat::DSL::Property.new('data1', 'css=/def', :text) { |s| s.gsub(/name/, 'ass') }
54
+
55
+ locator = Wombat::Property::Locators::Text.new(property)
56
+
57
+ locator.locate(context).should == { "data1" => "My ass" }
58
+ end
59
+ end
data/spec/wombat_spec.rb CHANGED
@@ -1,45 +1,45 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Wombat do
4
- it 'should provide syntactic sugar method Wombat.crawl' do
5
- Wombat.should respond_to(:crawl)
6
- end
4
+ it 'should provide syntactic sugar method Wombat.crawl' do
5
+ Wombat.should respond_to(:crawl)
6
+ end
7
7
 
8
- it 'should provide syntactic sugar method Wombat.scrape' do
9
- Wombat.should respond_to(:scrape)
10
- end
8
+ it 'should provide syntactic sugar method Wombat.scrape' do
9
+ Wombat.should respond_to(:scrape)
10
+ end
11
11
 
12
- it 'should redirect .scrape to .crawl' do
13
- fake_class = double :fake
14
- fake_class.stub :include
15
- fake_class.should_receive(:new).and_return(double(crawl: nil))
16
- Class.stub :new => fake_class
17
- Wombat.scrape
18
- end
12
+ it 'should redirect .scrape to .crawl' do
13
+ fake_class = double :fake
14
+ fake_class.stub :include
15
+ fake_class.should_receive(:new).and_return(double(crawl: nil))
16
+ Class.stub :new => fake_class
17
+ Wombat.scrape
18
+ end
19
19
 
20
- it 'should provide configuration method with block' do
21
- Wombat.configure do |config|
22
- config.set_proxy "10.0.0.1", 8080
23
- config.set_user_agent "Wombat"
24
- config.set_user_agent_alias 'Mac Safari'
25
- end
26
- Wombat.proxy_args.should == ["10.0.0.1", 8080]
27
- Wombat.user_agent.should == 'Wombat'
28
- Wombat.user_agent_alias.should == 'Mac Safari'
29
- end
20
+ it 'should provide configuration method with block' do
21
+ Wombat.configure do |config|
22
+ config.set_proxy "10.0.0.1", 8080
23
+ config.set_user_agent "Wombat"
24
+ config.set_user_agent_alias 'Mac Safari'
25
+ end
26
+ Wombat.proxy_args.should == ["10.0.0.1", 8080]
27
+ Wombat.user_agent.should == 'Wombat'
28
+ Wombat.user_agent_alias.should == 'Mac Safari'
29
+ end
30
30
 
31
- it 'should accept regular properties (non-selectors)' do
32
- VCR.use_cassette('broken_selector') do
33
- lambda {
34
- Wombat.crawl do
35
- base_url "http://www.github.com"
36
- path "/"
31
+ it 'should accept regular properties (non-selectors)' do
32
+ VCR.use_cassette('broken_selector') do
33
+ lambda {
34
+ Wombat.crawl do
35
+ base_url "http://www.github.com"
36
+ path "/"
37
37
 
38
- source :obaoba
39
- description 'Oba Oba'
40
- website 'http://obaoba.com.br'
41
- end
42
- }.should_not raise_error
43
- end
44
- end
38
+ source :obaoba
39
+ description 'Oba Oba'
40
+ website 'http://obaoba.com.br'
41
+ end
42
+ }.should_not raise_error
43
+ end
44
+ end
45
45
  end
data/wombat.gemspec CHANGED
@@ -2,19 +2,20 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: wombat 2.4.0 ruby lib
5
+ # stub: wombat 2.5.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "wombat"
9
- s.version = "2.4.0"
9
+ s.version = "2.5.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Felipe Lima"]
14
- s.date = "2015-03-05"
14
+ s.date = "2016-01-27"
15
15
  s.description = "Generic Web crawler with a DSL that parses structured data from web pages"
16
16
  s.email = "felipe.lima@gmail.com"
17
17
  s.extra_rdoc_files = [
18
+ "CHANGELOG.md",
18
19
  "LICENSE.txt",
19
20
  "README.md"
20
21
  ]
@@ -22,6 +23,7 @@ Gem::Specification.new do |s|
22
23
  ".document",
23
24
  ".rspec",
24
25
  ".travis.yml",
26
+ "CHANGELOG.md",
25
27
  "Gemfile",
26
28
  "Gemfile.lock",
27
29
  "Guardfile",
@@ -41,6 +43,7 @@ Gem::Specification.new do |s|
41
43
  "fixtures/vcr_cassettes/follow_relative_links.yml",
42
44
  "fixtures/vcr_cassettes/for_each_page.yml",
43
45
  "fixtures/vcr_cassettes/headers_selector.yml",
46
+ "fixtures/vcr_cassettes/make_post_request.yml",
44
47
  "fixtures/vcr_cassettes/xml_with_namespace.yml",
45
48
  "lib/wombat.rb",
46
49
  "lib/wombat/crawler.rb",
@@ -64,6 +67,7 @@ Gem::Specification.new do |s|
64
67
  "spec/crawler_spec.rb",
65
68
  "spec/dsl/property_spec.rb",
66
69
  "spec/helpers/sample_crawler.rb",
70
+ "spec/integration/crawler_inheritance_spec.rb",
67
71
  "spec/integration/follow_relative_links_spec.rb",
68
72
  "spec/integration/integration_spec.rb",
69
73
  "spec/processing/parser_spec.rb",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wombat
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Lima
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-05 00:00:00.000000000 Z
11
+ date: 2016-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
@@ -169,12 +169,14 @@ email: felipe.lima@gmail.com
169
169
  executables: []
170
170
  extensions: []
171
171
  extra_rdoc_files:
172
+ - CHANGELOG.md
172
173
  - LICENSE.txt
173
174
  - README.md
174
175
  files:
175
176
  - ".document"
176
177
  - ".rspec"
177
178
  - ".travis.yml"
179
+ - CHANGELOG.md
178
180
  - Gemfile
179
181
  - Gemfile.lock
180
182
  - Guardfile
@@ -194,6 +196,7 @@ files:
194
196
  - fixtures/vcr_cassettes/follow_relative_links.yml
195
197
  - fixtures/vcr_cassettes/for_each_page.yml
196
198
  - fixtures/vcr_cassettes/headers_selector.yml
199
+ - fixtures/vcr_cassettes/make_post_request.yml
197
200
  - fixtures/vcr_cassettes/xml_with_namespace.yml
198
201
  - lib/wombat.rb
199
202
  - lib/wombat/crawler.rb
@@ -217,6 +220,7 @@ files:
217
220
  - spec/crawler_spec.rb
218
221
  - spec/dsl/property_spec.rb
219
222
  - spec/helpers/sample_crawler.rb
223
+ - spec/integration/crawler_inheritance_spec.rb
220
224
  - spec/integration/follow_relative_links_spec.rb
221
225
  - spec/integration/integration_spec.rb
222
226
  - spec/processing/parser_spec.rb