active_interaction 5.1.0 → 5.5.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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +11 -12
  4. data/lib/active_interaction/base.rb +2 -0
  5. data/lib/active_interaction/errors.rb +16 -16
  6. data/lib/active_interaction/filter.rb +9 -12
  7. data/lib/active_interaction/filters/array_filter.rb +1 -1
  8. data/lib/active_interaction/filters/hash_filter.rb +5 -1
  9. data/lib/active_interaction/grouped_input.rb +23 -3
  10. data/lib/active_interaction/locale/es.yml +23 -0
  11. data/lib/active_interaction/version.rb +1 -1
  12. metadata +13 -115
  13. data/spec/active_interaction/array_input_spec.rb +0 -166
  14. data/spec/active_interaction/base_spec.rb +0 -537
  15. data/spec/active_interaction/concerns/active_modelable_spec.rb +0 -45
  16. data/spec/active_interaction/concerns/active_recordable_spec.rb +0 -49
  17. data/spec/active_interaction/concerns/hashable_spec.rb +0 -46
  18. data/spec/active_interaction/concerns/missable_spec.rb +0 -99
  19. data/spec/active_interaction/concerns/runnable_spec.rb +0 -397
  20. data/spec/active_interaction/errors_spec.rb +0 -196
  21. data/spec/active_interaction/filter/column_spec.rb +0 -87
  22. data/spec/active_interaction/filter_spec.rb +0 -39
  23. data/spec/active_interaction/filters/abstract_date_time_filter_spec.rb +0 -13
  24. data/spec/active_interaction/filters/abstract_numeric_filter_spec.rb +0 -13
  25. data/spec/active_interaction/filters/array_filter_spec.rb +0 -245
  26. data/spec/active_interaction/filters/boolean_filter_spec.rb +0 -87
  27. data/spec/active_interaction/filters/date_filter_spec.rb +0 -178
  28. data/spec/active_interaction/filters/date_time_filter_spec.rb +0 -189
  29. data/spec/active_interaction/filters/decimal_filter_spec.rb +0 -126
  30. data/spec/active_interaction/filters/file_filter_spec.rb +0 -40
  31. data/spec/active_interaction/filters/float_filter_spec.rb +0 -110
  32. data/spec/active_interaction/filters/hash_filter_spec.rb +0 -129
  33. data/spec/active_interaction/filters/integer_filter_spec.rb +0 -104
  34. data/spec/active_interaction/filters/interface_filter_spec.rb +0 -461
  35. data/spec/active_interaction/filters/object_filter_spec.rb +0 -237
  36. data/spec/active_interaction/filters/record_filter_spec.rb +0 -206
  37. data/spec/active_interaction/filters/string_filter_spec.rb +0 -60
  38. data/spec/active_interaction/filters/symbol_filter_spec.rb +0 -46
  39. data/spec/active_interaction/filters/time_filter_spec.rb +0 -251
  40. data/spec/active_interaction/grouped_input_spec.rb +0 -17
  41. data/spec/active_interaction/hash_input_spec.rb +0 -58
  42. data/spec/active_interaction/i18n_spec.rb +0 -113
  43. data/spec/active_interaction/inputs_spec.rb +0 -266
  44. data/spec/active_interaction/integration/array_interaction_spec.rb +0 -88
  45. data/spec/active_interaction/integration/boolean_interaction_spec.rb +0 -5
  46. data/spec/active_interaction/integration/date_interaction_spec.rb +0 -5
  47. data/spec/active_interaction/integration/date_time_interaction_spec.rb +0 -5
  48. data/spec/active_interaction/integration/file_interaction_spec.rb +0 -18
  49. data/spec/active_interaction/integration/float_interaction_spec.rb +0 -5
  50. data/spec/active_interaction/integration/hash_interaction_spec.rb +0 -76
  51. data/spec/active_interaction/integration/integer_interaction_spec.rb +0 -5
  52. data/spec/active_interaction/integration/interface_interaction_spec.rb +0 -19
  53. data/spec/active_interaction/integration/object_interaction_spec.rb +0 -14
  54. data/spec/active_interaction/integration/record_integration_spec.rb +0 -5
  55. data/spec/active_interaction/integration/string_interaction_spec.rb +0 -5
  56. data/spec/active_interaction/integration/symbol_interaction_spec.rb +0 -5
  57. data/spec/active_interaction/integration/time_interaction_spec.rb +0 -88
  58. data/spec/active_interaction/modules/validation_spec.rb +0 -57
  59. data/spec/spec_helper.rb +0 -20
  60. data/spec/support/concerns.rb +0 -13
  61. data/spec/support/filters.rb +0 -227
  62. data/spec/support/interactions.rb +0 -124
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c740eef14e1c0bca42f4bbb5b3718c879bc3af038f40953a60a53007611916e5
4
- data.tar.gz: b0a3738aa38869c7be559d72f23e958d0f9e66c0f490652bd8a92e1ef449e48e
3
+ metadata.gz: 9e3c0c4b273d6133644463ea773ea4551331ee7a9eb92c9dc9b3ff4b069aff55
4
+ data.tar.gz: bc874a3de1e5557e2baf01a59b62822fb073721f4e639559e47ce72ce50c41ad
5
5
  SHA512:
6
- metadata.gz: f998483eb21ec13a43dcf3c7b6805f7865b3dd7b4d8fbc9846263338d676c41c7991a602dd3a82e13a9b93a027cbeccd5648a87fef688964124935d38d9ef6c4
7
- data.tar.gz: 4669a1e76a427af4a62415f242bfdc3fa45f7a63c5a43de704b7849639841f365e83168b5c1db68ab067ca2104f8f7ec580baa487e5caa6035196607033c79f8
6
+ metadata.gz: b3af5f93ea4049897a6d10bf3da4e11d3eccfa14fd8a0180eeb84c6e695fadd9bc2990c0058bb605a9f7667c0759e32187797984128d3ab36b4e06ff176e26ea
7
+ data.tar.gz: 4b3fdc8b15977f1e0e46f654e97574581da9ebbdd851b7c91355c5ea32906fdd9b68e220bf89cc57973041995e47b3f9a8183155fbf5a1e8167d3be213c3ad8e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,53 @@
1
+ # [5.5.0][] (2025-02-02)
2
+
3
+ ## Added
4
+
5
+ - Support for Ruby 3.4.
6
+
7
+ ## Fixed
8
+
9
+ - OStruct was listed as a development dependency instead of a runtime dependency.
10
+ The need for OStruct has been removed entirely.
11
+
12
+ # [5.4.0][] (2024-11-23)
13
+
14
+ ## Added
15
+
16
+ - [#579][] Support for Rails 8. Thanks @bvalentino!
17
+
18
+ ## Fixed
19
+
20
+ - [#577][] Manually pull in the `ostruct` gem since it's being removed from stdlib.
21
+
22
+ # [5.3.0][] (2023-05-06)
23
+
24
+ ## Added
25
+
26
+ - Added predicate methods for boolean values. Thanks @heka1024
27
+
28
+ ## Fixed
29
+
30
+ - [#554][] - Non-detailed error should not lose options when merged.
31
+ - [#553][] - Improve error handling and documentation for hash filter defaults.
32
+
33
+ # [5.2.0][] (2022-10-22)
34
+
35
+ ## Added
36
+
37
+ - Added translation for Spanish. Thanks @matiasasis!
38
+
39
+ ## Fixed
40
+
41
+ - [#545][] - Arrays passed in are no longer modified. Thanks @jonkgrimes!
42
+
43
+ ## Added
44
+
45
+ # [5.1.1][] (2022-09-01)
46
+
47
+ ## Fixed
48
+
49
+ - [#539][] - Fixed a caching error in default values.
50
+
1
51
  # [5.1.0][] (2022-07-28)
2
52
 
3
53
  ## Added
@@ -1112,6 +1162,11 @@ Example.run
1112
1162
 
1113
1163
  - Initial release.
1114
1164
 
1165
+ [5.5.0]: https://github.com/AaronLasseigne/active_interaction/compare/v5.4.0...v5.5.0
1166
+ [5.4.0]: https://github.com/AaronLasseigne/active_interaction/compare/v5.3.0...v5.4.0
1167
+ [5.3.0]: https://github.com/AaronLasseigne/active_interaction/compare/v5.2.0...v5.3.0
1168
+ [5.2.0]: https://github.com/AaronLasseigne/active_interaction/compare/v5.1.1...v5.2.0
1169
+ [5.1.1]: https://github.com/AaronLasseigne/active_interaction/compare/v5.1.0...v5.1.1
1115
1170
  [5.1.0]: https://github.com/AaronLasseigne/active_interaction/compare/v5.0.0...v5.1.0
1116
1171
  [5.0.0]: https://github.com/AaronLasseigne/active_interaction/compare/v4.1.0...v5.0.0
1117
1172
  [4.1.0]: https://github.com/AaronLasseigne/active_interaction/compare/v4.0.6...v4.1.0
@@ -1339,3 +1394,9 @@ Example.run
1339
1394
  [#503]: https://github.com/AaronLasseigne/active_interaction/issues/503
1340
1395
  [#536]: https://github.com/AaronLasseigne/active_interaction/issues/536
1341
1396
  [#537]: https://github.com/AaronLasseigne/active_interaction/issues/537
1397
+ [#539]: https://github.com/AaronLasseigne/active_interaction/issues/539
1398
+ [#545]: https://github.com/AaronLasseigne/active_interaction/issues/545
1399
+ [#554]: https://github.com/AaronLasseigne/active_interaction/issues/554
1400
+ [#553]: https://github.com/AaronLasseigne/active_interaction/issues/553
1401
+ [#577]: https://github.com/AaronLasseigne/active_interaction/issues/577
1402
+ [#579]: https://github.com/AaronLasseigne/active_interaction/pull/579
data/README.md CHANGED
@@ -2,16 +2,11 @@
2
2
 
3
3
  ActiveInteraction manages application-specific business logic.
4
4
  It's an implementation of service objects designed to blend seamlessly into Rails.
5
+ It also helps you write safer code by validating that your inputs conform to your expectations.
6
+ If ActiveModel deals with your nouns, then ActiveInteraction handles your verbs.
5
7
 
6
8
  [![Version](https://img.shields.io/gem/v/active_interaction.svg?style=flat-square)](https://rubygems.org/gems/active_interaction)
7
- [![Test](https://img.shields.io/github/workflow/status/AaronLasseigne/active_interaction/Test?label=Test&style=flat-square)](https://github.com/AaronLasseigne/active_interaction/actions?query=workflow%3ATest)
8
-
9
- ---
10
-
11
- ActiveInteraction gives you a place to put your business logic. It also helps
12
- you write safer code by validating that your inputs conform to your
13
- expectations. If ActiveModel deals with your nouns, then ActiveInteraction
14
- handles your verbs.
9
+ [![Test](https://img.shields.io/github/actions/workflow/status/AaronLasseigne/active_interaction/test.yml?label=Test&style=flat-square&branch=main)](https://github.com/AaronLasseigne/active_interaction/actions?query=workflow%3ATest)
15
10
 
16
11
  - [Installation](#installation)
17
12
  - [Basic usage](#basic-usage)
@@ -65,13 +60,13 @@ handles your verbs.
65
60
  Add it to your Gemfile:
66
61
 
67
62
  ``` rb
68
- gem 'active_interaction', '~> 5.1'
63
+ gem 'active_interaction', '~> 5.5'
69
64
  ```
70
65
 
71
66
  Or install it manually:
72
67
 
73
68
  ``` sh
74
- $ gem install active_interaction --version '~> 5.1'
69
+ $ gem install active_interaction --version '~> 5.5'
75
70
  ```
76
71
 
77
72
  This project uses [Semantic Versioning][]. Check out [GitHub releases][] for a
@@ -296,12 +291,15 @@ Boolean filters convert the strings `"1"`, `"true"`, and `"on"`
296
291
  (case-insensitive) into `true`. They also convert `"0"`, `"false"`, and `"off"`
297
292
  into `false`. Blank strings will be treated as `nil`.
298
293
 
294
+ Boolean values can be accessed using the filter name but can also be checked
295
+ using a predicate method of the same name.
296
+
299
297
  ``` rb
300
298
  class BooleanInteraction < ActiveInteraction::Base
301
299
  boolean :kool_aid
302
300
 
303
301
  def execute
304
- 'Oh yeah!' if kool_aid
302
+ 'Oh yeah!' if kool_aid? # could also use `kool_aid`
305
303
  end
306
304
  end
307
305
 
@@ -360,7 +358,8 @@ HashInteraction.run!(preferences: { newsletter: true, 'sweepstakes' => false })
360
358
 
361
359
  Setting default hash values can be tricky. The default value has to be either
362
360
  `nil` or `{}`. Use `nil` to make the hash optional. Use `{}` if you want to set
363
- some defaults for values inside the hash.
361
+ some defaults for values inside the hash. If any nested filter uses a
362
+ [lazy default](#defaults) then the hash must also use a lazy default.
364
363
 
365
364
  ``` rb
366
365
  hash :optional,
@@ -147,6 +147,8 @@ module ActiveInteraction
147
147
 
148
148
  attr_accessor attribute
149
149
 
150
+ alias_method "#{attribute}?", attribute if filter.is_a?(BooleanFilter)
151
+
150
152
  eagerly_evaluate_default(filter)
151
153
  end
152
154
 
@@ -11,7 +11,15 @@ module ActiveInteraction
11
11
  #
12
12
  # @return [Errors]
13
13
  def merge!(other)
14
- merge_details!(other)
14
+ other.messages.each do |attribute, messages|
15
+ messages.zip(other.details[attribute]) do |message, detail|
16
+ if detailed_error?(detail)
17
+ merge_detail!(attribute, detail, message)
18
+ else
19
+ merge_message!(attribute, detail, message)
20
+ end
21
+ end
22
+ end
15
23
 
16
24
  self
17
25
  end
@@ -31,24 +39,16 @@ module ActiveInteraction
31
39
  detail[:error].is_a?(Symbol)
32
40
  end
33
41
 
34
- def merge_message!(attribute, message)
42
+ def merge_message!(attribute, detail, message)
43
+ options = detail.dup
44
+ options.delete(:error)
45
+
35
46
  unless attribute?(attribute)
36
47
  message = full_message(attribute, message)
37
48
  attribute = :base
38
49
  end
39
- add(attribute, message) unless added?(attribute, message)
40
- end
41
50
 
42
- def merge_details!(other)
43
- other.messages.each do |attribute, messages|
44
- messages.zip(other.details[attribute]) do |message, detail|
45
- if detailed_error?(detail)
46
- merge_detail!(attribute, detail, message)
47
- else
48
- merge_message!(attribute, message)
49
- end
50
- end
51
- end
51
+ add(attribute, message, **options) unless added?(attribute, message, **options)
52
52
  end
53
53
 
54
54
  def merge_detail!(attribute, detail, message)
@@ -56,9 +56,9 @@ module ActiveInteraction
56
56
  options = detail.dup
57
57
  error = options.delete(:error)
58
58
 
59
- add(attribute, error, **options.merge(message: message)) unless added?(attribute, error, **options)
59
+ add(attribute, error, **options, message: message) unless added?(attribute, error, **options)
60
60
  else
61
- merge_message!(attribute, message)
61
+ merge_message!(attribute, detail, message)
62
62
  end
63
63
  end
64
64
  end
@@ -112,24 +112,21 @@ module ActiveInteraction
112
112
  # @raise [NoDefaultError] If the default is missing.
113
113
  # @raise [InvalidDefaultError] If the default is invalid.
114
114
  def default(context = nil)
115
- return @default if defined?(@default)
116
-
117
115
  raise NoDefaultError, name unless default?
118
116
 
119
117
  value = raw_default(context)
120
118
  raise InvalidDefaultError, "#{name}: #{value.inspect}" if value.is_a?(GroupedInput)
121
119
 
122
- @default =
123
- if value.nil?
124
- nil
125
- else
126
- default = process(value, context)
127
- if default.errors.any? && default.errors.first.is_a?(Filter::Error)
128
- raise InvalidDefaultError, "#{name}: #{value.inspect}"
129
- end
130
-
131
- default.value
120
+ if value.nil?
121
+ nil
122
+ else
123
+ default = process(value, context)
124
+ if default.errors.any? && default.errors.first.is_a?(Filter::Error)
125
+ raise InvalidDefaultError, "#{name}: #{value.inspect}"
132
126
  end
127
+
128
+ default.value
129
+ end
133
130
  end
134
131
 
135
132
  # Get the description.
@@ -49,7 +49,7 @@ module ActiveInteraction
49
49
  children = []
50
50
 
51
51
  unless filters.empty?
52
- value.map! do |item|
52
+ value = value.map do |item|
53
53
  result = filters[:'0'].process(item, context)
54
54
  children.push(result)
55
55
  result.value
@@ -25,7 +25,7 @@ module ActiveInteraction
25
25
 
26
26
  register :hash
27
27
 
28
- def process(value, context)
28
+ def process(value, context) # rubocop:disable Metrics/AbcSize
29
29
  input = super
30
30
 
31
31
  return HashInput.new(self, value: input.value, error: input.errors.first) if input.errors.first
@@ -36,6 +36,10 @@ module ActiveInteraction
36
36
  children = {}
37
37
 
38
38
  filters.each do |name, filter|
39
+ if filter.options[:default].is_a?(Proc) && !options[:default].is_a?(Proc)
40
+ raise InvalidDefaultError, "#{self.name}: must use a lazy default if any nested filter uses a lazy default"
41
+ end
42
+
39
43
  filter.process(input.value[name], context).tap do |result|
40
44
  value[name] = result.value
41
45
  children[name.to_sym] = result
@@ -1,11 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ostruct'
4
-
5
3
  module ActiveInteraction
6
4
  # Holds a group of inputs together for passing from {Base} to {Filter}s.
7
5
  #
8
6
  # @private
9
- class GroupedInput < OpenStruct
7
+ class GroupedInput
8
+ include Comparable
9
+
10
+ attr_reader :data
11
+ protected :data
12
+
13
+ def initialize(**data)
14
+ @data = data
15
+ end
16
+
17
+ def [](key)
18
+ @data[key]
19
+ end
20
+
21
+ def []=(key, value)
22
+ @data[key] = value
23
+ end
24
+
25
+ def <=>(other)
26
+ return nil unless other.is_a?(self.class)
27
+
28
+ data <=> other.data
29
+ end
10
30
  end
11
31
  end
@@ -0,0 +1,23 @@
1
+ es:
2
+ active_interaction:
3
+ errors:
4
+ messages:
5
+ invalid: es inválido
6
+ invalid_type: no es un %{type} válido
7
+ missing: es requerido
8
+ types:
9
+ array: array
10
+ boolean: boolean
11
+ date: date
12
+ date_time: date time
13
+ decimal: decimal
14
+ file: file
15
+ float: float
16
+ hash: hash
17
+ integer: integer
18
+ interface: interface
19
+ object: object
20
+ record: record
21
+ string: string
22
+ symbol: symbol
23
+ time: time
@@ -4,5 +4,5 @@ module ActiveInteraction
4
4
  # The version number.
5
5
  #
6
6
  # @return [Gem::Version]
7
- VERSION = Gem::Version.new('5.1.0')
7
+ VERSION = Gem::Version.new('5.5.0')
8
8
  end
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_interaction
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.0
4
+ version: 5.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Lasseigne
8
8
  - Taylor Fausak
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2022-07-28 00:00:00.000000000 Z
11
+ date: 2025-02-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activemodel
@@ -20,7 +19,7 @@ dependencies:
20
19
  version: '5.2'
21
20
  - - "<"
22
21
  - !ruby/object:Gem::Version
23
- version: '8'
22
+ version: '9'
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +29,7 @@ dependencies:
30
29
  version: '5.2'
31
30
  - - "<"
32
31
  - !ruby/object:Gem::Version
33
- version: '8'
32
+ version: '9'
34
33
  - !ruby/object:Gem::Dependency
35
34
  name: activesupport
36
35
  requirement: !ruby/object:Gem::Requirement
@@ -40,7 +39,7 @@ dependencies:
40
39
  version: '5.2'
41
40
  - - "<"
42
41
  - !ruby/object:Gem::Version
43
- version: '8'
42
+ version: '9'
44
43
  type: :runtime
45
44
  prerelease: false
46
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -50,7 +49,7 @@ dependencies:
50
49
  version: '5.2'
51
50
  - - "<"
52
51
  - !ruby/object:Gem::Version
53
- version: '8'
52
+ version: '9'
54
53
  - !ruby/object:Gem::Dependency
55
54
  name: actionpack
56
55
  requirement: !ruby/object:Gem::Requirement
@@ -127,14 +126,14 @@ dependencies:
127
126
  requirements:
128
127
  - - "~>"
129
128
  - !ruby/object:Gem::Version
130
- version: 1.26.1
129
+ version: 1.68.0
131
130
  type: :development
132
131
  prerelease: false
133
132
  version_requirements: !ruby/object:Gem::Requirement
134
133
  requirements:
135
134
  - - "~>"
136
135
  - !ruby/object:Gem::Version
137
- version: 1.26.1
136
+ version: 1.68.0
138
137
  - !ruby/object:Gem::Dependency
139
138
  name: rubocop-rake
140
139
  requirement: !ruby/object:Gem::Requirement
@@ -155,14 +154,14 @@ dependencies:
155
154
  requirements:
156
155
  - - "~>"
157
156
  - !ruby/object:Gem::Version
158
- version: 2.9.0
157
+ version: 3.2.0
159
158
  type: :development
160
159
  prerelease: false
161
160
  version_requirements: !ruby/object:Gem::Requirement
162
161
  requirements:
163
162
  - - "~>"
164
163
  - !ruby/object:Gem::Version
165
- version: 2.9.0
164
+ version: 3.2.0
166
165
  - !ruby/object:Gem::Dependency
167
166
  name: sqlite3
168
167
  requirement: !ruby/object:Gem::Requirement
@@ -242,62 +241,13 @@ files:
242
241
  - lib/active_interaction/input.rb
243
242
  - lib/active_interaction/inputs.rb
244
243
  - lib/active_interaction/locale/en.yml
244
+ - lib/active_interaction/locale/es.yml
245
245
  - lib/active_interaction/locale/fr.yml
246
246
  - lib/active_interaction/locale/it.yml
247
247
  - lib/active_interaction/locale/ja.yml
248
248
  - lib/active_interaction/locale/pt-BR.yml
249
249
  - lib/active_interaction/modules/validation.rb
250
250
  - lib/active_interaction/version.rb
251
- - spec/active_interaction/array_input_spec.rb
252
- - spec/active_interaction/base_spec.rb
253
- - spec/active_interaction/concerns/active_modelable_spec.rb
254
- - spec/active_interaction/concerns/active_recordable_spec.rb
255
- - spec/active_interaction/concerns/hashable_spec.rb
256
- - spec/active_interaction/concerns/missable_spec.rb
257
- - spec/active_interaction/concerns/runnable_spec.rb
258
- - spec/active_interaction/errors_spec.rb
259
- - spec/active_interaction/filter/column_spec.rb
260
- - spec/active_interaction/filter_spec.rb
261
- - spec/active_interaction/filters/abstract_date_time_filter_spec.rb
262
- - spec/active_interaction/filters/abstract_numeric_filter_spec.rb
263
- - spec/active_interaction/filters/array_filter_spec.rb
264
- - spec/active_interaction/filters/boolean_filter_spec.rb
265
- - spec/active_interaction/filters/date_filter_spec.rb
266
- - spec/active_interaction/filters/date_time_filter_spec.rb
267
- - spec/active_interaction/filters/decimal_filter_spec.rb
268
- - spec/active_interaction/filters/file_filter_spec.rb
269
- - spec/active_interaction/filters/float_filter_spec.rb
270
- - spec/active_interaction/filters/hash_filter_spec.rb
271
- - spec/active_interaction/filters/integer_filter_spec.rb
272
- - spec/active_interaction/filters/interface_filter_spec.rb
273
- - spec/active_interaction/filters/object_filter_spec.rb
274
- - spec/active_interaction/filters/record_filter_spec.rb
275
- - spec/active_interaction/filters/string_filter_spec.rb
276
- - spec/active_interaction/filters/symbol_filter_spec.rb
277
- - spec/active_interaction/filters/time_filter_spec.rb
278
- - spec/active_interaction/grouped_input_spec.rb
279
- - spec/active_interaction/hash_input_spec.rb
280
- - spec/active_interaction/i18n_spec.rb
281
- - spec/active_interaction/inputs_spec.rb
282
- - spec/active_interaction/integration/array_interaction_spec.rb
283
- - spec/active_interaction/integration/boolean_interaction_spec.rb
284
- - spec/active_interaction/integration/date_interaction_spec.rb
285
- - spec/active_interaction/integration/date_time_interaction_spec.rb
286
- - spec/active_interaction/integration/file_interaction_spec.rb
287
- - spec/active_interaction/integration/float_interaction_spec.rb
288
- - spec/active_interaction/integration/hash_interaction_spec.rb
289
- - spec/active_interaction/integration/integer_interaction_spec.rb
290
- - spec/active_interaction/integration/interface_interaction_spec.rb
291
- - spec/active_interaction/integration/object_interaction_spec.rb
292
- - spec/active_interaction/integration/record_integration_spec.rb
293
- - spec/active_interaction/integration/string_interaction_spec.rb
294
- - spec/active_interaction/integration/symbol_interaction_spec.rb
295
- - spec/active_interaction/integration/time_interaction_spec.rb
296
- - spec/active_interaction/modules/validation_spec.rb
297
- - spec/spec_helper.rb
298
- - spec/support/concerns.rb
299
- - spec/support/filters.rb
300
- - spec/support/interactions.rb
301
251
  homepage: https://github.com/AaronLasseigne/active_interaction
302
252
  licenses:
303
253
  - MIT
@@ -306,7 +256,6 @@ metadata:
306
256
  source_code_uri: https://github.com/AaronLasseigne/active_interaction
307
257
  changelog_uri: https://github.com/AaronLasseigne/active_interaction/blob/main/CHANGELOG.md
308
258
  rubygems_mfa_required: 'true'
309
- post_install_message:
310
259
  rdoc_options: []
311
260
  require_paths:
312
261
  - lib
@@ -321,58 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
270
  - !ruby/object:Gem::Version
322
271
  version: '0'
323
272
  requirements: []
324
- rubygems_version: 3.3.7
325
- signing_key:
273
+ rubygems_version: 3.6.2
326
274
  specification_version: 4
327
275
  summary: Manage application specific business logic.
328
- test_files:
329
- - spec/active_interaction/array_input_spec.rb
330
- - spec/active_interaction/base_spec.rb
331
- - spec/active_interaction/concerns/active_modelable_spec.rb
332
- - spec/active_interaction/concerns/active_recordable_spec.rb
333
- - spec/active_interaction/concerns/hashable_spec.rb
334
- - spec/active_interaction/concerns/missable_spec.rb
335
- - spec/active_interaction/concerns/runnable_spec.rb
336
- - spec/active_interaction/errors_spec.rb
337
- - spec/active_interaction/filter/column_spec.rb
338
- - spec/active_interaction/filter_spec.rb
339
- - spec/active_interaction/filters/abstract_date_time_filter_spec.rb
340
- - spec/active_interaction/filters/abstract_numeric_filter_spec.rb
341
- - spec/active_interaction/filters/array_filter_spec.rb
342
- - spec/active_interaction/filters/boolean_filter_spec.rb
343
- - spec/active_interaction/filters/date_filter_spec.rb
344
- - spec/active_interaction/filters/date_time_filter_spec.rb
345
- - spec/active_interaction/filters/decimal_filter_spec.rb
346
- - spec/active_interaction/filters/file_filter_spec.rb
347
- - spec/active_interaction/filters/float_filter_spec.rb
348
- - spec/active_interaction/filters/hash_filter_spec.rb
349
- - spec/active_interaction/filters/integer_filter_spec.rb
350
- - spec/active_interaction/filters/interface_filter_spec.rb
351
- - spec/active_interaction/filters/object_filter_spec.rb
352
- - spec/active_interaction/filters/record_filter_spec.rb
353
- - spec/active_interaction/filters/string_filter_spec.rb
354
- - spec/active_interaction/filters/symbol_filter_spec.rb
355
- - spec/active_interaction/filters/time_filter_spec.rb
356
- - spec/active_interaction/grouped_input_spec.rb
357
- - spec/active_interaction/hash_input_spec.rb
358
- - spec/active_interaction/i18n_spec.rb
359
- - spec/active_interaction/inputs_spec.rb
360
- - spec/active_interaction/integration/array_interaction_spec.rb
361
- - spec/active_interaction/integration/boolean_interaction_spec.rb
362
- - spec/active_interaction/integration/date_interaction_spec.rb
363
- - spec/active_interaction/integration/date_time_interaction_spec.rb
364
- - spec/active_interaction/integration/file_interaction_spec.rb
365
- - spec/active_interaction/integration/float_interaction_spec.rb
366
- - spec/active_interaction/integration/hash_interaction_spec.rb
367
- - spec/active_interaction/integration/integer_interaction_spec.rb
368
- - spec/active_interaction/integration/interface_interaction_spec.rb
369
- - spec/active_interaction/integration/object_interaction_spec.rb
370
- - spec/active_interaction/integration/record_integration_spec.rb
371
- - spec/active_interaction/integration/string_interaction_spec.rb
372
- - spec/active_interaction/integration/symbol_interaction_spec.rb
373
- - spec/active_interaction/integration/time_interaction_spec.rb
374
- - spec/active_interaction/modules/validation_spec.rb
375
- - spec/spec_helper.rb
376
- - spec/support/concerns.rb
377
- - spec/support/filters.rb
378
- - spec/support/interactions.rb
276
+ test_files: []