turbot-runner 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZGNkNjczYTY5MjA4M2RjYTFhOGFhMWIxY2UxZjhiZDg0M2U2Mzg2YQ==
4
+ OTEyMjJkMGUzZDg1ODFkZmYzNDM1MzUwMDk0MmY2ZTJiYTQ5OGUyOQ==
5
5
  data.tar.gz: !binary |-
6
- MmVkZmZlYTI3ZDhmNGI3MWRmMThkNGQwZWE2NWVhMDYxOGEyZmU4Nw==
6
+ ZTYwYWE1MmUwMjExNjA1ZGU4NzQ4Njg2YjU0NWQ3ODBlZTc0YTZkMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NmFlYzdkOGQ4N2FmNWU3MTA1MGYwNDZmN2NlZTEwZDhiMWIyNThiOTkzYWYw
10
- OTNiZDM0NzQ3ZDQ3ZjA5YmQwYjliODgyMzcyOWE4ZDE2OTViY2RlNjEzNGEz
11
- NGZmMGJhNDM2NTA3NGU5NDFiZjIxMjhmNzUwOTY4ZmMxM2RjMmY=
9
+ ODM5Njk5YTc5YzMyZDFiMmFkZDEzNzczOTVhMjQ4NzUyZWFiYTI2ZDU4ZmU4
10
+ M2RjM2U0NTMwNzZjMWRiZjRkNjJlMmZmMTEyODM3MzI5NDM5NTQ2YjkzZGZh
11
+ MWI2NWVlZjQ1ZTRjNmNjMDkxZjBlOTA5N2ZiNmNkYWQyNjMyNzU=
12
12
  data.tar.gz: !binary |-
13
- NzkxMTBiM2UwM2IyZjY2MWMyNGMxYjBlZWU4NDBlMTVlMTA1OGRjOTQxYmRh
14
- MWM1Y2M5MmNlM2U4OTg1NWUzMzg3YTlkMTVlMjdhMmU5MmM4MTY2Mzk2Y2U1
15
- MjRiNjk5NGY1MDk4MTE0OTdjZGU1ZWRkOTYwN2NlYTA2ZjQ2ZDc=
13
+ MTlkODMwMjVhNDkwZTgyZTdhMTVhNGYyOGNhNzk5OWIyZTFkNTgwNjZlYjVi
14
+ N2M4OWEyNTk0NGM0MTNhM2FmYjVkNDc1ZjY4ZWY2M2Q5ZWIzOWE2MmNkZmE2
15
+ OTg0YzVjNWUzOTE2YjRhZjU1MDA4MDRlNmI3ZmJkYmJkNzMzZTU=
@@ -1,3 +1,3 @@
1
1
  module TurbotRunner
2
- VERSION = '0.0.10'
2
+ VERSION = '0.0.11'
3
3
  end
data/lib/turbot_runner.rb CHANGED
@@ -126,7 +126,7 @@ module TurbotRunner
126
126
  def validate(record, data_type)
127
127
  schema = get_schema(data_type)
128
128
  errors = JSON::Validator.fully_validate(schema, record, :errors_as_objects => true)
129
- errors.map do |error|
129
+ messages = errors.map do |error|
130
130
  case error[:message]
131
131
  when /The property '#\/' did not contain a required property of '(\w+)'/
132
132
  "Missing required attribute: #{Regexp.last_match(1)}"
@@ -134,6 +134,25 @@ module TurbotRunner
134
134
  error[:message]
135
135
  end
136
136
  end
137
+
138
+ if messages.empty?
139
+ identifying_fields = identifying_fields_for_data_type(data_type)
140
+ if record.slice(*identifying_fields).empty?
141
+ messages << ["Missing attributes for identifying fields: #{identifying_fields}"]
142
+ end
143
+ end
144
+
145
+ messages
146
+ end
147
+
148
+ def identifying_fields_for_data_type(data_type)
149
+ if data_type == config['data_type']
150
+ @config['identifying_fields']
151
+ else
152
+ transformers = @config['transformers'].select {|transformer| transformer['data_type'] == data_type}
153
+ raise "Expected to find precisely 1 transformer matching #{data_type} in manifest.json" unless transformers.size == 1
154
+ transformers[0]['identifying_fields']
155
+ end
137
156
  end
138
157
 
139
158
  def get_schema(data_type)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbot-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenCorporates
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-09 00:00:00.000000000 Z
11
+ date: 2014-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json-schema