active_shrine 0.7.0 → 0.7.1

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: b0330c7363b9c8b14e0f718886933c33dff3998618da11b47e5d14e813def269
4
- data.tar.gz: eda5c702640dd7c6b884ffd6aea3bf9246dffb729100d8d762bb109a6e35e79e
3
+ metadata.gz: c889dd875e46d15586b303a33c9fe159b80e7a26d1cf3eb77ba946e5d8d605ff
4
+ data.tar.gz: 95ea771725ffc57619a2bc3371ce6b98f1b61cfb6924ce6471b028db0aeb3563
5
5
  SHA512:
6
- metadata.gz: 31e7f98809b76810e2056389ef8512c1f990864d6ec05324bee267b00f9381aace0182fb1a4fb1043d54617d42ab45ccae12199af112df55beeff016115ce307
7
- data.tar.gz: 9010a2da61a53f475fc24b258892a179848dcd93e36fe38f7e3a257d451b0ad43977497d5a63e4f68c95b30f47f63a9f6764324a5780de56c8e40315b416677d
6
+ metadata.gz: 6e0e3abad03c8c153bbf8457e56829540504651bab131e50d3a5c9232c33f265b0a0c321e1bdcfec680ae11d060a76767b0232008dec77766050bdbe011dcf3f
7
+ data.tar.gz: 3b2a87d562f8cf12a959485fed87f43e1ae799a2f58f5fb510a6a71491aa9ae40349584910d4d832630776c7077017d26e17ae613debaade5982864e55a33687
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.7.1] - 2026-04-16
4
+
5
+ - Bridge attacher errors to `record.errors` on `has_many_attached`
6
+
3
7
  ## [0.7.0] - 2026-04-15
4
8
 
5
9
  - Support `variant:` and `strict:` options in `Attachment#url`
@@ -20,9 +20,16 @@ module ActiveShrine
20
20
  end
21
21
 
22
22
  def save
23
+ raise ActiveRecord::RecordInvalid.new(record) unless valid?
24
+
23
25
  assign_associated_attachments
24
26
  end
25
27
 
28
+ def valid?
29
+ # .map then .all? — don't short-circuit; collect errors from every subchange
30
+ subchanges.map(&:valid?).all?
31
+ end
32
+
26
33
  private
27
34
 
28
35
  def subchanges
@@ -23,15 +23,19 @@ module ActiveShrine
23
23
  end
24
24
 
25
25
  def save
26
- unless attachment.valid?
27
- attachment.errors.each do |error|
28
- record.errors.add(name, error.message)
29
- end
26
+ raise ActiveRecord::RecordInvalid.new(record) unless valid?
30
27
 
31
- raise ActiveRecord::RecordInvalid.new(record)
28
+ record.public_send(:"#{name}_attachment=", attachment)
29
+ end
30
+
31
+ def valid?
32
+ return true if attachment.valid?
33
+
34
+ attachment.errors.each do |error|
35
+ record.errors.add(name, error.message)
32
36
  end
33
37
 
34
- record.public_send(:"#{name}_attachment=", attachment)
38
+ false
35
39
  end
36
40
 
37
41
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveShrine
4
- VERSION = "0.7.0"
4
+ VERSION = "0.7.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_shrine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Radioactive Labs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-04-15 00:00:00.000000000 Z
11
+ date: 2026-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties