active_record_compose 0.1.3 → 0.1.5

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: 5d96a1edcbffbf687a7ba72f269c4c56f82ed09cd822d6e37780ed483a885db1
4
- data.tar.gz: 8d0b1af5a534cc3f4d12217c01c593c8e7d8d4afef766e858efbf4a5e78cb689
3
+ metadata.gz: 1638c67c9c0cebca26544e01db7b210a0bde69d581471d3fbe771ada25c124b9
4
+ data.tar.gz: d7c43f6b81793f349a2f4e33132616b8dca2971a607d49ecedaa102fed1b1f5f
5
5
  SHA512:
6
- metadata.gz: '099e7bc7b1dfe5335c059bb79ccde1834ae528ba55ff3b2dfd33b32f9637c704fd7f55085f3ad8d7d49735ee0dd81a272f46d62f5bc57def995c4e51da279159'
7
- data.tar.gz: 6618050e453d8f132b842e5132a0e2b232f3a8deff1d4957215ab0433aa82d58f06cd7d727ad29ee22360ee5fe3b74dac375903d4b71b8379d2b8269128b0fef
6
+ metadata.gz: 9b9aca1764d28fdeb52b0d32fdc6fb0ca13e6c1891efd47335f18660935b36ae64be28cb1a6db08bf1b8b0d3d65aa9daa94bccdea03982112fd59386e57e7e50
7
+ data.tar.gz: 6888e57191546c7d698bde1f2741f280b930d8b8f1f648c02ec0cd025d54a8f89d88bb4dd1cbe0feaf0e37e5f1fd8d4885032259481536edcd73aad1d067aed8
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.1.5] - 2024-01-11
4
+
5
+ - when invalid, raises ActiveRecord::RecordInvalid on #save!
6
+
7
+ ## [0.1.4] - 2024-01-10
8
+
9
+ - remove uniquely defined exception class.
10
+
3
11
  ## [0.1.3] - 2024-01-09
4
12
 
5
13
  - fix documentation uri.
@@ -12,8 +12,6 @@ module ActiveRecordCompose
12
12
 
13
13
  include ActiveRecordCompose::DelegateAttribute
14
14
 
15
- class_attribute :error_class_on_save_error, instance_writer: false, default: ActiveRecordCompose::RecordNotSaved
16
-
17
15
  define_model_callbacks :save
18
16
  define_model_callbacks :create
19
17
  define_model_callbacks :update
@@ -30,7 +28,11 @@ module ActiveRecordCompose
30
28
  save_in_transaction { run_callbacks(:save) { save_models } }
31
29
  end
32
30
 
33
- def save! = save || raise(error_class_on_save_error.new('Failed to save the model.', self))
31
+ def save!
32
+ valid? || raise_validation_error
33
+
34
+ save_in_transaction { run_callbacks(:save) { save_models } } || raise_on_save_error
35
+ end
34
36
 
35
37
  # Behavior is same to `#save`, but `before_create` and `after_create` hooks fires.
36
38
  #
@@ -67,7 +69,10 @@ module ActiveRecordCompose
67
69
  # Behavior is same to `#create`, but raises an exception prematurely on failure.
68
70
  #
69
71
  def create!(attributes = {})
70
- create(attributes) || raise(error_class_on_save_error.new('Failed to create the model.', self))
72
+ assign_attributes(attributes)
73
+ valid? || raise_validation_error
74
+
75
+ save_in_transaction { run_callbacks(:save) { run_callbacks(:create) { save_models } } } || raise_on_save_error
71
76
  end
72
77
 
73
78
  # Behavior is same to `#save`, but `before_update` and `after_update` hooks fires.
@@ -105,7 +110,10 @@ module ActiveRecordCompose
105
110
  # Behavior is same to `#update`, but raises an exception prematurely on failure.
106
111
  #
107
112
  def update!(attributes = {})
108
- update(attributes) || raise(error_class_on_save_error.new('Failed to update the model.', self))
113
+ assign_attributes(attributes)
114
+ valid? || raise_validation_error
115
+
116
+ save_in_transaction { run_callbacks(:save) { run_callbacks(:update) { save_models } } } || raise_on_save_error
109
117
  end
110
118
 
111
119
  private
@@ -131,5 +139,9 @@ module ActiveRecordCompose
131
139
  end
132
140
 
133
141
  def save_models = wrapped_models.all? { _1.save! }
142
+
143
+ def raise_validation_error = raise ActiveRecord::RecordInvalid, self
144
+
145
+ def raise_on_save_error = raise ActiveRecord::RecordNotSaved.new('Failed to save the model.', self)
134
146
  end
135
147
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveRecordCompose
4
- VERSION = '0.1.3'
4
+ VERSION = '0.1.5'
5
5
  end
@@ -3,7 +3,6 @@
3
3
  require 'active_record'
4
4
 
5
5
  require_relative 'active_record_compose/version'
6
- require_relative 'active_record_compose/error'
7
6
  require_relative 'active_record_compose/inner_model'
8
7
  require_relative 'active_record_compose/inner_model_collection'
9
8
  require_relative 'active_record_compose/model'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_compose
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - hamajyotan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-09 00:00:00.000000000 Z
11
+ date: 2024-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -54,7 +54,6 @@ files:
54
54
  - Rakefile
55
55
  - lib/active_record_compose.rb
56
56
  - lib/active_record_compose/delegate_attribute.rb
57
- - lib/active_record_compose/error.rb
58
57
  - lib/active_record_compose/inner_model.rb
59
58
  - lib/active_record_compose/inner_model_collection.rb
60
59
  - lib/active_record_compose/model.rb
@@ -66,7 +65,7 @@ metadata:
66
65
  homepage_uri: https://github.com/hamajyotan/active_record_compose
67
66
  source_code_uri: https://github.com/hamajyotan/active_record_compose
68
67
  changelog_uri: https://github.com/hamajyotan/active_record_compose/blob/main/CHANGELOG.md
69
- documentation_uri: https://www.rubydoc.info/gems/active_record_compose/0.1.3
68
+ documentation_uri: https://www.rubydoc.info/gems/active_record_compose/0.1.5
70
69
  rubygems_mfa_required: 'true'
71
70
  post_install_message:
72
71
  rdoc_options: []
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveRecordCompose
4
- class Error < ::StandardError; end
5
-
6
- class RecordNotSaved < ::ActiveRecordCompose::Error
7
- def initialize(message, record)
8
- super(message)
9
- @record = record
10
- end
11
-
12
- attr_reader :record
13
- end
14
- end