g5_updatable 0.10.3 → 0.20.3.pre.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -2
  3. data/app/concerns/g5_updatable/belongs_to_client.rb +3 -3
  4. data/app/controllers/g5_updatable/feed_controller.rb +1 -1
  5. data/app/controllers/g5_updatable/locations_controller.rb +2 -2
  6. data/app/controllers/g5_updatable/syncs_controller.rb +3 -3
  7. data/app/models/g5_updatable/client.rb +4 -4
  8. data/app/models/g5_updatable/hub_amenities_location.rb +6 -0
  9. data/app/models/g5_updatable/hub_amenity.rb +21 -0
  10. data/app/models/g5_updatable/location.rb +75 -2
  11. data/app/serializers/g5_updatable/location_serializer.rb +8 -0
  12. data/db/migrate/20151103043916_add_latitude_and_longitude_to_location.rb +6 -0
  13. data/db/migrate/20151103050229_copy_lat_long_props_to_lat_long_columns.rb +19 -0
  14. data/db/migrate/20151106070749_add_latitude_longitude_indexes_to_location.rb +6 -0
  15. data/db/migrate/20161122070749_add_amenities.rb +25 -0
  16. data/db/migrate/20161209070749_add_client_urn_to_locations.rb +6 -0
  17. data/lib/g5_updatable.rb +5 -3
  18. data/lib/g5_updatable/all_client_urns_fetcher.rb +17 -0
  19. data/lib/g5_updatable/client_feed_processor.rb +26 -14
  20. data/lib/g5_updatable/client_updater.rb +37 -12
  21. data/lib/g5_updatable/factories.rb +2 -2
  22. data/lib/g5_updatable/fetcher.rb +22 -0
  23. data/lib/g5_updatable/indifferentizer.rb +11 -0
  24. data/lib/g5_updatable/locations_updater.rb +68 -20
  25. data/lib/g5_updatable/rspec/factories.rb +53 -2
  26. data/lib/g5_updatable/version.rb +1 -1
  27. data/lib/tasks/g5_updatable_tasks.rake +11 -4
  28. data/spec/concerns/g5_updatable/belongs_to_client_spec.rb +1 -3
  29. data/spec/controllers/feed_controller_spec.rb +21 -0
  30. data/spec/controllers/syncs_controller_spec.rb +3 -3
  31. data/spec/dummy/config/database.yml +2 -2
  32. data/spec/dummy/db/schema.rb +28 -1
  33. data/spec/dummy/log/development.log +172 -146
  34. data/spec/dummy/log/test.log +101011 -13426
  35. data/spec/dummy/log/tests.log +0 -0
  36. data/spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily-missing-locations.json +121 -0
  37. data/spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily-no-locations.json +41 -0
  38. data/spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily.json +471 -0
  39. data/spec/fixtures/hub-client.json +187 -0
  40. data/spec/fixtures/hub-clients.json +19972 -0
  41. data/spec/fixtures/hub-location.json +166 -0
  42. data/spec/fixtures/location-g5-cl-1soj9pe2-541-apartments.json +98 -0
  43. data/spec/fixtures/urns.json +10 -0
  44. data/spec/lib/g5_updatable/all_client_urns_fetcher_spec.rb +56 -0
  45. data/spec/lib/g5_updatable/client_feed_processor_spec.rb +86 -33
  46. data/spec/lib/g5_updatable/client_updater_spec.rb +55 -23
  47. data/spec/lib/g5_updatable/locations_updater_spec.rb +140 -54
  48. data/spec/models/g5_updatable/client_spec.rb +2 -0
  49. data/spec/models/g5_updatable/hub_amenities_location_spec.rb +6 -0
  50. data/spec/models/g5_updatable/hub_amenity_spec.rb +29 -0
  51. data/spec/models/g5_updatable/location_spec.rb +240 -10
  52. data/spec/serializers/g5_updatable/location_serializer_spec.rb +2 -1
  53. data/spec/spec_helper.rb +2 -1
  54. data/spec/support/fixture_helper.rb +5 -0
  55. data/spec/support/shared_examples/belongs_to_client.rb +4 -5
  56. metadata +84 -17
