granite 0.11.1 → 0.12.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a6546b162c712c95bf1c954a99143418186c5392548e7a6f767755d7715854c
4
- data.tar.gz: 2cd60295ca235be9d5a561f92777a8a7db2920481f33309c93b6730587df14e3
3
+ metadata.gz: 8f01fbcec194a3031c22582899a7ff0210d2b621aa149a5ccf7814a3a70540ea
4
+ data.tar.gz: c763544b18d4feb43a5502df2e661dce313c304f47543978be095e4e72afc863
5
5
  SHA512:
6
- metadata.gz: 89dbff44372428da1723b72f28181880a69428845fd6e0665b981fbb9f13e4323176f1b888f93986f15da104618f2674b01f445f21ca13ce6472595bf26009be
7
- data.tar.gz: df01fdaec830de6c86fe291a608e7e32df1feefcfe2e92964b435e95505ffd027705e531f912bc5e7ee2a779a88485c7a9a1c439366a01de1bec6a88eda5a3b8
6
+ metadata.gz: '099c76956322fe11a1118dc25a1fffbc0553018d1abf660d7c6270256f40505a3d93be01e57df0d7502c767c09d961fcf3361a7281315296e6abb9c512a38a9f'
7
+ data.tar.gz: 9b1b66eca75f4ff623319d1828cbec2b987c36050fb70598a8a14ea7edd760da38eb61c89f0a4de3b706875b68a16dccefe22333c3ac8edbe5b80864e04f4aca
@@ -50,20 +50,28 @@ module Granite
50
50
  prepend AssignAttributes
51
51
 
52
52
  handle_exception ActiveRecord::RecordInvalid do |e|
53
- errors.messages.deep_merge!(e.record.errors.messages) do |_, this, other|
54
- (this + other).uniq
55
- end
53
+ merge_errors(e.record.errors)
56
54
  end
57
55
 
58
56
  handle_exception ActiveData::ValidationError do |e|
59
- errors.messages.deep_merge!(e.model.errors.messages) do |_, this, other|
60
- (this + other).uniq
61
- end
57
+ merge_errors(e.model.errors)
62
58
  end
63
59
 
64
60
  handle_exception Granite::Action::ValidationError do |e|
65
- errors.messages.deep_merge!(e.action.errors.messages) do |_, this, other|
66
- (this + other).uniq
61
+ merge_errors(e.action.errors)
62
+ end
63
+
64
+ if ActiveModel.version < Gem::Version.new('6.1.0')
65
+ def merge_errors(other_errors)
66
+ errors.messages.deep_merge!(other_errors.messages) do |_, this, other|
67
+ (this + other).uniq
68
+ end
69
+ end
70
+ else
71
+ def merge_errors(other_errors)
72
+ other_errors.each do |error|
73
+ errors.import(error) unless errors.added?(error.attribute, error)
74
+ end
67
75
  end
68
76
  end
69
77
 
@@ -34,7 +34,7 @@ module Granite
34
34
  end
35
35
 
36
36
  def changed?
37
- if reflection.options[:default].present?
37
+ if reflection.options.key?(:default)
38
38
  reference.public_send(reader) != read
39
39
  else
40
40
  owner.public_send("#{name}_changed?")
@@ -1,3 +1,3 @@
1
1
  module Granite
2
- VERSION = '0.11.1'.freeze
2
+ VERSION = '0.12.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: granite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toptal Engineering
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-27 00:00:00.000000000 Z
11
+ date: 2021-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '5.1'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6.1'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,21 +29,21 @@ dependencies:
29
29
  version: '5.1'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6.1'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: active_data
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 1.1.5
39
+ version: 1.2.0
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 1.1.5
46
+ version: 1.2.0
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +53,7 @@ dependencies:
53
53
  version: '5.1'
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
- version: '6.1'
56
+ version: '7.1'
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -63,7 +63,7 @@ dependencies:
63
63
  version: '5.1'
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
- version: '6.1'
66
+ version: '7.1'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: memoist
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -84,20 +84,28 @@ dependencies:
84
84
  requirements:
85
85
  - - ">="
86
86
  - !ruby/object:Gem::Version
87
- version: '5.0'
88
- - - "<"
89
- - !ruby/object:Gem::Version
90
- version: '6.1'
87
+ version: '0'
91
88
  type: :development
92
89
  prerelease: false
93
90
  version_requirements: !ruby/object:Gem::Requirement
94
91
  requirements:
95
92
  - - ">="
96
93
  - !ruby/object:Gem::Version
97
- version: '5.0'
98
- - - "<"
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: appraisal
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
99
100
  - !ruby/object:Gem::Version
100
- version: '6.1'
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
101
109
  - !ruby/object:Gem::Dependency
102
110
  name: capybara
103
111
  requirement: !ruby/object:Gem::Requirement
@@ -294,8 +302,8 @@ dependencies:
294
302
  - - "~>"
295
303
  - !ruby/object:Gem::Version
296
304
  version: '0.15'
297
- description:
298
- email:
305
+ description:
306
+ email:
299
307
  executables: []
300
308
  extensions: []
301
309
  extra_rdoc_files: []
@@ -375,7 +383,7 @@ homepage: https://github.com/toptal/granite
375
383
  licenses:
376
384
  - MIT
377
385
  metadata: {}
378
- post_install_message:
386
+ post_install_message:
379
387
  rdoc_options: []
380
388
  require_paths:
381
389
  - lib
@@ -390,8 +398,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
398
  - !ruby/object:Gem::Version
391
399
  version: '0'
392
400
  requirements: []
393
- rubygems_version: 3.0.9
394
- signing_key:
401
+ rubygems_version: 3.2.29
402
+ signing_key:
395
403
  specification_version: 4
396
404
  summary: Another business actions architecture for Rails apps
397
405
  test_files: []