reliefweb_scraper 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'glidenumber'
3
+
4
+ describe Glidenumber do
5
+ use_vcr_cassette 'glidenumber', :record => :new_episodes
6
+
7
+ it 'should find the details of a disaster by glide number' do
8
+ record = Glidenumber.find('OT-2011-000110-UGA')
9
+ record.should be_a(Glidenumber::Record)
10
+ record.country.should == "Uganda"
11
+ record.date.should == Date.strptime('2011-8-12', '%Y-%m-%d')
12
+ record.glidenumber.should == 'MS-2011-000110-UGA'
13
+ end
14
+
15
+ it 'should raise an error on invalid glide number' do
16
+ lambda { Glidenumber.find('OT-123-1234-ABCD') }.should raise_error(ArgumentError)
17
+ end
18
+ end
19
+
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+ require 'reliefweb'
3
+
4
+ describe Reliefweb do
5
+ use_vcr_cassette 'reliefweb', :record => :new_episodes
6
+
7
+ it 'should fetch a list of featured disasters' do
8
+ Reliefweb.should_receive(:fetch_glidenumber).at_least(:once).with(/^\//).and_return("OT-2011-000110-UGA")
9
+ Glidenumber.should_receive(:find).at_least(:once).with("OT-2011-000110-UGA").and_return(
10
+ Glidenumber::Record.new(:country => "Uganda",
11
+ :date => Date.strptime('2011-8-12', '%Y-%m-%d'),
12
+ :glidenumber => "MS-2011-000110-UGA"))
13
+
14
+ disasters = Reliefweb.featured_disasters
15
+ disasters.should_not be_empty
16
+ disaster = disasters.first
17
+ disaster.should be_a(Reliefweb::Disaster)
18
+ disaster.country.should == "Uganda"
19
+ disaster.date.should == Date.strptime('2011-8-12', '%Y-%m-%d')
20
+ disaster.glidenumber.should == 'MS-2011-000110-UGA'
21
+ disaster.title.should == 'Horn of Africa Crisis'
22
+ end
23
+
24
+ it 'should parse a glide number from a disaster page' do
25
+ glidenumber = Reliefweb.fetch_glidenumber("http://reliefweb.int/taxonomy/term/8956")
26
+ glidenumber.should == "OT-2011-000110-UGA"
27
+ end
28
+ end
29
+
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+ require 'vcr'
4
+
5
+ VCR.config do |config|
6
+ config.cassette_library_dir = File.dirname(__FILE__) + '/fixtures/vcr_cassettes'
7
+ config.stub_with :webmock # or :fakeweb
8
+ end
9
+
10
+ RSpec.configure do |config|
11
+ config.mock_with :rspec
12
+
13
+ config.filter_run :focused => true
14
+ config.run_all_when_everything_filtered = true
15
+ config.alias_example_to :fit, :focused => true
16
+
17
+ config.extend VCR::RSpec::Macros
18
+ end
19
+
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: reliefweb_scraper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nathan Broadbent
9
+ - Stanley Lau
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2011-08-25 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: mechanize
17
+ requirement: &84035110 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 2.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *84035110
26
+ - !ruby/object:Gem::Dependency
27
+ name: hashie
28
+ requirement: &84034830 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *84034830
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ requirement: &84034550 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ version: 2.5.0
45
+ type: :development
46
+ prerelease: false
47
+ version_requirements: *84034550
48
+ - !ruby/object:Gem::Dependency
49
+ name: vcr
50
+ requirement: &84034300 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 1.11.1
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *84034300
59
+ - !ruby/object:Gem::Dependency
60
+ name: webmock
61
+ requirement: &84034030 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: 1.7.0
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *84034030
70
+ - !ruby/object:Gem::Dependency
71
+ name: awesome_print
72
+ requirement: &84033770 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.4.0
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: *84033770
81
+ description: Scrapes reliefweb's featured disasters, and pulls additional information
82
+ from glidenumber.net
83
+ email:
84
+ - it_dept@crossroads.org.hk
85
+ executables: []
86
+ extensions: []
87
+ extra_rdoc_files: []
88
+ files:
89
+ - .gitignore
90
+ - .rspec
91
+ - Gemfile
92
+ - README.md
93
+ - Rakefile
94
+ - lib/glidenumber.rb
95
+ - lib/reliefweb.rb
96
+ - reliefweb_scraper.gemspec
97
+ - spec/fixtures/vcr_cassettes/glidenumber.yml
98
+ - spec/fixtures/vcr_cassettes/reliefweb.yml
99
+ - spec/lib/glidenumber_spec.rb
100
+ - spec/lib/reliefweb_spec.rb
101
+ - spec/spec_helper.rb
102
+ homepage: http://www.crossroads.org.hk
103
+ licenses: []
104
+ post_install_message:
105
+ rdoc_options: []
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ! '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 1.8.6
123
+ signing_key:
124
+ specification_version: 3
125
+ summary: Scrape Reliefweb featured disasters
126
+ test_files: []