lhs 21.1.4 → 21.2.0
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 +4 -4
- data/README.md +18 -0
- data/lib/lhs/concerns/item/update.rb +3 -6
- data/lib/lhs/concerns/record/chainable.rb +10 -0
- data/lib/lhs/version.rb +1 -1
- data/spec/item/partial_update_spec.rb +16 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6225eb173a7f2586b2a7bbeceb9a9d5c0a06c435708b9dd673a288e9e362745d
|
4
|
+
data.tar.gz: 75473dc1a4fd69c7ab8392c965e9ef932a19b30e1aae2505fa902b9e713540c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 897f78093924c54e3d8dce53655f075e8919c09d124cf71e676dd8b20dc3f429c623671f4697006c06d4babb07b8a18c65cd5e4c219cdc5a81955bd2d39b8fa4
|
7
|
+
data.tar.gz: 7f677d03fe47a75f3ac9e87ed9a4fc7f0cf51d30402b79b100fac79f3a6cdff8e85ef902d0615d35db84ea247a9207d08c9e96badd41ea4ff01bf504d9652e60
|
data/README.md
CHANGED
@@ -1631,6 +1631,15 @@ POST https://service.example.com/records/1z-5r1fkaj { body: "{ 'name': 'Starbuck
|
|
1631
1631
|
|
1632
1632
|
-> See [record validation](#record-validation) for how to handle validation errors when updating records.
|
1633
1633
|
|
1634
|
+
You can use `update` and the end of query-chains:
|
1635
|
+
|
1636
|
+
```ruby
|
1637
|
+
# app/controllers/some_controller.rb
|
1638
|
+
|
1639
|
+
record.options(method: :put).update(recommended: true)
|
1640
|
+
|
1641
|
+
```
|
1642
|
+
|
1634
1643
|
You can also pass explicit request options to `update`, by passing two explicit hashes:
|
1635
1644
|
|
1636
1645
|
```ruby
|
@@ -1671,6 +1680,15 @@ POST https://service.example.com/records/1z-5r1fkaj { body: "{ 'name': 'Starbuck
|
|
1671
1680
|
|
1672
1681
|
-> See [record validation](#record-validation) for how to handle validation errors when updating records.
|
1673
1682
|
|
1683
|
+
You can use `partial_update` at the end of query-chains:
|
1684
|
+
|
1685
|
+
```ruby
|
1686
|
+
# app/controllers/some_controller.rb
|
1687
|
+
|
1688
|
+
record.options(method: :put).partial_update(recommended: true)
|
1689
|
+
|
1690
|
+
```
|
1691
|
+
|
1674
1692
|
You can also pass explicit request options to `partial_update`, by passing two explicit hashes:
|
1675
1693
|
|
1676
1694
|
```ruby
|
@@ -13,18 +13,15 @@ class LHS::Item < LHS::Proxy
|
|
13
13
|
include EndpointLookup
|
14
14
|
end
|
15
15
|
|
16
|
-
def update(params, options = nil)
|
17
|
-
update!(params, options)
|
16
|
+
def update(params, options = nil, partial_update = false)
|
17
|
+
update!(params, options, partial_update)
|
18
18
|
rescue LHC::Error => e
|
19
19
|
self.errors = LHS::Problems::Errors.new(e.response, record)
|
20
20
|
false
|
21
21
|
end
|
22
22
|
|
23
23
|
def partial_update(params, options = nil)
|
24
|
-
update
|
25
|
-
rescue LHC::Error => e
|
26
|
-
self.errors = LHS::Problems::Errors.new(e.response, record)
|
27
|
-
false
|
24
|
+
update(params, options, true)
|
28
25
|
end
|
29
26
|
|
30
27
|
def partial_update!(params, options = nil)
|
@@ -198,6 +198,16 @@ class LHS::Record
|
|
198
198
|
@record.update!(data, resolved_options.merge(options))
|
199
199
|
end
|
200
200
|
|
201
|
+
def partial_update(data = {}, options = nil)
|
202
|
+
options ||= {}
|
203
|
+
@record.update(data, resolved_options.merge(options), true)
|
204
|
+
end
|
205
|
+
|
206
|
+
def partial_update!(data = {}, options = nil)
|
207
|
+
options ||= {}
|
208
|
+
@record.update!(data, resolved_options.merge(options), true)
|
209
|
+
end
|
210
|
+
|
201
211
|
def valid?(options = nil)
|
202
212
|
options ||= {}
|
203
213
|
@record.valid?(resolved_options.merge(options))
|
data/lib/lhs/version.rb
CHANGED
@@ -151,4 +151,20 @@ describe LHS::Item do
|
|
151
151
|
end
|
152
152
|
end
|
153
153
|
end
|
154
|
+
|
155
|
+
context 'chainable' do
|
156
|
+
it 'allows to chain partial_update with options' do
|
157
|
+
stub_request(:put, item.href)
|
158
|
+
.with(body: { name: 'Steve' }.to_json)
|
159
|
+
result = item.options(method: :put).partial_update(name: 'Steve')
|
160
|
+
expect(result).to eq true
|
161
|
+
end
|
162
|
+
|
163
|
+
it 'allows to chain partial_update! with options' do
|
164
|
+
stub_request(:put, item.href)
|
165
|
+
.with(body: { name: 'Steve' }.to_json)
|
166
|
+
result = item.options(method: :put).partial_update!(name: 'Steve')
|
167
|
+
expect(result).to eq true
|
168
|
+
end
|
169
|
+
end
|
154
170
|
end
|