@@ -6,9 +6,16 @@ describe G5Updatable::Location do
6
6
 
7
7
  it { expect(location).to validate_presence_of(:uid) }
8
8
  it { expect(location).to validate_presence_of(:urn) }
9
+ it { expect(location).to validate_uniqueness_of(:urn) }
9
10
  it { expect(location).to validate_presence_of(:client_uid) }
11
+ it { expect(location).to validate_presence_of(:client_urn) }
12
+ it { expect(location).to have_attribute(:latitude) }
13
+ it { expect(location).to have_attribute(:longitude) }
10
14
  end
11
15
 
16
+ it { is_expected.to have_many(:hub_amenities_locations).dependent(:destroy) }
17
+ it { is_expected.to have_many(:hub_amenities).through(:hub_amenities_locations) }
18
+
12
19
  it_behaves_like 'a model with first-class properties' do
13
20
  let(:instance_factory_name) { :location }
14
21
  end
@@ -19,25 +26,22 @@ describe G5Updatable::Location do
19
26
 
20
27
  describe '#client' do
21
28
  let(:client) { create(:client) }
22
- let(:location) { create(:location, client_uid: client.uid) }
29
+ let(:location) { create(:location, client_uid: client.uid, client_urn: nil) }
23
30
  subject { location.client }
24
31
 
25
- it { should eq(client) }
32
+ it { is_expected.to eq(client) }
26
33
 
27
34
  describe 'client_urn' do
28
- it 'delegates client_urn to client' do
29
- expect(location.client_urn).to eq(client.urn)
30
- end
31
-
32
- it 'returns nil if client not found' do
33
- expect(create(:location, client_uid: 'madeup').client_urn).to be_nil
35
+ it 'uses client_uid to set client_urn if not present' do
36
+ expect(location.client_urn).to eq(client.uid.split('/').last)
34
37
  end
35
38
  end
36
39
  end
37
40
 
38
41
  context 'scopes' do
39
- let!(:location) { create(:location) }
40
- let!(:location2) { create(:location, client_uid: 'something_else', urn: 'another_urn') }
42
+ let(:client) { create(:client) }
43
+ let!(:location) { create(:location, client_urn: 'a client urn', client_uid: 'a client uid') }
44
+ let!(:location2) { create(:g5mf_location, :all_properties) }
41
45
 
42
46
  describe '.by_client_uid' do
43
47
  it 'returns locations' do
@@ -45,6 +49,12 @@ describe G5Updatable::Location do
45
49
  end
46
50
  end
47
51
 
52
+ describe '.by_client_urn' do
53
+ it 'returns locations' do
54
+ expect(described_class.by_client_urn(location.client_urn)).to eq [location]
55
+ end
56
+ end
57
+
48
58
  describe '.max_updated_at' do
49
59
  it 'returns locations' do
50
60
  expect(described_class.max_updated_at.to_s).to eq location2.updated_at.to_s
@@ -56,6 +66,56 @@ describe G5Updatable::Location do
56
66
  expect(described_class.by_urn(location.urn)).to eq [location]
57
67
  end
58
68
  end
