datacatalog-importer 0.1.8 → 0.1.9

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.8
1
+ 0.1.9
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{datacatalog-importer}
8
- s.version = "0.1.8"
8
+ s.version = "0.1.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David James"]
12
- s.date = %q{2010-03-16}
12
+ s.date = %q{2010-03-17}
13
13
  s.description = %q{This framework makes it easier to write importers for the National Data Catalog.}
14
14
  s.email = %q{djames@sunlightfoundation.com}
15
15
  s.extra_rdoc_files = [
data/lib/pusher.rb CHANGED
@@ -91,23 +91,22 @@ module DataCatalog
91
91
  puts "Updating Organization: #{name}"
92
92
  DataCatalog::Organization.update(docs[0].id, data)
93
93
  else
94
- multiple_matches("Organization", data, n)
94
+ error("Cannot find unique Source with url : #{url}", {
95
+ :error => "#{n} matches: " + docs.map { |x| x.id }.join(" ")
96
+ })
95
97
  end
96
98
  end
97
99
 
98
100
  def find_organization_by(field, name)
99
- verify_one_result(field, name, "Organization") do
100
- DataCatalog::Organization.all(field => name)
101
- end
102
- end
103
-
104
- def verify_one_result(field, name, model)
105
- docs = yield
101
+ docs = DataCatalog::Organization.all(field => name)
106
102
  n = docs.length
107
103
  case n
108
104
  when 0 then nil
109
105
  when 1 then docs[0]
110
- else multiple_matches(model, { field => name }, n)
106
+ else
107
+ error("Cannot find unique Organization with #{field} : #{name}", {
108
+ :error => "#{n} matches: " + docs.map { |x| x.id }.join(" ")
109
+ })
111
110
  end
112
111
  end
113
112
 
@@ -122,7 +121,9 @@ module DataCatalog
122
121
  begin
123
122
  DataCatalog::Source.create(data)
124
123
  rescue DataCatalog::BadRequest => e
125
- create_failed("Source", data[:title], data, e)
124
+ error("Cannot create Source", {
125
+ :params => data
126
+ })
126
127
  end
127
128
  when 1
128
129
  puts "Updating Source: #{data[:title]}"
@@ -130,10 +131,14 @@ module DataCatalog
130
131
  id = docs[0].id
131
132
  DataCatalog::Source.update(id, data)
132
133
  rescue DataCatalog::BadRequest => e
133
- update_failed("Source", data, id, e)
134
+ error("Cannot update Source with id : #{id}", {
135
+ :params => data
136
+ })
134
137
  end
135
138
  else
136
- multiple_matches("Source", data, n)
139
+ error("Cannot find unique Source with url : #{data[:url]}", {
140
+ :error => "#{n} matches: " + docs.map { |x| x.id }.join(" ")
141
+ })
137
142
  end
138
143
  end
139
144
 
@@ -153,7 +158,9 @@ module DataCatalog
153
158
  puts "- Updating Download: #{data[:format]}"
154
159
  DataCatalog::Download.update(docs[0].id, data)
155
160
  else
156
- multiple_matches("Download", data, n)
161
+ error("Cannot find unique Download with source_id : #{source.id} and format : #{data[:format]}", {
162
+ :error => "#{n} matches: " + docs.map { |x| x.id }.join(" ")
163
+ })
157
164
  end
158
165
  end
159
166
 
@@ -175,7 +182,7 @@ module DataCatalog
175
182
  keys.each do |key|
176
183
  value = hash[key]
177
184
  organization = if value
178
- attempts << "#{key}:#{value}"
185
+ attempts << "#{key} : #{value}"
179
186
  find_organization_by(key, value)
180
187
  end
181
188
  break if organization
@@ -189,47 +196,15 @@ module DataCatalog
189
196
  true # return value not important
190
197
  end
191
198
 
192
- # ---
193
-
194
- def create_failed(model, text, data, error)
195
- puts "- Failed. #{error}"
196
- puts " Uploading Report to API."
197
- DataCatalog::Report.create({
198
- :status => "new",
199
- :text => "Cannot create #{model} : #{text}",
200
- :object => {
201
- :error => error,
202
- :params => data,
203
- },
204
- })
205
- nil
206
- end
207
-
208
- def update_failed(model, data, id, error)
209
- puts "- Failed. #{error}"
210
- puts " Uploading Report to API."
211
- DataCatalog::Report.create({
212
- :status => "new",
213
- :text => "Cannot update #{model} of id : #{id}",
214
- :object => {
215
- :error => error,
216
- :params => data,
217
- },
218
- })
219
- nil
220
- end
199
+ protected
221
200
 
222
- def multiple_matches(model, data, n)
223
- puts "- Failed. #{n} matches for #{model}."
201
+ def error(text, object)
202
+ puts "- Failure: #{text}"
224
203
  puts " Uploading Report to API."
225
204
  DataCatalog::Report.create({
226
205
  :status => "new",
227
- :text => "Multiple matches for url : #{data[:url]}",
228
- :object => {
229
- :error => "Cannot automatically update #{model} since there " +
230
- "are #{n} matches for url : #{data[:url]}",
231
- :params => data,
232
- },
206
+ :text => text,
207
+ :object => object,
233
208
  })
234
209
  nil
235
210
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 8
9
- version: 0.1.8
8
+ - 9
9
+ version: 0.1.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - David James
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-16 00:00:00 -04:00
17
+ date: 2010-03-17 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency