active_record_compose 0.1.3 → 0.1.5

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
  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