69
+
70
+ describe '.in_status' do
71
+ it 'returns locations matching status' do
72
+ expect(described_class.in_status(location2.status)).to eq [location2]
73
+ end
74
+
75
+ it 'returns locations with one of the statuses' do
76
+ expect(described_class.in_status([location2.status, 'madeup'])).to eq [location2]
77
+ end
78
+ end
79
+
80
+ describe '.by_postal_code' do
81
+ it 'returns locations with matching postal code' do
82
+ expect(described_class.by_postal_code(location2.postal_code)).to eq [location2]
83
+ end
84
+ end
85
+
86
+ describe '.by_city' do
87
+ it 'returns locations with matching city' do
88
+ expect(described_class.by_city(location2.city)).to eq [location2]
89
+ end
90
+ end
91
+
92
+ describe '.by_state' do
93
+ it 'returns locations with matching state' do
94
+ expect(described_class.by_state(location2.state)).to eq [location2]
95
+ end
96
+ end
97
+
98
+ describe '.by_neighborhood' do
99
+ it 'returns locations with neighborhood' do
100
+ expect(described_class.by_neighborhood(location2.neighborhood)).to eq [location2]
101
+ expect(described_class.by_neighborhood(location2.neighborhood_2)).to eq [location2]
102
+ end
103
+ end
104
+
105
+ describe '#neighborhoods' do
106
+ it 'returns all neighborhoods' do
107
+ expect(location2.neighborhoods).to eq([location2.neighborhood, location2.neighborhood_2])
108
+ end
109
+
110
+ it 'return empty array if no neighborhoods' do
111
+ expect(location.neighborhoods).to be_empty
112
+ end
113
+
114
+ it 'ignores blank neighborhoods' do
115
+ location_with_blank = create(:g5mf_location, urn: 'sumpn', uid: 'http://sumpn', properties: {neighborhood: ''})
116
+ expect(location_with_blank.neighborhoods).to be_empty
117
+ end
118
+ end
59
119
  end
60
120
 
61
121
  describe '#display_name' do
@@ -76,4 +136,174 @@ describe G5Updatable::Location do
76
136
  its(:display_name) { is_expected.to be_nil }
77
137
  end
78
138
  end
139
+
140
+ describe "#live?" do
141
+ subject { described_class.new(properties: properties) }
142
+ context "status is Live" do
143
+ let(:properties) { {'status' => 'Live'} }
144
+ its(:live?) { is_expected.to eq true }
145
+ end
146
+
147
+ context "status is something else" do
148
+ let(:properties) { {'status' => 'Pending'} }
149
+ its(:live?) { is_expected.to eq false }
150
+ end
151
+ end
152
+
153
+ context "#no_deploy?" do
154
+ subject { described_class.new(properties: properties) }
155
+ context "status is No Deploy" do
156
+ let(:properties) { {'status' => 'No Deploy'} }
157
+ its(:no_deploy?) { is_expected.to eq true }
158
+ end
159
+
160
+ context "status is something else" do
161
+ let(:properties) { {'status' => 'Pending'} }
162
+ its(:no_deploy?) { is_expected.to eq false }
163
+ end
164
+ end
165
+
166
+ context "#pending?" do
167
+ subject { described_class.new(properties: properties) }
168
+ context "status is Pending" do
169
+ let(:properties) { {'status' => 'Pending'} }
170
+ its(:pending?) { is_expected.to eq true }
171
+ end
172
+
173
+ context "status is something else" do
174
+ let(:properties) { {'status' => 'Live'} }
175
+ its(:pending?) { is_expected.to eq false }
176
+ end
177
+ end
178
+
179
+ context "#deleted?" do
180
+ subject { described_class.new(properties: properties) }
181
+ context "status is Deleted" do
182
+ let(:properties) { {'status' => 'Deleted'} }
183
+ its(:deleted?) { is_expected.to eq true }
184
+ end
185
+
186
+ context "status is something else" do
187
+ let(:properties) { {'status' => 'Live'} }
188
+ its(:deleted?) { is_expected.to eq false }
189
+ end
190
+ end
191
+
192
+ context "#suspended?" do
193
+ subject { described_class.new(properties: properties) }
194
+ context "status is Suspended" do
195
+ let(:properties) { {'status' => 'Suspended'} }
196
+ its(:suspended?) { is_expected.to eq true }
197
+ end
198
+
199
+ context "status is something else" do
200
+ let(:properties) { {'status' => 'Live'} }
201
+ its(:suspended?) { is_expected.to eq false }
202
+ end
203
+ end
204
+
205
+ context "#status?" do
206
+ subject { location.status?(status_parameter) }
207
+ let(:location) { described_class.new(properties: properties) }
208
+ let(:status_parameter) { "Given Status" }
209
+
210
+ context "status property matches the given status parameter" do
211
+ let(:properties) { {"status" => "Given Status"} }
212
+ it { is_expected.to eq true }
213
+ end
214
+
215
+ context "status property matches the given status parameter regardless of letter case" do
216
+ let(:properties) { {"status" => "giveN StAtus"} }
217
+ it { is_expected.to eq true }
218
+ end
219
+
220
+ context "status property matches the given status parameter, regardless of leading/trailing whitespace" do
221
+ let(:properties) { {"status" => " Given Status \t"} }
222
+ let(:status_parameter) { " Given Status \t\n" }
223
+ it { is_expected.to eq true }
224
+ end
225
+
226
+ context "status is something else" do
227
+ let(:properties) { {'status' => 'Live'} }
228
+ it { is_expected.to eq false }
229
+ end
230
+
231
+ context "no status" do
232
+ let(:properties) { {} }
233
+ it { is_expected.to eq false }
234
+ end
235
+
236
+ context "no properties attribute" do
237
+ let(:properties) { nil }
238
+ it { is_expected.to eq false }
239
+ end
240
+ end
241
+
242
+ describe '#amenities' do
243
+ let!(:location) { create(:location) }
244
+ let!(:amenity) { create(:hub_amenity) }
245
+ let!(:amenity2) { create(:hub_amenity) }
246
+
247
+ before do
248
+ location.hub_amenities << amenity
249
+ location.hub_amenities << amenity2
250
+ location.refresh_flat_amenity_names!
251
+ location.reload
252
+ end
253
+
254
+ it 'associates amenities' do
255
+ expect(location.hub_amenities).to match_array([amenity, amenity2])
256
+ expect(location.hub_amenities_locations.collect(&:location)).to eq([location, location])
257
+ end
258
+
259
+ it 'sets the flat amenity names' do
260
+ expect(location.flat_amenity_names).to eq("|#{location.hub_amenities.collect(&:name).sort.join('|')}|")
261
+ end
262
+ end
263
+
264
+ describe 'amenity scopes' do
265
+ let!(:location) { create(:location, properties: {city: 'mycity', state: 'AK', status: 'Pending'}, amenity_names_array: ['a', 'b', 'c', 'z']) }
266
+ let!(:location2) { create(:location, urn: 'adiffurn', uid: 'adiffuid', amenity_names_array: ['b', 'c', 'd', 'z']) }
267
+
268
+ describe '#by_amenity_names' do
269
+ it 'finds by one matching amenity' do
270
+ expect(described_class.by_amenity_names('a')).to eq([location])
271
+ expect(described_class.by_amenity_names('a', 'b')).to eq([location])
272
+ expect(described_class.by_amenity_names('b', 'a')).to eq([location])
273
+ end
274
+
275
+ it 'finds by multiple matching amenities' do
276
+ expect(described_class.by_amenity_names(['b', 'c'])).to match_array([location, location2])
277
+ expect(described_class.by_amenity_names('c', 'b')).to match_array([location, location2])
278
+ expect(described_class.by_amenity_names(['c', 'b'])).to match_array([location, location2])
279
+ end
280
+
281
+ it 'finds by multiple matching amenities that are not in order' do
282
+ expect(described_class.by_amenity_names(['a', 'c'])).to match_array([location])
283
+ expect(described_class.by_amenity_names('d', 'b')).to match_array([location2])
284
+ expect(described_class.by_amenity_names(['z', 'b'])).to match_array([location, location2])
285
+ end
286
+
287
+ it 'does not match if one amenity does not match' do
288
+ expect(described_class.by_amenity_names('b', 'y')).to be_empty
289
+ end
290
+
291
+ it 'is chainable' do
292
+ expect(described_class.by_city('mycity').by_amenity_names(['a', 'c']).by_state('AK').in_status('Pending')).to match_array([location])
293
+ end
294
+ end
295
+ end
296
+
297
+ describe '#amenity_names_to_tokenized_string' do
298
+ [{input: ['a'], expected: '|a|'},
299
+ {input: ['b', 'a'], expected: '|a|b|'},
300
+ {input: 'b', expected: '|b|'},
301
+ {input: '', expected: nil},
302
+ {input: nil, expected: nil}
303
+ ].each do |test_hash|
304
+ it "converts #{test_hash[:input]} to #{test_hash[:expected]}" do
305
+ expect(described_class.amenity_names_to_tokenized_string(test_hash[:input])).to eq(test_hash[:expected])
306
+ end
307
+ end
308
+ end
79
309
  end
@@ -7,12 +7,13 @@ describe G5Updatable::LocationSerializer do
7
7
  uid: "https://example.com/locations/test-urn",
8
8
  urn: "test-urn",
9
9
  client_uid: "https://example.com/client",
10
+ name: "Test Name",
10
11
  properties: {
11
12
  name: "Test Name"
12
13
  }
13
14
  )
14
15
  end
15
- subject { G5Updatable::LocationSerializer.new(location).as_json["location"] }
16
+ subject { G5Updatable::LocationSerializer.new(location).as_json }
16
17
 
17
18
  its([:uid]) { is_expected.to eq("https://example.com/locations/test-urn") }
18
19
  its([:urn]) { is_expected.to eq("test-urn") }
data/spec/spec_helper.rb CHANGED
@@ -4,12 +4,12 @@ ENV["RAILS_ENV"] ||= 'test'
4
4
  require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
5
  require 'rspec/rails'
6
6
  require 'rspec/its'
7
+ require 'webmock/rspec'
7
8
 
8
9
  require 'generator_spec'
9
10
  require 'factory_girl'
10
11
  require 'g5_updatable/rspec'
11
12
  require 'shoulda/matchers'
12
- require 'g5_foundation_client/rspec'
13
13
 
14
14
  Rails.backtrace_cleaner.remove_silencers!
15
15
 
@@ -23,6 +23,7 @@ ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
23
23
 
24
24
  RSpec.configure do |config|
25
25
  config.include FactoryGirl::Syntax::Methods
26
+ config.include FixturesHelper
26
27
  # ## Mock Framework
27
28
  #
28
29
  # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
@@ -0,0 +1,5 @@
1
+ module FixturesHelper
2
+ def fixture(fixture_path)
3
+ open(File.join("spec", "fixtures", fixture_path)).read
4
+ end
5
+ end
@@ -1,9 +1,8 @@
1
- RSpec.shared_examples "belongs to client" do
2
-
1
+ RSpec.shared_examples 'belongs to client' do
3
2
  subject { described_class.new }
3
+
4
4
  it do
5
- is_expected.to belong_to(:client).class_name("G5Updatable::Client").
6
- with_foreign_key(:client_uid).with_primary_key(:uid)
5
+ is_expected.to belong_to(:client).class_name('G5Updatable::Client').
6
+ with_foreign_key(:client_urn).with_primary_key(:urn)
7
7
  end
8
-
9
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: g5_updatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.3
4
+ version: 0.20.3.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-16 00:00:00.000000000 Z
11
+ date: 2017-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: g5_foundation_client
28
+ name: g5_authentication_client
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.4.0
33
+ version: 0.5.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.4.0
40
+ version: 0.5.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: pg
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,18 +56,18 @@ dependencies:
56
56
  name: active_model_serializers
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0.8'
61
+ version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0.8'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: virtus
70
+ name: httparty
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '4'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '4'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec-rails
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +150,34 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: webmock
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: shoulda-matchers
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '3.1'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '3.1'
153
181
  description: Client/Locations data update engine for G5 applications
154
182
  email:
155
183
  - brian.bauer@getg5.com
@@ -172,6 +200,8 @@ files:
172
200
  - app/controllers/g5_updatable/syncs_controller.rb
