lhs 12.2.0 → 12.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 73ccff4b48445ae9b548d688af83448b607dd635
4
- data.tar.gz: d786114a63d3d8d8eeb87495d84e1823c0cfcd50
3
+ metadata.gz: f8cf5dca801873de0a2f1dce552f1c0a0fed9193
4
+ data.tar.gz: cfcc3159765215d4319c26c8dca56cc82bca8263
5
5
  SHA512:
6
- metadata.gz: a2320ec4f39b5255536ab3d5a1819aac8919b4199e852b8968e3866d5a7144edb53c3a64ccdce11b4627de8bd990b360b5a5069f7ac4ac95624235e7aa5b5d38
7
- data.tar.gz: 03af49fcdce27f7000e3446429f532b2d005dcc1de19cc17e1de177da534cb859e8dfba6ea29c9cfe49b32007e338a82c975c0304ce8b0686e0a179a56407396
6
+ metadata.gz: 3605514ae588fe9ddfd1fb2e4496d9e39512dcf2830873c86844dbddf118776baf7507ac3d949a279e6a8bebc1f28dd43a1cd14bf1435b1834a779582b2834b2
7
+ data.tar.gz: 9e10cc9fb96fc06dc42541908b1daec77bc0cedd1162d042fd92595c0a388226d22e47892dd9d7cb20e283624a6dfcb65d88c1ca3080a1ca4f50b8396c10f1f8
@@ -17,6 +17,7 @@ class LHS::Proxy
17
17
 
18
18
  # prevent clashing with attributes of underlying data
19
19
  attr_accessor :_data, :_loaded
20
+ delegate :_record, to: :_data, allow_nil: true
20
21
 
21
22
  def initialize(data)
22
23
  self._data = data
@@ -33,12 +34,24 @@ class LHS::Proxy
33
34
  end
34
35
 
35
36
  def reload!(options = nil)
36
- raise 'No href found' unless _data.href
37
37
  options = {} if options.blank?
38
-
39
- data = _data.class.request(options.merge(url: _data.href, method: :get))
38
+ data = _data.class.request(
39
+ options.merge(method: :get).merge(reload_options)
40
+ )
40
41
  _data.merge_raw!(data)
41
42
  self._loaded = true
42
43
  self
43
44
  end
45
+
46
+ private
47
+
48
+ def as_record
49
+ @as_record ||= becomes(_record)
50
+ end
51
+
52
+ def reload_options
53
+ return { url: _data.href } if _data.href
54
+ return { params: { id: as_record.id } } if as_record.id
55
+ {}
56
+ end
44
57
  end
@@ -1,3 +1,3 @@
1
1
  module LHS
2
- VERSION = "12.2.0"
2
+ VERSION = "12.2.1"
3
3
  end
@@ -0,0 +1,41 @@
1
+ require 'rails_helper'
2
+
3
+ describe LHS::Record do
4
+ before(:each) do
5
+ class Record < LHS::Record
6
+ endpoint 'http://datastore/records'
7
+ endpoint 'http://datastore/records/:id'
8
+ end
9
+
10
+ class AnotherRecord < LHS::Record
11
+ endpoint 'http://datastore/otherrecords'
12
+ endpoint 'http://datastore/otherrecords/:id'
13
+
14
+ def id
15
+ another_id
16
+ end
17
+ end
18
+ end
19
+
20
+ context 'reload!' do
21
+ it 'reloads the record by id' do
22
+ stub_request(:post, "http://datastore/records")
23
+ .to_return(body: { id: 1, name: 'Steve' }.to_json)
24
+ record = Record.create!(name: 'Steve')
25
+ stub_request(:get, "http://datastore/records/1")
26
+ .to_return(body: { id: 1, name: 'Steve', async: 'data' }.to_json)
27
+ record.reload!
28
+ expect(record.async).to eq 'data'
29
+ end
30
+
31
+ it 'reloads the record by id if a record method defines the actual id' do
32
+ stub_request(:post, "http://datastore/otherrecords")
33
+ .to_return(body: { another_id: 2, name: 'Can' }.to_json)
34
+ record = AnotherRecord.create!(name: 'Can')
35
+ stub_request(:get, "http://datastore/otherrecords/2")
36
+ .to_return(body: { id: 2, name: 'Can', async: 'data' }.to_json)
37
+ record.reload!
38
+ expect(record.async).to eq 'data'
39
+ end
40
+ end
41
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lhs
3
3
  version: !ruby/object:Gem::Version
4
- version: 12.2.0
4
+ version: 12.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://github.com/local-ch/lhs/graphs/contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-31 00:00:00.000000000 Z
11
+ date: 2017-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lhc
@@ -373,6 +373,7 @@ files:
373
373
  - spec/record/pagination_spec.rb
374
374
  - spec/record/persisted_spec.rb
375
375
  - spec/record/references_spec.rb
376
+ - spec/record/reload_by_id_spec.rb
376
377
  - spec/record/request_spec.rb
377
378
  - spec/record/save_spec.rb
378
379
  - spec/record/scope_chains_spec.rb
@@ -543,6 +544,7 @@ test_files:
543
544
  - spec/record/pagination_spec.rb
544
545
  - spec/record/persisted_spec.rb
545
546
  - spec/record/references_spec.rb
547
+ - spec/record/reload_by_id_spec.rb
546
548
  - spec/record/request_spec.rb
547
549
  - spec/record/save_spec.rb
548
550
  - spec/record/scope_chains_spec.rb