archivist-client 0.1.3 → 0.1.4
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.
- checksums.yaml +8 -8
- data/archivist-client.gemspec +3 -1
- data/lib/archivist/client/base.rb +4 -2
- data/lib/archivist/client/filters.rb +19 -19
- data/lib/archivist/client/version.rb +1 -1
- data/lib/archivist/models/document.rb +2 -1
- data/spec/spec_helper.rb +6 -2
- metadata +37 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTZkNjQ0ZjExM2RhYWI2ZTRjZGYxYWRhMzZmZmFiMDQzNDYxYzA3NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MzA3MDBlNWJkNjBiODA5MjQ3OGIwNGQ3MWY5MjUyZDI4YmYyOTFkMw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZTI2YjIzNDI0NTA2MDczYWMxNzI0MzhhMDYyMTA0NmFhZDY4ZjcwNmJiYzc2
|
10
|
+
MjNmNjU3YzU2ZmExNzBiMzg5MDdkZWVjNmFiMTRhZWQyYTVmYjZlNWMzYTBl
|
11
|
+
OGIwN2ViNTM3ZjA1NDFhOTU3NjA2MTA4OTY4YTM5NDRkNDU4NTY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZjE4Y2FjZTQ2MTIyZDgwNjYwNmI5OGU1MzI1NzI0YjhjZTRhN2UyODQwY2I1
|
14
|
+
ZGQwOWYwMDAwMTY4YTkwYzYyN2I4MDQ4Nzc2ODRkOGU1Y2I2Y2U2MzJhMzNk
|
15
|
+
MDkxN2I4OWIyYTU3NTMzMWJmZjA0MjdlZDdkNmQ0ZDgwZWE5NzE=
|
data/archivist-client.gemspec
CHANGED
@@ -25,11 +25,13 @@ Gem::Specification.new do |gem|
|
|
25
25
|
gem.add_development_dependency "bundler", ">= 1.0.0"
|
26
26
|
gem.add_development_dependency "rspec", "~> 2.6"
|
27
27
|
gem.add_development_dependency "debugger"
|
28
|
-
gem.add_development_dependency "webmock"
|
28
|
+
gem.add_development_dependency "webmock", [">= 1.8.0", "< 1.16"]
|
29
29
|
gem.add_development_dependency "vcr"
|
30
30
|
gem.add_development_dependency "reek", ">= 1.2.8"
|
31
31
|
gem.add_development_dependency "roodi", ">= 2.1.0"
|
32
32
|
gem.add_development_dependency "gem-release", ">= 0.7.1"
|
33
|
+
gem.add_development_dependency "coveralls"
|
34
|
+
gem.add_development_dependency "rdoc", ">= 3.12"
|
33
35
|
|
34
36
|
gem.add_dependency "virtus", "~> 1.0.0"
|
35
37
|
gem.add_dependency "representable"
|
@@ -42,14 +42,16 @@ module Archivist
|
|
42
42
|
def search(opts = {})
|
43
43
|
Model::QueryResponse.new.tap do |qr|
|
44
44
|
response = @conn.get('/advancedsearch.php', params(opts))
|
45
|
-
Representation::QueryResponse.new(qr)
|
45
|
+
rep = Representation::QueryResponse.new(qr)
|
46
|
+
puts "#{rep.inspect}"
|
47
|
+
rep.from_json(response.body)
|
46
48
|
end
|
47
49
|
end
|
48
50
|
|
49
51
|
private
|
50
52
|
|
51
53
|
def query(opts)
|
52
|
-
@filters.update
|
54
|
+
@filters.update(opts)
|
53
55
|
@filters.to_query
|
54
56
|
end
|
55
57
|
|
@@ -26,27 +26,27 @@ module Archivist
|
|
26
26
|
|
27
27
|
def initialize(opts)
|
28
28
|
@options = {}
|
29
|
-
self.update
|
29
|
+
self.update(opts)
|
30
30
|
end
|
31
31
|
|
32
|
-
def update
|
33
|
-
self.prune_options
|
34
|
-
self.set_language
|
35
|
-
self.set_years
|
36
|
-
self.set_filters
|
32
|
+
def update(opts)
|
33
|
+
self.prune_options(opts)
|
34
|
+
self.set_language
|
35
|
+
self.set_years
|
36
|
+
self.set_filters
|
37
37
|
end
|
38
38
|
|
39
39
|
# May result in a URI with filters looking like:
|
40
40
|
# http://archive.org/advancedsearch.php?fl%5B0%5D=identifier&fl%5B1%5D=title&fl%5B2%5D=creator&fl%5B3%5D=date&fl%5B4%5D=language&fl%5B5%5D=mediattype&output=json&page=1&q=mediatype:texts%20AND%20-mediatype:collection%20AND%20(language:eng%20OR%20language:English)%20AND%20date:%5B1500-01-01%20TO%201550-12-31%5D&rows=50&sort%5B0%5D=date%20asc
|
41
41
|
alias :to_query :to_s
|
42
42
|
def to_query
|
43
|
-
self.finalize_filters
|
43
|
+
self.finalize_filters
|
44
44
|
@filters.join(' AND ')
|
45
45
|
end
|
46
46
|
|
47
47
|
protected
|
48
48
|
|
49
|
-
def prune_options
|
49
|
+
def prune_options(opts)
|
50
50
|
# Save the options we need to build the filter
|
51
51
|
@options.merge!(opts)
|
52
52
|
# Remove the options used from the passed in options, so they don't get converted into parameters
|
@@ -55,21 +55,21 @@ module Archivist
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
# Only overwrite if update
|
59
|
-
def set_language
|
58
|
+
# Only overwrite if update options has language key
|
59
|
+
def set_language
|
60
60
|
@language = @options[:language] if @options.has_key?(:language)
|
61
61
|
end
|
62
62
|
|
63
|
-
def set_years
|
63
|
+
def set_years
|
64
64
|
start = @options[:start_year]
|
65
65
|
finish = @options[:end_year]
|
66
66
|
@start_year = "#{start}-01-01" if start
|
67
67
|
@end_year = "#{finish}-12-31" if finish
|
68
|
-
self.validate_years
|
68
|
+
self.validate_years
|
69
69
|
end
|
70
70
|
|
71
71
|
# If one is provided, they must *both* be provided
|
72
|
-
def validate_years
|
72
|
+
def validate_years
|
73
73
|
unless @start_year && @end_year
|
74
74
|
raise FilterException, ":start_year and :end_year must always be provided together, but only :start_year provided as #{@start_year}." if @start_year
|
75
75
|
raise FilterException, ":start_year and :end_year must always be provided together, but only :end_year provided as #{@end_year}." if @end_year
|
@@ -77,12 +77,12 @@ module Archivist
|
|
77
77
|
return true
|
78
78
|
end
|
79
79
|
|
80
|
-
def set_filters
|
80
|
+
def set_filters
|
81
81
|
@filters = Array(@options[:filters]) # If opts[:filters] is nil => self.array is []
|
82
82
|
@filters |= DEFAULT_FILTERS
|
83
83
|
end
|
84
84
|
|
85
|
-
def add_language_filter
|
85
|
+
def add_language_filter
|
86
86
|
@filters << if @language
|
87
87
|
"language:#{@language}"
|
88
88
|
else
|
@@ -90,13 +90,13 @@ module Archivist
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
def add_date_filter
|
93
|
+
def add_date_filter
|
94
94
|
@filters << "date:[#{@start_year} TO #{@end_year}]"
|
95
95
|
end
|
96
96
|
|
97
|
-
def finalize_filters
|
98
|
-
self.add_language_filter
|
99
|
-
self.add_date_filter
|
97
|
+
def finalize_filters
|
98
|
+
self.add_language_filter
|
99
|
+
self.add_date_filter
|
100
100
|
self
|
101
101
|
end
|
102
102
|
end
|
@@ -28,7 +28,8 @@ module Archivist
|
|
28
28
|
def format_index
|
29
29
|
response = @conn.get(index_xml_path)
|
30
30
|
Model::FormatIndex.new.tap do |idx|
|
31
|
-
Representation::FormatIndex.new(idx)
|
31
|
+
rep = Representation::FormatIndex.new(idx)
|
32
|
+
rep.from_xml(response.body)
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'vcr'
|
2
|
-
|
3
|
-
|
2
|
+
|
3
|
+
# For code coverage, must be required before all application / gem / library code.
|
4
|
+
require 'coveralls'
|
5
|
+
Coveralls.wear!
|
6
|
+
|
7
|
+
require 'archivist-client'
|
4
8
|
|
5
9
|
def fixture(filename)
|
6
10
|
File.join(File.dirname(__FILE__), 'fixtures', filename)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: archivist-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Duane Johnson
|
@@ -73,14 +73,20 @@ dependencies:
|
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
76
|
+
version: 1.8.0
|
77
|
+
- - <
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '1.16'
|
77
80
|
type: :development
|
78
81
|
prerelease: false
|
79
82
|
version_requirements: !ruby/object:Gem::Requirement
|
80
83
|
requirements:
|
81
84
|
- - ! '>='
|
82
85
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
86
|
+
version: 1.8.0
|
87
|
+
- - <
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.16'
|
84
90
|
- !ruby/object:Gem::Dependency
|
85
91
|
name: vcr
|
86
92
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,6 +143,34 @@ dependencies:
|
|
137
143
|
- - ! '>='
|
138
144
|
- !ruby/object:Gem::Version
|
139
145
|
version: 0.7.1
|
146
|
+
- !ruby/object:Gem::Dependency
|
147
|
+
name: coveralls
|
148
|
+
requirement: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
type: :development
|
154
|
+
prerelease: false
|
155
|
+
version_requirements: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ! '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
- !ruby/object:Gem::Dependency
|
161
|
+
name: rdoc
|
162
|
+
requirement: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ! '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3.12'
|
167
|
+
type: :development
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '3.12'
|
140
174
|
- !ruby/object:Gem::Dependency
|
141
175
|
name: virtus
|
142
176
|
requirement: !ruby/object:Gem::Requirement
|