173
201
  - app/helpers/g5_updatable/base_updatable_helper.rb
174
202
  - app/models/g5_updatable/client.rb
203
+ - app/models/g5_updatable/hub_amenities_location.rb
204
+ - app/models/g5_updatable/hub_amenity.rb
175
205
  - app/models/g5_updatable/location.rb
176
206
  - app/serializers/g5_updatable/location_serializer.rb
177
207
  - app/views/layouts/g5_updatable/base_updatable.html.erb
@@ -181,11 +211,19 @@ files:
181
211
  - db/migrate/20141122211945_remove_integration_setting.rb
182
212
  - db/migrate/20141211211945_add_name_to_clients_and_locations.rb
183
213
  - db/migrate/20141211711945_update_names.rb
214
+ - db/migrate/20151103043916_add_latitude_and_longitude_to_location.rb
215
+ - db/migrate/20151103050229_copy_lat_long_props_to_lat_long_columns.rb
216
+ - db/migrate/20151106070749_add_latitude_longitude_indexes_to_location.rb
217
+ - db/migrate/20161122070749_add_amenities.rb
218
+ - db/migrate/20161209070749_add_client_urn_to_locations.rb
184
219
  - lib/g5_updatable.rb
220
+ - lib/g5_updatable/all_client_urns_fetcher.rb
185
221
  - lib/g5_updatable/client_feed_processor.rb
186
222
  - lib/g5_updatable/client_updater.rb
187
223
  - lib/g5_updatable/engine.rb
188
224
  - lib/g5_updatable/factories.rb
225
+ - lib/g5_updatable/fetcher.rb
226
+ - lib/g5_updatable/indifferentizer.rb
189
227
  - lib/g5_updatable/locations_updater.rb
190
228
  - lib/g5_updatable/rspec.rb
191
229
  - lib/g5_updatable/rspec/factories.rb
@@ -195,6 +233,7 @@ files:
195
233
  - lib/tasks/g5_updatable_tasks.rake
196
234
  - spec/concerns/g5_updatable/belongs_to_client_spec.rb
197
235
  - spec/concerns/g5_updatable/belongs_to_location_spec.rb
236
+ - spec/controllers/feed_controller_spec.rb
198
237
  - spec/controllers/locations_controller_spec.rb
199
238
  - spec/controllers/syncs_controller_spec.rb
200
239
  - spec/dummy/README.rdoc
@@ -241,11 +280,21 @@ files:
241
280
  - spec/dummy/db/test.sqlite3
242
281
  - spec/dummy/log/development.log
243
282
  - spec/dummy/log/test.log
283
+ - spec/dummy/log/tests.log
244
284
  - spec/dummy/public/404.html
245
285
  - spec/dummy/public/422.html
246
286
  - spec/dummy/public/500.html
247
287
  - spec/dummy/public/favicon.ico
248
288
  - spec/dummy/tmp/pids/server.pid
289
+ - spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily-missing-locations.json
290
+ - spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily-no-locations.json
291
+ - spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily.json
292
+ - spec/fixtures/hub-client.json
293
+ - spec/fixtures/hub-clients.json
294
+ - spec/fixtures/hub-location.json
295
+ - spec/fixtures/location-g5-cl-1soj9pe2-541-apartments.json
296
+ - spec/fixtures/urns.json
297
+ - spec/lib/g5_updatable/all_client_urns_fetcher_spec.rb
249
298
  - spec/lib/g5_updatable/client_feed_processor_spec.rb
250
299
  - spec/lib/g5_updatable/client_updater_spec.rb
251
300
  - spec/lib/g5_updatable/locations_updater_spec.rb
@@ -254,9 +303,12 @@ files:
254
303
  - spec/lib/generators/tmp/config/routes.rb
255
304
  - spec/lib/tmp/config/routes.rb
256
305
  - spec/models/g5_updatable/client_spec.rb
