tzu 1.0.0 → 1.1.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: 3461c8cde94996a9366831443f7bc018fea3ecc7bbbf39b051a8186dbc83941c
4
- data.tar.gz: a68fedad1cc1379833332982bb56a683a3f5b0d68675cf4e21587bb10dacbaee
3
+ metadata.gz: 25798f04cb4daa6cedc6359f3933bed925eef1865ddbbcd78ff1b13cccd6babd
4
+ data.tar.gz: c32f54cb202cb121cf42d1bee1fddff790e8df1c0e94d3b656eef5ddaa20396b
5
5
  SHA512:
6
- metadata.gz: 1f7a7b835a3f3340e8af96f4d733523b054cd82ee87b69024c1bc90843fa2452125f18aa12141b9bbcff9ab8adda1f89ff2c6d26a38acc457dbf367873834b2c
7
- data.tar.gz: da137e33a5883acd558ff3fbf070055697aeeacc60766f8a71a8b78c4ab43e1e18b59c383309261e9abbf9324fc399529d3d454b77bfb228f84656cb474250a2
6
+ metadata.gz: 19141d5043f2296a63a55da5ee55d25ebe42407d11b3a6f28f6a34f02ce669c416da26336dcc515a57e58b43c7dd3a053724c8593e542060f269a8749454265f
7
+ data.tar.gz: 802c994936095e52b7dd7548868456e39b59b9927cb9b41d8f4d45da22dfbbd7e06a60916d6eb22076dba4f465cb8f3c0b0743ca2ab59718db52837f029bf906
@@ -20,7 +20,8 @@ module Tzu
20
20
  end
21
21
 
22
22
  def invalid!(obj)
23
- output = [:errors, :messages, :message].reduce(obj) do |result, m|
23
+ methods = (rails_6_1_active_model?(obj) ? [] : [:errors]) + [:messages, :message]
24
+ output = methods.reduce(obj) do |result, m|
24
25
  result.respond_to?(m) ? result.send(m) : result
25
26
  end
26
27
 
@@ -30,5 +31,18 @@ module Tzu
30
31
  def fail!(type, data = {})
31
32
  raise Failure.new(type, data)
32
33
  end
34
+
35
+ private
36
+
37
+ # Starting with Rails 6.1, the 'ActiveModel::Errors#errors'
38
+ # returns a list of structured 'ActiveModel::Error':
39
+ # https://github.com/rails/rails/pull/32313. To ensure the same
40
+ # outcome as with previous rails versions, we forbid any calls to
41
+ # `ActiveModel::Errors#errors`.
42
+ def rails_6_1_active_model?(obj)
43
+ return false unless defined?(ActiveModel)
44
+
45
+ obj.is_a?(ActiveModel::Errors) && obj.respond_to?(:errors)
46
+ end
33
47
  end
34
48
  end
data/lib/tzu/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tzu
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tzu
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Morgan Bruce
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-01-08 00:00:00.000000000 Z
12
+ date: 2025-08-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -71,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  - !ruby/object:Gem::Version
72
72
  version: '0'
73
73
  requirements: []
74
- rubygems_version: 3.4.22
74
+ rubygems_version: 3.4.19
75
75
  signing_key:
76
76
  specification_version: 4
77
77
  summary: Standardise and encapsulate your application's actions