lhs 19.0.1 → 19.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3877f76874bcb34f2627b1c88810a610fae7cc7c5eaf3398d8a13825896c84a2
4
- data.tar.gz: 6640dcf74957e4cb8a526f07ec6411b327fc52d29eb5da8207b0cfa60efbb743
3
+ metadata.gz: c6b7b500cba025714dd25acd5768e165e52a9a3a5310c4aee5a76e649edbadf6
4
+ data.tar.gz: d6460304be65c24f414e71c8a58bcf127cc7a79ad6a6fb3854c50dc177c0f835
5
5
  SHA512:
6
- metadata.gz: efcafa00c531b5f8b91b13168daa5f9502f9d6aca3ec52ede815246e32052fa75f064099460fb2db9102be644c7d3219b78b23d441374612adf7aad181c16c96
7
- data.tar.gz: 8e30bb7d0e5ceee64a03978d89c14f608a35f4f728940ea51dcae7f571bee1bf51e90695b9b86b9c3ec90df8aaddd249cc40e6c45517402205654e300e80d4a1
6
+ metadata.gz: f6777297192f3a1daefd322c76681a9402bef7893f67c9520e4db7b67357d67065a580f34069b85f13f971738c7a174e9be97f54641fe2254bdec07939f4dd60
7
+ data.tar.gz: 46d307a8ad2c62f749c30552c2785db48d44dcb87612150eb25b312129320561f782041fc9139ed9ecc4abcfc8336bf91693f207b958a8c76b386d1f3b371f3d
data/README.md CHANGED
@@ -1358,7 +1358,9 @@ The kaminari’s page parameter is in params[:page]. For example, you can use ka
1358
1358
 
1359
1359
  ##### create
1360
1360
 
1361
- `create` will return false if persisting fails. `create!` instead will raise an exception.
1361
+ `create` will return the object in memory if persisting fails, providing validation errors in `.errors` (See [record validation](#record-validation)).
1362
+
1363
+ `create!` instead will raise an exception.
1362
1364
 
1363
1365
  `create` always builds the data of the local object first, before it tries to sync with an endpoint. So even if persisting fails, the local object is build.
1364
1366
 
@@ -83,6 +83,12 @@ class LHS::Record
83
83
  new(data)
84
84
  end
85
85
 
86
+ # Override Object#dup because it doesn't support copying any singleton
87
+ # methods, which leads to missing `_data` method when you execute `dup`.
88
+ def dup
89
+ clone
90
+ end
91
+
86
92
  protected
87
93
 
88
94
  def method_missing(name, *args, &block)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LHS
4
- VERSION = '19.0.1'
4
+ VERSION = '19.0.2'
5
5
  end
@@ -88,11 +88,15 @@ describe LHS::Item do
88
88
 
89
89
  class AppointmentProposal < LHS::Record
90
90
  endpoint 'http://bookings/bookings'
91
+ has_many :appointments
91
92
 
92
93
  def appointments_attributes=(attributes)
93
- self.appointments = attributes.map { |attribute| { 'date_time': attribute[:date] } }
94
+ self.appointments = attributes.map { |attribute| Appointment.new('date_time': attribute[:date]) }
94
95
  end
95
96
  end
97
+
98
+ class Appointment < LHS::Record
99
+ end
96
100
  end
97
101
 
98
102
  let(:item) do
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ describe LHS::Record do
6
+ describe '#dup' do
7
+ before do
8
+ class Appointment < LHS::Record
9
+ end
10
+ end
11
+
12
+ it 'returns a copy of an object' do
13
+ appointment = Appointment.new
14
+ copy = appointment.dup
15
+ expect(copy.inspect).to match(/Appointment/)
16
+ expect(copy).to be_kind_of(Appointment)
17
+ expect(copy.object_id).not_to eql(appointment.object_id)
18
+ end
19
+ end
20
+ 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: 19.0.1
4
+ version: 19.0.2
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: 2019-03-25 00:00:00.000000000 Z
11
+ date: 2019-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -389,6 +389,7 @@ files:
389
389
  - spec/record/definitions_spec.rb
390
390
  - spec/record/destroy_spec.rb
391
391
  - spec/record/dig_configuration_spec.rb
392
+ - spec/record/dup_spec.rb
392
393
  - spec/record/endpoint_inheritance_spec.rb
393
394
  - spec/record/endpoint_misconfiguration_spec.rb
394
395
  - spec/record/endpoint_options_spec.rb
@@ -471,8 +472,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
471
472
  version: '0'
472
473
  requirements:
473
474
  - Ruby >= 2.3.0
474
- rubyforge_project:
475
- rubygems_version: 2.7.8
475
+ rubygems_version: 3.0.2
476
476
  signing_key:
477
477
  specification_version: 4
478
478
  summary: 'REST services accelerator: Rails gem providing an easy, active-record-like
@@ -589,6 +589,7 @@ test_files:
589
589
  - spec/record/definitions_spec.rb
590
590
  - spec/record/destroy_spec.rb
591
591
  - spec/record/dig_configuration_spec.rb
592
+ - spec/record/dup_spec.rb
592
593
  - spec/record/endpoint_inheritance_spec.rb
593
594
  - spec/record/endpoint_misconfiguration_spec.rb
594
595
  - spec/record/endpoint_options_spec.rb