active_interaction 3.0.1 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -670
- data/README.md +2 -2
- data/lib/active_interaction/base.rb +4 -4
- data/lib/active_interaction/concerns/runnable.rb +2 -2
- data/lib/active_interaction/filter.rb +9 -9
- data/lib/active_interaction/filters/abstract_date_time_filter.rb +1 -1
- data/lib/active_interaction/filters/array_filter.rb +3 -3
- data/lib/active_interaction/filters/hash_filter.rb +2 -2
- data/lib/active_interaction/filters/time_filter.rb +1 -1
- data/lib/active_interaction/modules/input_processor.rb +1 -1
- data/lib/active_interaction/version.rb +1 -1
- data/spec/support/filters.rb +17 -0
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e72499bf1bdf3c8e52009aec73e0fa72c811055c
|
4
|
+
data.tar.gz: 1cf3dc7c588dfdc26b9342f657039ed854c0e510
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 853da48292d4d04cc8854c6a5992347ad48935806802d7a2dd22a8c35e345039f1c8751a2fc52b155a5848329db8b58d89aa338af1211b238f5c6a4772fb58a2
|
7
|
+
data.tar.gz: 9095f7b640d805897acf24f7a9439ae78cbb7af08a41d101070a7712786f878d4287a096420a90e52c05fecf0c56b0f766e58fada470e649d3273d2b64c2ba2a
|
data/CHANGELOG.md
CHANGED
@@ -1,672 +1,7 @@
|
|
1
|
-
#
|
1
|
+
# Change log
|
2
2
|
|
3
|
-
|
3
|
+
ActiveInteraction uses [Semantic Versioning][].
|
4
|
+
The change log is available through the [releases on GitHub][].
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
# [3.0.0][] (2016-01-13)
|
8
|
-
|
9
|
-
## Changed
|
10
|
-
|
11
|
-
- [#333][]: Copy symbolic errors when using `compose`.
|
12
|
-
|
13
|
-
## Removed
|
14
|
-
|
15
|
-
- [#344][]: Support for Ruby 1.9.3.
|
16
|
-
- [#346][]: Support for ActiveModel 3.2.
|
17
|
-
|
18
|
-
# [2.2.0][] (2015-12-18)
|
19
|
-
|
20
|
-
## Added
|
21
|
-
|
22
|
-
- [#336][]: Added frozen string pragma for Ruby 2.3.
|
23
|
-
|
24
|
-
## Changed
|
25
|
-
|
26
|
-
- [#332][]: Changed default lambdas to be evaluated in the interaction's
|
27
|
-
binding.
|
28
|
-
|
29
|
-
# [2.1.5][] (2015-12-11)
|
30
|
-
|
31
|
-
## Added
|
32
|
-
|
33
|
-
- [#330][]: Added a French translation.
|
34
|
-
|
35
|
-
# [2.1.4][] (2015-11-03)
|
36
|
-
|
37
|
-
## Fixed
|
38
|
-
|
39
|
-
- [#320][]: Stopped requiring ActiveRecord.
|
40
|
-
|
41
|
-
## Added
|
42
|
-
|
43
|
-
- [#310][]: Added a warning when a filter is redefined.
|
44
|
-
|
45
|
-
## Changed
|
46
|
-
|
47
|
-
- [#311][]: Changed the error message when defining the default value for a
|
48
|
-
hash.
|
49
|
-
|
50
|
-
# [2.1.3][] (2015-10-02)
|
51
|
-
|
52
|
-
## Fixed
|
53
|
-
|
54
|
-
- [#303][]: Allowed ActiveRecord associations as inputs to array filters.
|
55
|
-
|
56
|
-
## Changed
|
57
|
-
|
58
|
-
- [#304][]: Improved the error message for object filters when the class does
|
59
|
-
not exist.
|
60
|
-
|
61
|
-
# [2.1.2][] (2015-09-03)
|
62
|
-
|
63
|
-
## Fixed
|
64
|
-
|
65
|
-
- [#298][]: Fixed a bug that raised exceptions when passing invalid nested
|
66
|
-
values.
|
67
|
-
|
68
|
-
# [2.1.1][] (2015-08-04)
|
69
|
-
|
70
|
-
## Fixed
|
71
|
-
|
72
|
-
- [#296][]: Fixed a bug that silently converted invalid lazy default values to
|
73
|
-
`nil` instead of raising an `InvalidDefaultError`.
|
74
|
-
|
75
|
-
# [2.1.0][] (2015-07-30)
|
76
|
-
|
77
|
-
## Added
|
78
|
-
|
79
|
-
- [#295][]: Added `given?` predicate method to see if an input was passed to
|
80
|
-
`run`.
|
81
|
-
|
82
|
-
# [2.0.1][] (2015-05-27)
|
83
|
-
|
84
|
-
## Fixed
|
85
|
-
|
86
|
-
- [#286][]: Change `file` filter to check for `rewind` instead of `eof?`.
|
87
|
-
- [#289][]: Actually removed `model` filter, which was deprecated in v1.6.0.
|
88
|
-
|
89
|
-
# [2.0.0][] (2015-05-06)
|
90
|
-
|
91
|
-
For help upgrading to version 2, please read [the announcement post][].
|
92
|
-
|
93
|
-
## Changed
|
94
|
-
|
95
|
-
- [#250][]: Replaced symbolic errors with Rails 5-style detailed errors.
|
96
|
-
- [#269][]: Prevented proc defaults from being eagerly evaluated.
|
97
|
-
- [#264][]: Renamed `model` filter to `object`.
|
98
|
-
- [#213][]: Remove transaction support. Database transactions will need to be
|
99
|
-
handled manually now.
|
100
|
-
- [#214][]: Results are returned from invalid outcomes.
|
101
|
-
- [#164][]: Changed the `hash` filter to use hashes with indifferent access.
|
102
|
-
- [#236][]: Changed the `file` filter to accept anything that responds to `eof?`.
|
103
|
-
|
104
|
-
## Security
|
105
|
-
|
106
|
-
- [#215][]: Rather than symbolizing keys all hashes now use indifferent access.
|
107
|
-
This takes care of potential but unlikely DoS attacks noted in [#163][].
|
108
|
-
|
109
|
-
# [1.6.1][] (2015-10-02)
|
110
|
-
|
111
|
-
## Fixed
|
112
|
-
|
113
|
-
- [#303][]: Allowed ActiveRecord associations as inputs to array filters.
|
114
|
-
|
115
|
-
# [1.6.0][] (2015-05-06)
|
116
|
-
|
117
|
-
## Added
|
118
|
-
|
119
|
-
- Added `object` as an alias for `model`.
|
120
|
-
- Added symbol support to `add`.
|
121
|
-
- Added `details` as an alternative to `symbolic`.
|
122
|
-
|
123
|
-
## Changed
|
124
|
-
|
125
|
-
- Deprecated `model` in favor of `object`.
|
126
|
-
- Deprecated `add_sym` in favor of `add`.
|
127
|
-
- Deprecated `transaction`.
|
128
|
-
- Deprecated `symbolic` in favor of `details`.
|
129
|
-
|
130
|
-
# [1.5.1][] (2015-04-28)
|
131
|
-
|
132
|
-
## Fixed
|
133
|
-
|
134
|
-
- [#265][]: Allow `nil` inputs for interface and model filters.
|
135
|
-
- [#256][]: Improve error messages for nested invalid values.
|
136
|
-
|
137
|
-
# [1.5.0][] (2015-02-05)
|
138
|
-
|
139
|
-
## Added
|
140
|
-
|
141
|
-
- [#248][]: Add `has_attribute?` support to an instance of an interaction.
|
142
|
-
|
143
|
-
## Fixed
|
144
|
-
|
145
|
-
- [#248][]: Fix support for simple_form gem.
|
146
|
-
|
147
|
-
# [1.4.1][] (2014-12-12)
|
148
|
-
|
149
|
-
## Fixed
|
150
|
-
|
151
|
-
- [#244][]: Fix improperly adding load paths to I18n.
|
152
|
-
|
153
|
-
# [1.4.0][] (2014-12-10)
|
154
|
-
|
155
|
-
## Changed
|
156
|
-
|
157
|
-
- [#239][]: Accept `ActiveRecord::Relation` objects as `array` inputs.
|
158
|
-
|
159
|
-
# [1.3.1][] (2014-12-10)
|
160
|
-
|
161
|
-
## Fixed
|
162
|
-
|
163
|
-
- [#235][]: Fix a bug that prevented custom translations from loading.
|
164
|
-
- [#224][]: Fix a bug that incorrectly inferred plural class names for filters
|
165
|
-
inside arrays.
|
166
|
-
|
167
|
-
# [1.3.0][] (2014-08-15)
|
168
|
-
|
169
|
-
## Added
|
170
|
-
|
171
|
-
- [#178][]: Add an interface filter.
|
172
|
-
- [#196][]: Add a `type_check` callback that happens before the `validation`
|
173
|
-
callback.
|
174
|
-
|
175
|
-
# [1.2.5][] (2014-08-15)
|
176
|
-
|
177
|
-
## Fixed
|
178
|
-
|
179
|
-
- [#207][]: Fix a bug that incorrectly converted plural class names
|
180
|
-
to their singular form.
|
181
|
-
- [#206][]: Fix a bug that caused an i18n deprecation warning.
|
182
|
-
- [#201][]: Prevented time filters from being initialized with the
|
183
|
-
format option when time zones are available.
|
184
|
-
|
185
|
-
# [1.2.4][] (2014-08-07)
|
186
|
-
|
187
|
-
## Fixed
|
188
|
-
|
189
|
-
- [#203][]: Fix a bug that prevented transaction options from being passed to
|
190
|
-
subclasses.
|
191
|
-
|
192
|
-
# [1.2.3][] (2014-05-12)
|
193
|
-
|
194
|
-
## Fixed
|
195
|
-
|
196
|
-
- [#192][]: Fix a bug that raised `ActiveRecord::Rollback` when composing even
|
197
|
-
when not in a transaction.
|
198
|
-
|
199
|
-
# [1.2.2][] (2014-05-07)
|
200
|
-
|
201
|
-
## Fixed
|
202
|
-
|
203
|
-
- Fix a bug that raised `NameError`s when there were invalid nested hash
|
204
|
-
errors.
|
205
|
-
- Add missing translation for symbol filters.
|
206
|
-
|
207
|
-
# [1.2.1][] (2014-05-02)
|
208
|
-
|
209
|
-
## Fixed
|
210
|
-
|
211
|
-
- [#179][]: Fix a bug that marked model inputs as invalid even if they returned true
|
212
|
-
for `object.is_a?(klass)`.
|
213
|
-
|
214
|
-
# [1.2.0][] (2014-04-30)
|
215
|
-
|
216
|
-
## Added
|
217
|
-
|
218
|
-
- [#175][]: Add support for Rails-style date and time parameters like `date(1i)`.
|
219
|
-
- [#173][]: Add a decimal filter.
|
220
|
-
- [#155][]: Add support for disabling and modifying transactions through the
|
221
|
-
`transaction` helper method.
|
222
|
-
- [#140][]: Add support for `column_for_attribute` which provides better
|
223
|
-
interoperability with gems like Formtastic and Simple Form.
|
224
|
-
|
225
|
-
# [1.1.7][] (2014-04-30)
|
226
|
-
|
227
|
-
## Fixed
|
228
|
-
|
229
|
-
- [#174][]: Fix a bug that leaked validators among all child classes.
|
230
|
-
|
231
|
-
# [1.1.6][] (2014-04-29)
|
232
|
-
|
233
|
-
## Fixed
|
234
|
-
|
235
|
-
- [#36][]: Fix a bug that caused nested hash error messages to be misleading.
|
236
|
-
|
237
|
-
# [1.1.5][] (2014-03-31)
|
238
|
-
|
239
|
-
## Fixed
|
240
|
-
|
241
|
-
- The `transform_keys` method broke backwards compatibility because it's not
|
242
|
-
available until Rails 4.0.2.
|
243
|
-
|
244
|
-
# [1.1.4][] (2014-03-31)
|
245
|
-
|
246
|
-
## Fixed
|
247
|
-
|
248
|
-
- Fix an issue where non-stripped hash keys would be incorrectly converted to strings.
|
249
|
-
|
250
|
-
# [1.1.3][] (2014-03-31)
|
251
|
-
|
252
|
-
## Fixed
|
253
|
-
|
254
|
-
- [#165][]: Fix Rubocop errors and pin the version to avoid future issues with new cops
|
255
|
-
breaking the build.
|
256
|
-
|
257
|
-
## Security
|
258
|
-
|
259
|
-
- [#163][]: Fix some denial of service attacks via hash symbolization.
|
260
|
-
|
261
|
-
# [1.1.2][] (2014-03-05)
|
262
|
-
|
263
|
-
## Fixed
|
264
|
-
|
265
|
-
- [#156][]: Don't constantize classes for model filters on initialization. This fixes a
|
266
|
-
bug that made those filters dependent on load order.
|
267
|
-
|
268
|
-
# [1.1.1][] (2014-03-04)
|
269
|
-
|
270
|
-
## Fixed
|
271
|
-
|
272
|
-
- [#153][]: Allow merging ActiveModel errors into ActiveInteraction errors with
|
273
|
-
`ActiveInteraction::Errors#merge!`.
|
274
|
-
|
275
|
-
# [1.1.0][] (2014-02-28)
|
276
|
-
|
277
|
-
## Added
|
278
|
-
|
279
|
-
- [#116][], [#119][], [#122][]: Speed up many filters by caching class constants.
|
280
|
-
- [#115][]: Add support for callbacks around `execute`.
|
281
|
-
- [#136][]: Allow callable defaults.
|
282
|
-
|
283
|
-
## Changed
|
284
|
-
|
285
|
-
- [#114][]: Support `:only` and `:except` options simultaneously with `import_filters`.
|
286
|
-
Previously this raised an `ArgumentError`.
|
287
|
-
- [#114][]: Support passing a single symbol to `:only` and `:except`. Previously an Array
|
288
|
-
was required.
|
289
|
-
|
290
|
-
## Security
|
291
|
-
|
292
|
-
- [#138][]: Only set instance variables for attributes with readers defined.
|
293
|
-
|
294
|
-
|
295
|
-
# [1.0.5][] (2014-02-25)
|
296
|
-
|
297
|
-
## Fixed
|
298
|
-
|
299
|
-
- [#143][]: Rollback database changes when `compose` fails.
|
300
|
-
|
301
|
-
# [1.0.4][] (2014-02-11)
|
302
|
-
|
303
|
-
## Fixed
|
304
|
-
|
305
|
-
- Add translations to the gem specification.
|
306
|
-
|
307
|
-
# ~~[1.0.3][] (2014-02-11)~~
|
308
|
-
|
309
|
-
## Fixed
|
310
|
-
|
311
|
-
- [#135][]: Fix a bug that caused invalid strings to be parsed as `nil` instead of
|
312
|
-
raising an error when `Time.zone` was set.
|
313
|
-
- [#134][]: Fix bug that prevented loading I18n translations.
|
314
|
-
|
315
|
-
# [1.0.2][] (2014-02-07)
|
316
|
-
|
317
|
-
## Fixed
|
318
|
-
|
319
|
-
- [#130][]: Stop creating duplicate errors on subsequent calls to `valid?`.
|
320
|
-
|
321
|
-
# [1.0.1][] (2014-02-04)
|
322
|
-
|
323
|
-
## Fixed
|
324
|
-
|
325
|
-
- [#125][]: Short circuit `valid?` after successfully running an interaction.
|
326
|
-
- [#129][]: Fix a bug that prevented merging interpolated symbolic errors.
|
327
|
-
- [#128][]: Use `:invalid_type` instead of `:invalid` as I18n key for type errors.
|
328
|
-
- [#127][]: Fix a bug that skipped setting up accessors for imported filters.
|
329
|
-
|
330
|
-
# [1.0.0][] (2014-01-21)
|
331
|
-
|
332
|
-
## Added
|
333
|
-
|
334
|
-
- [#102][]: Add predicate methods for checking if an input was passed.
|
335
|
-
- [#103][]: Allow fetching filters by name.
|
336
|
-
- [#104][]: Allow import filters from another interaction with `import_filters`.
|
337
|
-
|
338
|
-
## Changed
|
339
|
-
|
340
|
-
- [#111][]: Replace `Filters` with a hash. To iterate over `Filter` objects, use
|
341
|
-
`Interaction.filters.values`.
|
342
|
-
- Rename `Filter#has_default?` to `Filter#default?`.
|
343
|
-
|
344
|
-
## Fixed
|
345
|
-
|
346
|
-
- [#98][]: Add `respond_to_missing?` to complement `method_missing` calls.
|
347
|
-
- [#106][]: When adding a filter that shares a name with an existing filter, it will now
|
348
|
-
replace the existing one instead of adding a duplicate.
|
349
|
-
|
350
|
-
# [0.10.2][] (2014-01-02)
|
351
|
-
|
352
|
-
## Fixed
|
353
|
-
|
354
|
-
- [#94][]: Fix a bug that marked Time instances as invalid if Time.zone was set.
|
355
|
-
|
356
|
-
# [0.10.1][] (2013-12-20)
|
357
|
-
|
358
|
-
## Fixed
|
359
|
-
|
360
|
-
- [#90][]: Fix bug that prevented parsing strings as times when ActiveSupport was
|
361
|
-
available.
|
362
|
-
|
363
|
-
# [0.10.0][] (2013-12-19)
|
364
|
-
|
365
|
-
## Added
|
366
|
-
|
367
|
-
- Support casting "true" and "false" as booleans.
|
368
|
-
|
369
|
-
## Fixed
|
370
|
-
|
371
|
-
- [#89][]: Fix bug that allowed subclasses to mutate the filters on their superclasses.
|
372
|
-
|
373
|
-
# [0.9.1][] (2013-12-17)
|
374
|
-
|
375
|
-
## Fixed
|
376
|
-
|
377
|
-
- [#84][]: Fix I18n deprecation warning.
|
378
|
-
- [#82][]: Raise `ArgumentError` when running an interaction with non-hash inputs.
|
379
|
-
- [#77][]: For compatibility with `ActiveRecord::Errors`, support indifferent access of
|
380
|
-
`ActiveInteraction::Errors`.
|
381
|
-
- [#88][]: Fix losing filters when using inheritance.
|
382
|
-
|
383
|
-
# [0.9.0][] (2013-12-02)
|
384
|
-
|
385
|
-
## Added
|
386
|
-
|
387
|
-
- Add experimental composition implementation (`ActiveInteraction::Base#compose`).
|
388
|
-
|
389
|
-
## Removed
|
390
|
-
|
391
|
-
- Remove `ActiveInteraction::Pipeline`.
|
392
|
-
|
393
|
-
# [0.8.0][] (2013-11-14)
|
394
|
-
|
395
|
-
## Added
|
396
|
-
|
397
|
-
- [#44][], [#45][]: Add ability to document interactions and filters.
|
398
|
-
|
399
|
-
# [0.7.0][] (2013-11-14)
|
400
|
-
|
401
|
-
## Added
|
402
|
-
|
403
|
-
- [#41][]: Add ability to chain a series of interactions together with
|
404
|
-
`ActiveInteraction::Pipeline`.
|
405
|
-
|
406
|
-
# [0.6.1][] (2013-11-14)
|
407
|
-
|
408
|
-
## Fixed
|
409
|
-
|
410
|
-
- Re-release. Forgot to merge into master.
|
411
|
-
|
412
|
-
# ~~[0.6.0][] (2013-11-14)~~
|
413
|
-
|
414
|
-
## Added
|
415
|
-
|
416
|
-
- Add ability to introspect interactions with `filters`.
|
417
|
-
- [#57][]: Allow getting all of the user-supplied inputs in an interaction with
|
418
|
-
`inputs`.
|
419
|
-
- [#61][]: Add a symbol filter.
|
420
|
-
- [#58][]: Allow adding symbolic errors with `errors.add_sym` and retrieving them with
|
421
|
-
`errors.symbolic`.
|
422
|
-
|
423
|
-
## Changed
|
424
|
-
|
425
|
-
- Error class now end with `Error`.
|
426
|
-
- By default, strip unlisted keys from hashes. To retain the old behavior,
|
427
|
-
set `strip: false` on a hash filter.
|
428
|
-
- [#49][]: Prevent specifying defaults (other than `nil` or `{}`) on hash filters. Set
|
429
|
-
defaults on the nested filters instead.
|
430
|
-
- [#66][]: Replace `allow_nil: true` with `default: nil`.
|
431
|
-
|
432
|
-
## Fixed
|
433
|
-
|
434
|
-
- Fix bug that prevented listing multiple attributes in a hash filter.
|
435
|
-
- Fix bug that prevented hash filters from being nested in array filters.
|
436
|
-
|
437
|
-
# [0.5.0][] (2013-10-16)
|
438
|
-
|
439
|
-
## Added
|
440
|
-
|
441
|
-
- [#34][]: Allow adding errors in `execute` method with `errors.add`.
|
442
|
-
|
443
|
-
## Fixed
|
444
|
-
|
445
|
-
- [#56][]: Prevent manually setting the outcome's result.
|
446
|
-
|
447
|
-
# [0.4.0][] (2013-08-15)
|
448
|
-
|
449
|
-
## Added
|
450
|
-
|
451
|
-
- Support i18n translations.
|
452
|
-
|
453
|
-
# [0.3.0][] (2013-08-07)
|
454
|
-
|
455
|
-
## Added
|
456
|
-
|
457
|
-
- [#30][]: Allow nested default values.
|
458
|
-
|
459
|
-
## Changed
|
460
|
-
|
461
|
-
- [#36][]: Give better error messages for nested attributes.
|
462
|
-
- [#39][]: Add a more useful invalid interaction error message.
|
463
|
-
- [#38][]: Use default value when given an explicit `nil`.
|
464
|
-
|
465
|
-
# [0.2.2][] (2013-08-07)
|
466
|
-
|
467
|
-
## Fixed
|
468
|
-
|
469
|
-
- [#40][]: Fix support for `ActiveSupport::TimeWithZone`.
|
470
|
-
|
471
|
-
# [0.2.1][] (2013-08-06)
|
472
|
-
|
473
|
-
## Fixed
|
474
|
-
|
475
|
-
- [#37][]: Fix setting a default value on more than one attribute at a time.
|
476
|
-
|
477
|
-
# [0.2.0][] (2013-07-16)
|
478
|
-
|
479
|
-
## Added
|
480
|
-
|
481
|
-
- [#23][]: Add support for strptime format strings on Date, DateTime, and Time filters.
|
482
|
-
|
483
|
-
## Changed
|
484
|
-
|
485
|
-
- [#20][]: Wrap interactions in ActiveRecord transactions if they're available.
|
486
|
-
- [#24][]: Add option to strip string values, which is enabled by default.
|
487
|
-
|
488
|
-
# [0.1.3][] (2013-07-16)
|
489
|
-
|
490
|
-
## Fixed
|
491
|
-
|
492
|
-
- Fix bug that prevented `attr_accessor`s from working.
|
493
|
-
- Handle unconfigured timezones.
|
494
|
-
- [#27][]: Use RDoc as YARD's Markdown provider instead of kramdown.
|
495
|
-
|
496
|
-
# [0.1.2][] (2013-07-14)
|
497
|
-
|
498
|
-
## Fixed
|
499
|
-
|
500
|
-
- [#29][]: `execute` will now have the filtered version of the values passed
|
501
|
-
to `run` or `run!` as was intended.
|
502
|
-
|
503
|
-
# [0.1.1][] (2013-07-13)
|
504
|
-
|
505
|
-
## Fixed
|
506
|
-
|
507
|
-
- [#28][]: Correct gemspec dependencies on activemodel.
|
508
|
-
|
509
|
-
# ~~[0.1.0][] (2013-07-12)~~
|
510
|
-
|
511
|
-
- Initial release.
|
512
|
-
|
513
|
-
[3.0.1]: https://github.com/orgsync/active_interaction/compare/v3.0.0...v3.0.1
|
514
|
-
[3.0.0]: https://github.com/orgsync/active_interaction/compare/v2.2.0...v3.0.0
|
515
|
-
[2.2.0]: https://github.com/orgsync/active_interaction/compare/v2.1.5...v2.2.0
|
516
|
-
[2.1.5]: https://github.com/orgsync/active_interaction/compare/v2.1.4...v2.1.5
|
517
|
-
[2.1.4]: https://github.com/orgsync/active_interaction/compare/v2.1.3...v2.1.4
|
518
|
-
[2.1.3]: https://github.com/orgsync/active_interaction/compare/v2.1.2...v2.1.3
|
519
|
-
[2.1.2]: https://github.com/orgsync/active_interaction/compare/v2.1.1...v2.1.2
|
520
|
-
[2.1.1]: https://github.com/orgsync/active_interaction/compare/v2.1.0...v2.1.1
|
521
|
-
[2.1.0]: https://github.com/orgsync/active_interaction/compare/v2.0.1...v2.1.0
|
522
|
-
[2.0.1]: https://github.com/orgsync/active_interaction/compare/v2.0.0...v2.0.1
|
523
|
-
[2.0.0]: https://github.com/orgsync/active_interaction/compare/v1.6.0...v2.0.0
|
524
|
-
[1.6.1]: https://github.com/orgsync/active_interaction/compare/v1.6.0...v1.6.1
|
525
|
-
[1.6.0]: https://github.com/orgsync/active_interaction/compare/v1.5.1...v1.6.0
|
526
|
-
[1.5.1]: https://github.com/orgsync/active_interaction/compare/v1.5.0...v1.5.1
|
527
|
-
[1.5.0]: https://github.com/orgsync/active_interaction/compare/v1.4.1...v1.5.0
|
528
|
-
[1.4.1]: https://github.com/orgsync/active_interaction/compare/v1.4.0...v1.4.1
|
529
|
-
[1.4.0]: https://github.com/orgsync/active_interaction/compare/v1.3.1...v1.4.0
|
530
|
-
[1.3.1]: https://github.com/orgsync/active_interaction/compare/v1.3.0...v1.3.1
|
531
|
-
[1.3.0]: https://github.com/orgsync/active_interaction/compare/v1.2.5...v1.3.0
|
532
|
-
[1.2.5]: https://github.com/orgsync/active_interaction/compare/v1.2.4...v1.2.5
|
533
|
-
[1.2.4]: https://github.com/orgsync/active_interaction/compare/v1.2.3...v1.2.4
|
534
|
-
[1.2.3]: https://github.com/orgsync/active_interaction/compare/v1.2.2...v1.2.3
|
535
|
-
[1.2.2]: https://github.com/orgsync/active_interaction/compare/v1.2.1...v1.2.2
|
536
|
-
[1.2.1]: https://github.com/orgsync/active_interaction/compare/v1.2.0...v1.2.1
|
537
|
-
[1.2.0]: https://github.com/orgsync/active_interaction/compare/v1.1.7...v1.2.0
|
538
|
-
[1.1.7]: https://github.com/orgsync/active_interaction/compare/v1.1.6...v1.1.7
|
539
|
-
[1.1.6]: https://github.com/orgsync/active_interaction/compare/v1.1.5...v1.1.6
|
540
|
-
[1.1.5]: https://github.com/orgsync/active_interaction/compare/v1.1.4...v1.1.5
|
541
|
-
[1.1.4]: https://github.com/orgsync/active_interaction/compare/v1.1.3...v1.1.4
|
542
|
-
[1.1.3]: https://github.com/orgsync/active_interaction/compare/v1.1.2...v1.1.3
|
543
|
-
[1.1.2]: https://github.com/orgsync/active_interaction/compare/v1.1.1...v1.1.2
|
544
|
-
[1.1.1]: https://github.com/orgsync/active_interaction/compare/v1.1.0...v1.1.1
|
545
|
-
[1.1.0]: https://github.com/orgsync/active_interaction/compare/v1.0.5...v1.1.0
|
546
|
-
[1.0.5]: https://github.com/orgsync/active_interaction/compare/v1.0.4...v1.0.5
|
547
|
-
[1.0.4]: https://github.com/orgsync/active_interaction/compare/v1.0.3...v1.0.4
|
548
|
-
[1.0.3]: https://github.com/orgsync/active_interaction/compare/v1.0.2...v1.0.3
|
549
|
-
[1.0.2]: https://github.com/orgsync/active_interaction/compare/v1.0.1...v1.0.2
|
550
|
-
[1.0.1]: https://github.com/orgsync/active_interaction/compare/v1.0.0...v1.0.1
|
551
|
-
[1.0.0]: https://github.com/orgsync/active_interaction/compare/v0.10.2...v1.0.0
|
552
|
-
[0.10.2]: https://github.com/orgsync/active_interaction/compare/v0.10.1...v0.10.2
|
553
|
-
[0.10.1]: https://github.com/orgsync/active_interaction/compare/v0.10.0...v0.10.1
|
554
|
-
[0.10.0]: https://github.com/orgsync/active_interaction/compare/v0.9.1...v0.10.0
|
555
|
-
[0.9.1]: https://github.com/orgsync/active_interaction/compare/v0.9.0...v0.9.1
|
556
|
-
[0.9.0]: https://github.com/orgsync/active_interaction/compare/v0.8.0...v0.9.0
|
557
|
-
[0.8.0]: https://github.com/orgsync/active_interaction/compare/v0.7.0...v0.8.0
|
558
|
-
[0.7.0]: https://github.com/orgsync/active_interaction/compare/v0.6.1...v0.7.0
|
559
|
-
[0.6.1]: https://github.com/orgsync/active_interaction/compare/v0.6.0...v0.6.1
|
560
|
-
[0.6.0]: https://github.com/orgsync/active_interaction/compare/v0.5.0...v0.6.0
|
561
|
-
[0.5.0]: https://github.com/orgsync/active_interaction/compare/v0.4.0...v0.5.0
|
562
|
-
[0.4.0]: https://github.com/orgsync/active_interaction/compare/v0.3.0...v0.4.0
|
563
|
-
[0.3.0]: https://github.com/orgsync/active_interaction/compare/v0.2.2...v0.3.0
|
564
|
-
[0.2.2]: https://github.com/orgsync/active_interaction/compare/v0.2.1...v0.2.2
|
565
|
-
[0.2.1]: https://github.com/orgsync/active_interaction/compare/v0.2.0...v0.2.1
|
566
|
-
[0.2.0]: https://github.com/orgsync/active_interaction/compare/v0.1.3...v0.2.0
|
567
|
-
[0.1.3]: https://github.com/orgsync/active_interaction/compare/v0.1.2...v0.1.3
|
568
|
-
[0.1.2]: https://github.com/orgsync/active_interaction/compare/v0.1.1...v0.1.2
|
569
|
-
[0.1.1]: https://github.com/orgsync/active_interaction/compare/v0.1.0...v0.1.1
|
570
|
-
[0.1.0]: https://github.com/orgsync/active_interaction/compare/v0.0.0...v0.1.0
|
571
|
-
|
572
|
-
[#20]: https://github.com/orgsync/active_interaction/issues/20
|
573
|
-
[#23]: https://github.com/orgsync/active_interaction/issues/23
|
574
|
-
[#24]: https://github.com/orgsync/active_interaction/issues/24
|
575
|
-
[#27]: https://github.com/orgsync/active_interaction/issues/27
|
576
|
-
[#28]: https://github.com/orgsync/active_interaction/issues/28
|
577
|
-
[#29]: https://github.com/orgsync/active_interaction/issues/29
|
578
|
-
[#30]: https://github.com/orgsync/active_interaction/issues/30
|
579
|
-
[#34]: https://github.com/orgsync/active_interaction/issues/34
|
580
|
-
[#36]: https://github.com/orgsync/active_interaction/issues/36
|
581
|
-
[#37]: https://github.com/orgsync/active_interaction/issues/37
|
582
|
-
[#38]: https://github.com/orgsync/active_interaction/issues/38
|
583
|
-
[#39]: https://github.com/orgsync/active_interaction/issues/39
|
584
|
-
[#40]: https://github.com/orgsync/active_interaction/issues/40
|
585
|
-
[#41]: https://github.com/orgsync/active_interaction/issues/41
|
586
|
-
[#44]: https://github.com/orgsync/active_interaction/issues/44
|
587
|
-
[#45]: https://github.com/orgsync/active_interaction/issues/45
|
588
|
-
[#49]: https://github.com/orgsync/active_interaction/issues/49
|
589
|
-
[#56]: https://github.com/orgsync/active_interaction/issues/56
|
590
|
-
[#57]: https://github.com/orgsync/active_interaction/issues/57
|
591
|
-
[#58]: https://github.com/orgsync/active_interaction/issues/58
|
592
|
-
[#61]: https://github.com/orgsync/active_interaction/issues/61
|
593
|
-
[#66]: https://github.com/orgsync/active_interaction/issues/66
|
594
|
-
[#77]: https://github.com/orgsync/active_interaction/issues/77
|
595
|
-
[#82]: https://github.com/orgsync/active_interaction/issues/82
|
596
|
-
[#84]: https://github.com/orgsync/active_interaction/issues/84
|
597
|
-
[#88]: https://github.com/orgsync/active_interaction/issues/88
|
598
|
-
[#89]: https://github.com/orgsync/active_interaction/issues/89
|
599
|
-
[#90]: https://github.com/orgsync/active_interaction/issues/90
|
600
|
-
[#94]: https://github.com/orgsync/active_interaction/issues/94
|
601
|
-
[#98]: https://github.com/orgsync/active_interaction/issues/98
|
602
|
-
[#102]: https://github.com/orgsync/active_interaction/issues/102
|
603
|
-
[#103]: https://github.com/orgsync/active_interaction/issues/103
|
604
|
-
[#104]: https://github.com/orgsync/active_interaction/issues/104
|
605
|
-
[#106]: https://github.com/orgsync/active_interaction/issues/106
|
606
|
-
[#111]: https://github.com/orgsync/active_interaction/issues/111
|
607
|
-
[#114]: https://github.com/orgsync/active_interaction/issues/114
|
608
|
-
[#115]: https://github.com/orgsync/active_interaction/issues/115
|
609
|
-
[#116]: https://github.com/orgsync/active_interaction/issues/116
|
610
|
-
[#119]: https://github.com/orgsync/active_interaction/issues/119
|
611
|
-
[#122]: https://github.com/orgsync/active_interaction/issues/122
|
612
|
-
[#125]: https://github.com/orgsync/active_interaction/issues/125
|
613
|
-
[#127]: https://github.com/orgsync/active_interaction/issues/127
|
614
|
-
[#128]: https://github.com/orgsync/active_interaction/issues/128
|
615
|
-
[#129]: https://github.com/orgsync/active_interaction/issues/129
|
616
|
-
[#130]: https://github.com/orgsync/active_interaction/issues/130
|
617
|
-
[#134]: https://github.com/orgsync/active_interaction/issues/134
|
618
|
-
[#135]: https://github.com/orgsync/active_interaction/issues/135
|
619
|
-
[#136]: https://github.com/orgsync/active_interaction/issues/136
|
620
|
-
[#138]: https://github.com/orgsync/active_interaction/issues/138
|
621
|
-
[#140]: https://github.com/orgsync/active_interaction/issues/140
|
622
|
-
[#143]: https://github.com/orgsync/active_interaction/issues/143
|
623
|
-
[#153]: https://github.com/orgsync/active_interaction/issues/153
|
624
|
-
[#155]: https://github.com/orgsync/active_interaction/issues/155
|
625
|
-
[#156]: https://github.com/orgsync/active_interaction/issues/156
|
626
|
-
[#163]: https://github.com/orgsync/active_interaction/issues/163
|
627
|
-
[#164]: https://github.com/orgsync/active_interaction/issues/164
|
628
|
-
[#165]: https://github.com/orgsync/active_interaction/issues/165
|
629
|
-
[#173]: https://github.com/orgsync/active_interaction/issues/173
|
630
|
-
[#174]: https://github.com/orgsync/active_interaction/issues/174
|
631
|
-
[#175]: https://github.com/orgsync/active_interaction/issues/175
|
632
|
-
[#178]: https://github.com/orgsync/active_interaction/issues/178
|
633
|
-
[#179]: https://github.com/orgsync/active_interaction/issues/179
|
634
|
-
[#192]: https://github.com/orgsync/active_interaction/issues/192
|
635
|
-
[#196]: https://github.com/orgsync/active_interaction/issues/196
|
636
|
-
[#201]: https://github.com/orgsync/active_interaction/issues/201
|
637
|
-
[#203]: https://github.com/orgsync/active_interaction/issues/203
|
638
|
-
[#206]: https://github.com/orgsync/active_interaction/issues/206
|
639
|
-
[#207]: https://github.com/orgsync/active_interaction/issues/207
|
640
|
-
[#213]: https://github.com/orgsync/active_interaction/issues/213
|
641
|
-
[#214]: https://github.com/orgsync/active_interaction/issues/214
|
642
|
-
[#215]: https://github.com/orgsync/active_interaction/issues/215
|
643
|
-
[#224]: https://github.com/orgsync/active_interaction/issues/224
|
644
|
-
[#235]: https://github.com/orgsync/active_interaction/issues/235
|
645
|
-
[#236]: https://github.com/orgsync/active_interaction/issues/236
|
646
|
-
[#239]: https://github.com/orgsync/active_interaction/issues/239
|
647
|
-
[#244]: https://github.com/orgsync/active_interaction/issues/244
|
648
|
-
[#248]: https://github.com/orgsync/active_interaction/issues/248
|
649
|
-
[#250]: https://github.com/orgsync/active_interaction/issues/250
|
650
|
-
[#256]: https://github.com/orgsync/active_interaction/issues/256
|
651
|
-
[#264]: https://github.com/orgsync/active_interaction/issues/264
|
652
|
-
[#265]: https://github.com/orgsync/active_interaction/issues/265
|
653
|
-
[#269]: https://github.com/orgsync/active_interaction/issues/269
|
654
|
-
[#286]: https://github.com/orgsync/active_interaction/issues/286
|
655
|
-
[#289]: https://github.com/orgsync/active_interaction/issues/289
|
656
|
-
[#295]: https://github.com/orgsync/active_interaction/issues/295
|
657
|
-
[#296]: https://github.com/orgsync/active_interaction/issues/296
|
658
|
-
[#298]: https://github.com/orgsync/active_interaction/issues/298
|
659
|
-
[#303]: https://github.com/orgsync/active_interaction/issues/303
|
660
|
-
[#304]: https://github.com/orgsync/active_interaction/issues/304
|
661
|
-
[#310]: https://github.com/orgsync/active_interaction/issues/310
|
662
|
-
[#311]: https://github.com/orgsync/active_interaction/issues/311
|
663
|
-
[#320]: https://github.com/orgsync/active_interaction/issues/320
|
664
|
-
[#330]: https://github.com/orgsync/active_interaction/pull/330
|
665
|
-
[#332]: https://github.com/orgsync/active_interaction/pull/332
|
666
|
-
[#333]: https://github.com/orgsync/active_interaction/pull/333
|
667
|
-
[#336]: https://github.com/orgsync/active_interaction/pull/336
|
668
|
-
[#344]: https://github.com/orgsync/active_interaction/pull/344
|
669
|
-
[#346]: https://github.com/orgsync/active_interaction/pull/346
|
670
|
-
[#349]: https://github.com/orgsync/active_interaction/pull/349
|
671
|
-
|
672
|
-
[the announcement post]: http://devblog.orgsync.com/2015/05/06/announcing-active-interaction-2/
|
6
|
+
[Semantic Versioning]: http://semver.org/spec/v2.0.0.html
|
7
|
+
[releases on GitHub]: https://github.com/orgsync/active_interaction/releases
|
data/README.md
CHANGED
@@ -172,8 +172,8 @@ class SayHello < ActiveInteraction::Base
|
|
172
172
|
end
|
173
173
|
```
|
174
174
|
|
175
|
-
When you run this interaction, two things will happen. First ActiveInteraction
|
176
|
-
will type check your inputs. Then ActiveModel will validate them
|
175
|
+
When you run this interaction, two things will happen. **First ActiveInteraction
|
176
|
+
will type check your inputs. Then ActiveModel will validate them.** If both of
|
177
177
|
those are happy, it will be executed.
|
178
178
|
|
179
179
|
``` rb
|
@@ -95,7 +95,7 @@ module ActiveInteraction
|
|
95
95
|
# @private
|
96
96
|
def method_missing(*args, &block)
|
97
97
|
super do |klass, names, options|
|
98
|
-
|
98
|
+
raise InvalidFilterError, 'missing attribute name' if names.empty?
|
99
99
|
|
100
100
|
names.each { |name| add_filter(klass, name, options, &block) }
|
101
101
|
end
|
@@ -107,7 +107,7 @@ module ActiveInteraction
|
|
107
107
|
# @param name [Symbol]
|
108
108
|
# @param options [Hash]
|
109
109
|
def add_filter(klass, name, options, &block)
|
110
|
-
|
110
|
+
raise InvalidFilterError, name.inspect if InputProcessor.reserved?(name)
|
111
111
|
|
112
112
|
initialize_filter(klass.new(name, options, &block))
|
113
113
|
end
|
@@ -167,7 +167,7 @@ module ActiveInteraction
|
|
167
167
|
#
|
168
168
|
# @private
|
169
169
|
def initialize(inputs = {})
|
170
|
-
|
170
|
+
raise ArgumentError, 'inputs must be a hash' unless inputs.is_a?(Hash)
|
171
171
|
|
172
172
|
process_inputs(inputs.symbolize_keys)
|
173
173
|
end
|
@@ -237,7 +237,7 @@ module ActiveInteraction
|
|
237
237
|
@_interaction_keys = inputs.keys.to_set & self.class.filters.keys
|
238
238
|
|
239
239
|
inputs.each do |key, value|
|
240
|
-
|
240
|
+
raise InvalidValueError, key.inspect if InputProcessor.reserved?(key)
|
241
241
|
|
242
242
|
populate_reader(key, value)
|
243
243
|
end
|
@@ -27,7 +27,7 @@ module ActiveInteraction
|
|
27
27
|
#
|
28
28
|
# @raise [NotImplementedError]
|
29
29
|
def execute
|
30
|
-
|
30
|
+
raise NotImplementedError
|
31
31
|
end
|
32
32
|
|
33
33
|
# @return [Object] If there are no validation errors.
|
@@ -95,7 +95,7 @@ module ActiveInteraction
|
|
95
95
|
if valid?
|
96
96
|
result
|
97
97
|
else
|
98
|
-
|
98
|
+
raise InvalidInteractionError, errors.full_messages.join(', ')
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
@@ -49,7 +49,7 @@ module ActiveInteraction
|
|
49
49
|
#
|
50
50
|
# @see .slug
|
51
51
|
def factory(slug)
|
52
|
-
CLASSES.fetch(slug) {
|
52
|
+
CLASSES.fetch(slug) { raise MissingFilterError, slug.inspect }
|
53
53
|
end
|
54
54
|
|
55
55
|
private
|
@@ -125,10 +125,10 @@ module ActiveInteraction
|
|
125
125
|
# @raise [NoDefaultError] If the default is missing.
|
126
126
|
# @raise [InvalidDefaultError] If the default is invalid.
|
127
127
|
def default(context = nil)
|
128
|
-
|
128
|
+
raise NoDefaultError, name unless default?
|
129
129
|
|
130
130
|
value = raw_default(context)
|
131
|
-
|
131
|
+
raise InvalidValueError if value.is_a?(GroupedInput)
|
132
132
|
|
133
133
|
cast(value, context)
|
134
134
|
rescue InvalidNestedValueError => error
|
@@ -175,11 +175,11 @@ module ActiveInteraction
|
|
175
175
|
def cast(value, _interaction)
|
176
176
|
case value
|
177
177
|
when NilClass
|
178
|
-
|
178
|
+
raise MissingValueError, name unless default?
|
179
179
|
|
180
180
|
nil
|
181
181
|
else
|
182
|
-
|
182
|
+
raise InvalidValueError, "#{name}: #{describe(value)}"
|
183
183
|
end
|
184
184
|
end
|
185
185
|
|
@@ -215,11 +215,11 @@ module ActiveInteraction
|
|
215
215
|
# @return [Object]
|
216
216
|
def raw_default(context)
|
217
217
|
value = options.fetch(:default)
|
218
|
+
return value unless value.is_a?(Proc)
|
218
219
|
|
219
|
-
|
220
|
-
|
221
|
-
else
|
222
|
-
value
|
220
|
+
case value.arity
|
221
|
+
when 1 then context.instance_exec(self, &value)
|
222
|
+
else context.instance_exec(&value)
|
223
223
|
end
|
224
224
|
end
|
225
225
|
end
|
@@ -36,7 +36,7 @@ module ActiveInteraction
|
|
36
36
|
klass.strptime(value, format)
|
37
37
|
else
|
38
38
|
klass.parse(value) ||
|
39
|
-
(
|
39
|
+
(raise ArgumentError, "no time information in #{value.inspect}")
|
40
40
|
end
|
41
41
|
rescue ArgumentError
|
42
42
|
_cast(value, context)
|
@@ -73,15 +73,15 @@ module ActiveInteraction
|
|
73
73
|
# @raise [InvalidFilterError]
|
74
74
|
def validate!(filter, names)
|
75
75
|
unless filters.empty?
|
76
|
-
|
76
|
+
raise InvalidFilterError, 'multiple filters in array block'
|
77
77
|
end
|
78
78
|
|
79
79
|
unless names.empty?
|
80
|
-
|
80
|
+
raise InvalidFilterError, 'attribute names in array block'
|
81
81
|
end
|
82
82
|
|
83
83
|
if filter.default?
|
84
|
-
|
84
|
+
raise InvalidDefaultError, 'default values in array block'
|
85
85
|
end
|
86
86
|
|
87
87
|
nil
|
@@ -42,7 +42,7 @@ module ActiveInteraction
|
|
42
42
|
|
43
43
|
def method_missing(*args, &block)
|
44
44
|
super(*args) do |klass, names, options|
|
45
|
-
|
45
|
+
raise InvalidFilterError, 'missing attribute name' if names.empty?
|
46
46
|
|
47
47
|
names.each do |name|
|
48
48
|
filters[name] = klass.new(name, options, &block)
|
@@ -62,7 +62,7 @@ module ActiveInteraction
|
|
62
62
|
value = super
|
63
63
|
|
64
64
|
if value.is_a?(Hash) && !value.empty?
|
65
|
-
|
65
|
+
raise InvalidDefaultError, "#{name}: #{value.inspect}"
|
66
66
|
end
|
67
67
|
|
68
68
|
value
|
@@ -29,7 +29,7 @@ module ActiveInteraction
|
|
29
29
|
|
30
30
|
def initialize(name, options = {}, &block)
|
31
31
|
if options.key?(:format) && klass != Time
|
32
|
-
|
32
|
+
raise InvalidFilterError, 'format option unsupported with time zones'
|
33
33
|
end
|
34
34
|
|
35
35
|
super
|
@@ -18,7 +18,7 @@ module ActiveInteraction
|
|
18
18
|
|
19
19
|
def process(inputs)
|
20
20
|
inputs.stringify_keys.sort.each_with_object({}) do |(k, v), h|
|
21
|
-
|
21
|
+
raise ReservedNameError, k.inspect if reserved?(k)
|
22
22
|
|
23
23
|
if (match = GROUPED_INPUT_PATTERN.match(k))
|
24
24
|
assign_to_group!(h, *match.captures, v)
|
data/spec/support/filters.rb
CHANGED
@@ -166,6 +166,23 @@ shared_examples_for 'a filter' do
|
|
166
166
|
expect(filter.default(nil)).to eql options[:default].call
|
167
167
|
end
|
168
168
|
end
|
169
|
+
|
170
|
+
context 'with a callable default that takes an argument' do
|
171
|
+
include_context 'optional'
|
172
|
+
|
173
|
+
it 'returns the default' do
|
174
|
+
default = options[:default]
|
175
|
+
|
176
|
+
spec = self
|
177
|
+
filter # Necessary to bring into scope for lambda.
|
178
|
+
options[:default] = lambda do |this|
|
179
|
+
spec.expect(this).to be filter
|
180
|
+
default
|
181
|
+
end
|
182
|
+
|
183
|
+
expect(filter.default(nil)).to be default
|
184
|
+
end
|
185
|
+
end
|
169
186
|
end
|
170
187
|
|
171
188
|
describe '#desc' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_interaction
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Lasseigne
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-01
|
12
|
+
date: 2016-04-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
@@ -135,14 +135,14 @@ dependencies:
|
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '11.1'
|
139
139
|
type: :development
|
140
140
|
prerelease: false
|
141
141
|
version_requirements: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
145
|
+
version: '11.1'
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
147
|
name: rspec
|
148
148
|
requirement: !ruby/object:Gem::Requirement
|
@@ -163,14 +163,14 @@ dependencies:
|
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.
|
166
|
+
version: 0.39.0
|
167
167
|
type: :development
|
168
168
|
prerelease: false
|
169
169
|
version_requirements: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.
|
173
|
+
version: 0.39.0
|
174
174
|
- !ruby/object:Gem::Dependency
|
175
175
|
name: yard
|
176
176
|
requirement: !ruby/object:Gem::Requirement
|
@@ -300,7 +300,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
300
300
|
version: '0'
|
301
301
|
requirements: []
|
302
302
|
rubyforge_project:
|
303
|
-
rubygems_version: 2.
|
303
|
+
rubygems_version: 2.6.0
|
304
304
|
signing_key:
|
305
305
|
specification_version: 4
|
306
306
|
summary: Manage application specific business logic.
|