scraperwiki-api 0.0.5 → 0.0.6
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/.travis.yml +3 -0
- data/README.md +5 -1
- data/USAGE +1 -1
- data/lib/scraperwiki-api.rb +7 -9
- data/lib/scraperwiki-api/matchers.rb +65 -0
- data/lib/scraperwiki-api/version.rb +1 -1
- data/scraperwiki-api.gemspec +1 -0
- metadata +42 -9
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# The ScraperWiki API Ruby Gem
|
2
2
|
|
3
|
-
A Ruby wrapper for the ScraperWiki API.
|
3
|
+
A Ruby wrapper for the [ScraperWiki](https://scraperwiki.com/) [API](https://scraperwiki.com/docs/api).
|
4
|
+
|
5
|
+
[](http://travis-ci.org/opennorth/scraperwiki-api-ruby)
|
6
|
+
[](https://gemnasium.com/opennorth/scraperwiki-api-ruby)
|
7
|
+
[](https://codeclimate.com/github/opennorth/scraperwiki-api-ruby)
|
4
8
|
|
5
9
|
## Installation
|
6
10
|
|
data/USAGE
CHANGED
@@ -1 +1 @@
|
|
1
|
-
See README.md for full usage details.
|
1
|
+
See README.md for full usage details.
|
data/lib/scraperwiki-api.rb
CHANGED
@@ -7,9 +7,6 @@ module ScraperWiki
|
|
7
7
|
include HTTParty
|
8
8
|
base_uri 'api.scraperwiki.com/api/1.0'
|
9
9
|
|
10
|
-
class Error < StandardError; end
|
11
|
-
class ScraperNotFound < Error; end
|
12
|
-
|
13
10
|
RUN_INTERVALS = {
|
14
11
|
never: -1,
|
15
12
|
monthly: 2678400,
|
@@ -79,8 +76,8 @@ module ScraperWiki
|
|
79
76
|
# @param [Hash] opts optional arguments
|
80
77
|
# @option opts [String] :format one of "jsondict", "jsonlist", "csv",
|
81
78
|
# "htmltable" or "rss2"
|
82
|
-
# @option opts [String] :attach ";"-delimited list of shortnames of
|
83
|
-
# scrapers whose data you need to access
|
79
|
+
# @option opts [Array,String] :attach ";"-delimited list of shortnames of
|
80
|
+
# other scrapers whose data you need to access
|
84
81
|
# @return [Array,Hash,String]
|
85
82
|
# @see https://scraperwiki.com/docs/ruby/ruby_help_documentation/
|
86
83
|
#
|
@@ -189,12 +186,13 @@ module ScraperWiki
|
|
189
186
|
# @option opts [String] :version version number (-1 for most recent) [default -1]
|
190
187
|
# @option opts [String] :history_start_date history and runevents are
|
191
188
|
# restricted to this date or after, enter as YYYY-MM-DD
|
192
|
-
# @option opts [String] :quietfields "|"-delimited list of fields to
|
193
|
-
# from the output. Must be a subset of 'code|runevents|datasummary|userroles|history'
|
189
|
+
# @option opts [Array,String] :quietfields "|"-delimited list of fields to
|
190
|
+
# exclude from the output. Must be a subset of 'code|runevents|datasummary|userroles|history'
|
194
191
|
# @return [Array]
|
195
192
|
#
|
196
193
|
# @note Returns an array although the array seems to always have only one item
|
197
194
|
# @note The +tags+ field seems to always be an empty array
|
195
|
+
# @note Fields like +last_run+ seem to follow British Summer Time.
|
198
196
|
# @note The query string parameter is +name+, not +shortname+
|
199
197
|
# {https://scraperwiki.com/docs/api#getinfo as in the ScraperWiki docs}
|
200
198
|
def scraper_getinfo(shortname, opts = {})
|
@@ -318,8 +316,8 @@ module ScraperWiki
|
|
318
316
|
# @param [Hash] opts optional arguments
|
319
317
|
# @option opts [String] :searchquery search terms
|
320
318
|
# @option opts [Integer] :maxrows number of results to return [default 5]
|
321
|
-
# @option opts [String] :nolist space-separated list of usernames to
|
322
|
-
# from the output
|
319
|
+
# @option opts [Array,String] :nolist space-separated list of usernames to
|
320
|
+
# exclude from the output
|
323
321
|
# @option opts [String] :requestinguser the name of the user making the
|
324
322
|
# search, which changes the order of the matches
|
325
323
|
# @return [Array]
|
@@ -1,4 +1,7 @@
|
|
1
|
+
require 'time'
|
2
|
+
|
1
3
|
require 'rspec'
|
4
|
+
require 'yajl'
|
2
5
|
|
3
6
|
module ScraperWiki
|
4
7
|
class API
|
@@ -168,6 +171,68 @@ module ScraperWiki
|
|
168
171
|
RunIntervalMatcher.new :never
|
169
172
|
end
|
170
173
|
|
174
|
+
class LastRunMatcher < ScraperInfoMatcher
|
175
|
+
def months
|
176
|
+
@multiplier = 2592000 # 30 days
|
177
|
+
self
|
178
|
+
end
|
179
|
+
alias :month :months
|
180
|
+
|
181
|
+
def weeks
|
182
|
+
@multiplier = 604800
|
183
|
+
self
|
184
|
+
end
|
185
|
+
alias :week :weeks
|
186
|
+
|
187
|
+
def days
|
188
|
+
@multiplier = 86400
|
189
|
+
self
|
190
|
+
end
|
191
|
+
alias :day :days
|
192
|
+
|
193
|
+
def hours
|
194
|
+
@multiplier = 3600
|
195
|
+
self
|
196
|
+
end
|
197
|
+
alias :hour :hours
|
198
|
+
|
199
|
+
def minutes
|
200
|
+
@multiplier = 60
|
201
|
+
self
|
202
|
+
end
|
203
|
+
alias :minute :minutes
|
204
|
+
|
205
|
+
def seconds
|
206
|
+
@multiplier = 3600
|
207
|
+
self
|
208
|
+
end
|
209
|
+
alias :second :seconds
|
210
|
+
|
211
|
+
# @todo +last_run+ seems to follow British Summer Time, in which case it
|
212
|
+
# will be +00, not +01, for part of the year.
|
213
|
+
def matches?(actual)
|
214
|
+
super
|
215
|
+
Time.now - Time.parse("#{@actual['last_run']}+01") < span
|
216
|
+
end
|
217
|
+
|
218
|
+
def span
|
219
|
+
@expected * (@multiplier || 1)
|
220
|
+
end
|
221
|
+
|
222
|
+
def failure_message
|
223
|
+
"expected #{@actual['short_name']} to have run within #{span} seconds"
|
224
|
+
end
|
225
|
+
|
226
|
+
def negative_failure_message
|
227
|
+
"expected #{@actual['short_name']} to not have run within #{span} seconds"
|
228
|
+
end
|
229
|
+
end
|
230
|
+
# @example
|
231
|
+
# it {should have_run_within(7).days}
|
232
|
+
def have_run_within(expected)
|
233
|
+
LastRunMatcher.new expected
|
234
|
+
end
|
235
|
+
|
171
236
|
class TablesMatcher < ScraperInfoMatcher
|
172
237
|
def on(table)
|
173
238
|
@table = table
|
data/scraperwiki-api.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scraperwiki-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
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
|
+
date: 2012-09-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: yajl-ruby
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: httparty
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ~>
|
@@ -32,18 +37,44 @@ dependencies:
|
|
32
37
|
version: 0.8.0
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.8.0
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: rspec
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '2.10'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
57
|
none: false
|
40
58
|
requirements:
|
41
59
|
- - ~>
|
42
60
|
- !ruby/object:Gem::Version
|
43
61
|
version: '2.10'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
44
70
|
type: :development
|
45
71
|
prerelease: false
|
46
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
47
78
|
description: A Ruby wrapper for the ScraperWiki API
|
48
79
|
email:
|
49
80
|
- info@opennorth.ca
|
@@ -52,6 +83,7 @@ extensions: []
|
|
52
83
|
extra_rdoc_files: []
|
53
84
|
files:
|
54
85
|
- .gitignore
|
86
|
+
- .travis.yml
|
55
87
|
- Gemfile
|
56
88
|
- LICENSE
|
57
89
|
- README.md
|
@@ -83,10 +115,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
115
|
version: '0'
|
84
116
|
requirements: []
|
85
117
|
rubyforge_project:
|
86
|
-
rubygems_version: 1.8.
|
118
|
+
rubygems_version: 1.8.24
|
87
119
|
signing_key:
|
88
120
|
specification_version: 3
|
89
121
|
summary: The ScraperWiki API Ruby Gem
|
90
122
|
test_files:
|
91
123
|
- spec/scraperwiki-api_spec.rb
|
92
124
|
- spec/spec_helper.rb
|
125
|
+
has_rdoc:
|