reliefweb_scraper 0.1.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.
- data/.gitignore +4 -0
- data/.rspec +4 -0
- data/Gemfile +10 -0
- data/README.md +25 -0
- data/Rakefile +21 -0
- data/lib/glidenumber.rb +51 -0
- data/lib/reliefweb.rb +39 -0
- data/reliefweb_scraper.gemspec +27 -0
- data/spec/fixtures/vcr_cassettes/glidenumber.yml +427 -0
- data/spec/fixtures/vcr_cassettes/reliefweb.yml +785 -0
- data/spec/lib/glidenumber_spec.rb +19 -0
- data/spec/lib/reliefweb_spec.rb +29 -0
- data/spec/spec_helper.rb +19 -0
- metadata +126 -0
@@ -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
|
+
|
data/spec/spec_helper.rb
ADDED
@@ -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: []
|