306
+ - spec/models/g5_updatable/hub_amenities_location_spec.rb
307
+ - spec/models/g5_updatable/hub_amenity_spec.rb
257
308
  - spec/models/g5_updatable/location_spec.rb
258
309
  - spec/serializers/g5_updatable/location_serializer_spec.rb
259
310
  - spec/spec_helper.rb
311
+ - spec/support/fixture_helper.rb
260
312
  - spec/support/shared_example_for_urn_as_parameter.rb
261
313
  - spec/support/shared_examples/belongs_to_client.rb
262
314
  - spec/support/shared_examples_for_first_class_properties_json.rb
@@ -275,18 +327,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
275
327
  version: '0'
276
328
  required_rubygems_version: !ruby/object:Gem::Requirement
277
329
  requirements:
278
- - - ">="
330
+ - - ">"
279
331
  - !ruby/object:Gem::Version
280
- version: '0'
332
+ version: 1.3.1
281
333
  requirements: []
282
334
  rubyforge_project:
283
- rubygems_version: 2.4.5.1
335
+ rubygems_version: 2.5.1
284
336
  signing_key:
285
337
  specification_version: 4
286
338
  summary: Client/Locations data update engine for G5 applications
287
339
  test_files:
288
340
  - spec/concerns/g5_updatable/belongs_to_client_spec.rb
289
341
  - spec/concerns/g5_updatable/belongs_to_location_spec.rb
342
+ - spec/controllers/feed_controller_spec.rb
290
343
  - spec/controllers/locations_controller_spec.rb
291
344
  - spec/controllers/syncs_controller_spec.rb
292
345
  - spec/dummy/app/assets/javascripts/application.js
@@ -331,6 +384,7 @@ test_files:
331
384
  - spec/dummy/db/test.sqlite3
332
385
  - spec/dummy/log/development.log
333
386
  - spec/dummy/log/test.log
387
+ - spec/dummy/log/tests.log
334
388
  - spec/dummy/public/404.html
335
389
  - spec/dummy/public/422.html
336
390
  - spec/dummy/public/500.html
@@ -338,6 +392,15 @@ test_files:
338
392
  - spec/dummy/Rakefile
339
393
  - spec/dummy/README.rdoc
340
394
  - spec/dummy/tmp/pids/server.pid
395
+ - spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily-missing-locations.json
396
+ - spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily-no-locations.json
397
+ - spec/fixtures/client-g5-c-1soj8m6e-g5-multifamily.json
398
+ - spec/fixtures/hub-client.json
399
+ - spec/fixtures/hub-clients.json
400
+ - spec/fixtures/hub-location.json
401
+ - spec/fixtures/location-g5-cl-1soj9pe2-541-apartments.json
402
+ - spec/fixtures/urns.json
403
+ - spec/lib/g5_updatable/all_client_urns_fetcher_spec.rb
341
404
  - spec/lib/g5_updatable/client_feed_processor_spec.rb
342
405
  - spec/lib/g5_updatable/client_updater_spec.rb
343
406
  - spec/lib/g5_updatable/locations_updater_spec.rb
@@ -346,9 +409,13 @@ test_files:
346
409
  - spec/lib/generators/tmp/config/routes.rb
347
410
  - spec/lib/tmp/config/routes.rb
348
411
  - spec/models/g5_updatable/client_spec.rb
412
+ - spec/models/g5_updatable/hub_amenities_location_spec.rb
413
+ - spec/models/g5_updatable/hub_amenity_spec.rb
349
414
  - spec/models/g5_updatable/location_spec.rb
350
415
  - spec/serializers/g5_updatable/location_serializer_spec.rb
351
416
  - spec/spec_helper.rb
417
+ - spec/support/fixture_helper.rb
352
418
  - spec/support/shared_example_for_urn_as_parameter.rb
353
419
  - spec/support/shared_examples/belongs_to_client.rb
354
420
  - spec/support/shared_examples_for_first_class_properties_json.rb
421
+ has_rdoc: