params_ready 0.0.7 → 0.0.8

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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/lib/params_ready/builder.rb +17 -0
  3. data/lib/params_ready/extensions/delegation.rb +1 -0
  4. data/lib/params_ready/extensions/freezer.rb +2 -0
  5. data/lib/params_ready/extensions/undefined.rb +8 -0
  6. data/lib/params_ready/helpers/arel_builder.rb +96 -35
  7. data/lib/params_ready/helpers/callable.rb +14 -0
  8. data/lib/params_ready/helpers/interface_definer.rb +48 -0
  9. data/lib/params_ready/helpers/memo.rb +0 -1
  10. data/lib/params_ready/helpers/options.rb +77 -9
  11. data/lib/params_ready/helpers/parameter_storage_class_methods.rb +27 -0
  12. data/lib/params_ready/helpers/parameter_user_class_methods.rb +18 -14
  13. data/lib/params_ready/helpers/rule.rb +30 -11
  14. data/lib/params_ready/helpers/usage_rule.rb +21 -3
  15. data/lib/params_ready/marshaller/array_marshallers.rb +4 -3
  16. data/lib/params_ready/marshaller/{hash_set_marshallers.rb → enum_set_marshallers.rb} +5 -5
  17. data/lib/params_ready/marshaller/polymorph_marshallers.rb +2 -2
  18. data/lib/params_ready/marshaller/{hash_marshallers.rb → struct_marshallers.rb} +5 -5
  19. data/lib/params_ready/marshaller/tuple_marshallers.rb +2 -2
  20. data/lib/params_ready/ordering/column.rb +1 -1
  21. data/lib/params_ready/output_parameters.rb +11 -0
  22. data/lib/params_ready/pagination/keyset_pagination.rb +5 -5
  23. data/lib/params_ready/parameter/{abstract_hash_parameter.rb → abstract_struct_parameter.rb} +5 -5
  24. data/lib/params_ready/parameter/array_parameter.rb +2 -2
  25. data/lib/params_ready/parameter/definition.rb +17 -2
  26. data/lib/params_ready/parameter/{hash_set_parameter.rb → enum_set_parameter.rb} +11 -10
  27. data/lib/params_ready/parameter/parameter.rb +25 -11
  28. data/lib/params_ready/parameter/state.rb +4 -4
  29. data/lib/params_ready/parameter/{hash_parameter.rb → struct_parameter.rb} +11 -10
  30. data/lib/params_ready/parameter/tuple_parameter.rb +1 -1
  31. data/lib/params_ready/parameter/value_parameter.rb +1 -1
  32. data/lib/params_ready/parameter_user.rb +7 -15
  33. data/lib/params_ready/query/array_grouping.rb +4 -4
  34. data/lib/params_ready/query/exists_predicate.rb +3 -3
  35. data/lib/params_ready/query/grouping.rb +8 -2
  36. data/lib/params_ready/query/join_clause.rb +91 -28
  37. data/lib/params_ready/query/predicate.rb +3 -3
  38. data/lib/params_ready/query/relation.rb +29 -14
  39. data/lib/params_ready/query/structured_grouping.rb +4 -4
  40. data/lib/params_ready/query/variable_operator_predicate.rb +10 -10
  41. data/lib/params_ready/value/coder.rb +7 -2
  42. data/lib/params_ready/version.rb +7 -0
  43. data/lib/params_ready.rb +3 -11
  44. metadata +10 -7
@@ -1,14 +1,45 @@
1
1
  require_relative '../helpers/arel_builder'
2
+ require_relative '../error'
2
3
 
3
4
  module ParamsReady
4
5
  module Query
5
6
  class Join
7
+ class Builder
8
+ def initialize(&block)
9
+ @block = block
10
+ @statement_builder = nil
11
+ @only_if = nil
12
+ end
13
+
14
+ def build
15
+ instance_eval(&@block)
16
+ @block = nil
17
+ raise ParamsReadyError, 'Join statement must be present' if @statement_builder.nil?
18
+ [@statement_builder.build, @only_if]
19
+ end
20
+
21
+ def on(expression, arel_table: nil)
22
+ @statement_builder ||= JoinStatement::Builder.new
23
+ @statement_builder.on(expression, arel_table: arel_table)
24
+ end
25
+
26
+ def only_if(&block)
27
+ @only_if = block
28
+ nil
29
+ end
30
+ end
31
+
6
32
  attr_reader :arel_table, :statement, :type
7
33
 
8
- def initialize(table, type, &block)
9
- @arel_table = table
34
+ def initialize(table, type, table_alias: nil, &block)
35
+ @arel_table = Helpers::ArelBuilder::Table.instance(table, table_alias: table_alias)
10
36
  @type = arel_type(type)
11
- @statement = JoinStatement.new(&block)
37
+ @statement, @only_if = Builder.new(&block).build
38
+ freeze
39
+ end
40
+
41
+ def arel_table(context, parameter)
42
+ @arel_table.to_arel(context, parameter)
12
43
  end
13
44
 
14
45
  def arel_type(type)
@@ -19,32 +50,51 @@ module ParamsReady
19
50
  end
20
51
  end
21
52
 
22
- def to_arel(base_table, context, parameter)
23
- join_statement = @statement.to_arel(base_table, @arel_table, context, parameter)
24
- base_table.join(@arel_table, @type).on(join_statement)
53
+ def to_arel(joined_table, base_table, context, parameter)
54
+ return joined_table unless eligible?(context, parameter)
55
+
56
+ arel_table = arel_table(context, parameter)
57
+ join_statement = @statement.to_arel(base_table, arel_table, context, parameter)
58
+ joined_table.join(arel_table, @type).on(join_statement)
59
+ end
60
+
61
+ def eligible?(context, parameter)
62
+ return true if @only_if.nil?
63
+
64
+ @only_if.call(context, parameter)
25
65
  end
26
66
  end
27
67
 
28
68
  class JoinStatement
29
- def initialize(on: nil, eq: nil, &block)
30
- @conditions = []
31
- if on
32
- condition = on(on)
33
- if eq
34
- condition.eq(eq)
69
+ class Builder
70
+ def initialize(on: nil, eq: nil, &block)
71
+ @condition_builders = []
72
+ if on.nil?
73
+ raise ParamsReadyError, 'Parameter :eq unexpected' unless eq.nil?
74
+ else
75
+ condition = on(on)
76
+ condition.eq(eq) unless eq.nil?
35
77
  end
36
- else
37
- raise ParamsReadyError('Parameter :eq unexpected') unless eq.nil?
78
+ @block = block
38
79
  end
39
80
 
40
- instance_eval(&block) unless block.nil?
41
- raise ParamsReadyError, "Join clause is empty" if @conditions.empty?
81
+ def on(expression, arel_table: nil)
82
+ condition = JoinCondition::Builder.new(expression, arel_table: arel_table)
83
+ @condition_builders << condition
84
+ condition
85
+ end
86
+
87
+ def build
88
+ instance_eval(&@block) unless @block.nil?
89
+ JoinStatement.new(@condition_builders.map(&:build))
90
+ end
42
91
  end
43
92
 
44
- def on(expression, arel_table: nil)
45
- condition = JoinCondition.new(expression, arel_table: arel_table)
46
- @conditions << condition
47
- condition
93
+ def initialize(conditions)
94
+ @conditions = conditions.freeze
95
+ raise ParamsReadyError, "Join clause is empty" if @conditions.empty?
96
+
97
+ freeze
48
98
  end
49
99
 
50
100
  def to_arel(base_table, join_table, context, parameter)
@@ -58,16 +108,29 @@ module ParamsReady
58
108
  end
59
109
 
60
110
  class JoinCondition
61
- def initialize(expression, arel_table: nil)
62
- @on = Helpers::ArelBuilder.instance(expression, arel_table: arel_table)
63
- @to = nil
64
- @op = nil
111
+ class Builder
112
+ def initialize(expression, arel_table: nil)
113
+ @on = Helpers::ArelBuilder::Attribute.instance(expression, arel_table: arel_table)
114
+ @op = nil
115
+ @to = nil
116
+ end
117
+
118
+ def eq(expression, arel_table: nil)
119
+ raise ParamsReadyError, "Operator already set" unless @op.nil?
120
+ @op = :eq
121
+ @to = Helpers::ArelBuilder::Attribute.instance(expression, arel_table: arel_table)
122
+ end
123
+
124
+ def build
125
+ JoinCondition.new(@on, @op, @to)
126
+ end
65
127
  end
66
128
 
67
- def eq(expression, arel_table: nil)
68
- raise ParamsReadyError, "Operator already set" unless @op.nil?
69
- @op = :eq
70
- @to = Helpers::ArelBuilder.instance(expression, arel_table: arel_table)
129
+ def initialize(on, op, to)
130
+ @on = on
131
+ @op = op
132
+ @to = to
133
+ freeze
71
134
  end
72
135
 
73
136
  def to_arel(base_table, join_table, context, parameter)
@@ -1,6 +1,6 @@
1
1
  require_relative '../extensions/registry'
2
2
  require_relative '../parameter/array_parameter'
3
- require_relative '../parameter/hash_set_parameter'
3
+ require_relative '../parameter/enum_set_parameter'
4
4
  require_relative '../helpers/arel_builder'
5
5
 
6
6
  module ParamsReady
@@ -45,7 +45,7 @@ module ParamsReady
45
45
  registry :types, as: :type, getter: true
46
46
  register_type :value, Parameter::ValueParameterBuilder
47
47
  register_type :array, Parameter::ArrayParameterBuilder
48
- register_type :hash_set, Parameter::HashSetParameterBuilder
48
+ register_type :enum_set, Parameter::EnumSetParameterBuilder
49
49
  end
50
50
 
51
51
  class AbstractPredicateDefinition < Parameter::AbstractDefinition
@@ -70,7 +70,7 @@ module ParamsReady
70
70
  end
71
71
 
72
72
  def build_select_expression(arel_table, context)
73
- arel_builder = Helpers::ArelBuilder.instance(select_expression, arel_table: @arel_table)
73
+ arel_builder = Helpers::ArelBuilder::Attribute.instance(select_expression, arel_table: @arel_table)
74
74
  arel = arel_builder.to_arel(arel_table, context, self)
75
75
 
76
76
  arel
@@ -136,7 +136,7 @@ module ParamsReady
136
136
 
137
137
  def perform_count(scope: nil, context: Restriction.blanket_permission)
138
138
  scope ||= definition.model_class if definition.model_class_defined?
139
- group = predicate_group(scope.arel_table, context: context)
139
+ group = to_query_if_eligible(scope.arel_table, context: context)
140
140
  relation = scope.where(group)
141
141
  relation = perform_joins(relation, context)
142
142
  relation.count
@@ -144,7 +144,7 @@ module ParamsReady
144
144
 
145
145
  def keysets(limit, direction, keyset, scope: nil, context: Restriction.blanket_permission, &block)
146
146
  model_class = scope || definition.model_class
147
- group = predicate_group(model_class.arel_table, context: context)
147
+ group = to_query_if_eligible(model_class.arel_table, context: context)
148
148
  relation = model_class.where(group)
149
149
  relation = perform_joins(relation, context)
150
150
 
@@ -156,7 +156,7 @@ module ParamsReady
156
156
 
157
157
  def build_relation(scope: nil, include: [], context: Restriction.blanket_permission, paginate: true)
158
158
  model_class = scope || definition.model_class
159
- group = predicate_group(model_class.arel_table, context: context)
159
+ group = to_query_if_eligible(model_class.arel_table, context: context)
160
160
  relation = model_class.where(group)
161
161
  relation = relation.includes(*include) unless include.empty?
162
162
  relation = perform_joins(relation, context)
@@ -165,9 +165,12 @@ module ParamsReady
165
165
  end
166
166
 
167
167
  def perform_joins(relation, context)
168
- return relation if definition.joins.empty?
168
+ eligible_joins = definition.joins.select do |join|
169
+ join.eligible?(context, self)
170
+ end
171
+ return relation if eligible_joins.empty?
169
172
 
170
- sql = joined_tables(relation.arel_table, context).join_sources.map(&:to_sql).join(' ')
173
+ sql = join_tables(eligible_joins, relation.arel_table, context).join_sources.map(&:to_sql).join(' ')
171
174
  relation.joins(sql)
172
175
  end
173
176
 
@@ -176,7 +179,7 @@ module ParamsReady
176
179
 
177
180
  arel_table = joined_tables(model_class.arel_table, context)
178
181
 
179
- group = self.predicate_group(model_class.arel_table, context: context)
182
+ group = to_query_if_eligible(model_class.arel_table, context: context)
180
183
 
181
184
  query = if group.nil?
182
185
  arel_table
@@ -200,7 +203,7 @@ module ParamsReady
200
203
  def build_query(model_class, context)
201
204
  arel_table = arel_table(model_class)
202
205
 
203
- group = self.predicate_group(arel_table, context: context)
206
+ group = to_query_if_eligible(arel_table, context: context)
204
207
  joined = joined_tables(arel_table, context)
205
208
 
206
209
  query = if group.nil?
@@ -212,6 +215,12 @@ module ParamsReady
212
215
  [arel_table, query]
213
216
  end
214
217
 
218
+ def to_query_if_eligible(arel_table, context:)
219
+ return if respond_to?(:to_query?) && !to_query?(arel_table, context)
220
+
221
+ predicate_group(arel_table, context: context)
222
+ end
223
+
215
224
  def order_if_applicable(arel_table, context)
216
225
  if child_is_definite?(:ordering) && (context.permitted?(ordering) || ordering.required?)
217
226
  ordering = self.ordering.to_arel(arel_table, context: context)
@@ -248,16 +257,23 @@ module ParamsReady
248
257
  query
249
258
  end
250
259
 
251
- def joined_tables(proper_table, context)
252
- definition.joins.reduce(proper_table) do |table, join|
253
- join.to_arel(table, context, self)
260
+ def joined_tables(base_table, context)
261
+ join_tables(definition.joins, base_table, context)
262
+ end
263
+
264
+ def join_tables(joins, base_table, context)
265
+ joins.reduce(base_table) do |joined_table, join|
266
+ join = join.to_arel(joined_table, base_table, context, self)
267
+ next joined_table if join.nil?
268
+
269
+ join
254
270
  end
255
271
  end
256
272
  end
257
273
 
258
274
  class RelationParameterBuilder < Builder
259
275
  include GroupingLike
260
- include Parameter::AbstractHashParameterBuilder::HashLike
276
+ include Parameter::AbstractStructParameterBuilder::StructLike
261
277
  include HavingModel
262
278
 
263
279
  def self.instance(name, altn: nil)
@@ -288,9 +304,8 @@ module ParamsReady
288
304
  add ordering
289
305
  end
290
306
 
291
- def join_table(arel_table, type, &block)
292
- join = Join.new arel_table, type, &block
293
- join.freeze
307
+ def join_table(arel_table, type, table_alias: nil, &block)
308
+ join = Join.new arel_table, type, table_alias: nil, &block
294
309
  @definition.add_join(join)
295
310
  end
296
311
  end
@@ -1,4 +1,4 @@
1
- require_relative '../parameter/hash_parameter'
1
+ require_relative '../parameter/struct_parameter'
2
2
  require_relative '../parameter/value_parameter'
3
3
  require_relative 'fixed_operator_predicate'
4
4
  require_relative 'nullness_predicate'
@@ -6,7 +6,7 @@ require_relative 'grouping'
6
6
 
7
7
  module ParamsReady
8
8
  module Query
9
- class StructuredGrouping < Parameter::HashParameter
9
+ class StructuredGrouping < Parameter::StructParameter
10
10
  include Parameter::GroupingLike
11
11
  def predicates
12
12
  return [] if is_nil?
@@ -29,7 +29,7 @@ module ParamsReady
29
29
 
30
30
  class StructuredGroupingBuilder < Builder
31
31
  include GroupingLike
32
- include Parameter::AbstractHashParameterBuilder::HashLike
32
+ include Parameter::AbstractStructParameterBuilder::StructLike
33
33
  PredicateRegistry.register_predicate :structured_grouping_predicate, self
34
34
 
35
35
  def self.instance(name, altn: nil)
@@ -37,7 +37,7 @@ module ParamsReady
37
37
  end
38
38
  end
39
39
 
40
- class StructuredGroupingDefinition < Parameter::HashParameterDefinition
40
+ class StructuredGroupingDefinition < Parameter::StructParameterDefinition
41
41
  attr_reader :arel_table, :predicates
42
42
 
43
43
  def initialize(*args, **opts)
@@ -1,5 +1,5 @@
1
1
  require_relative 'predicate'
2
- require_relative '../parameter/hash_parameter'
2
+ require_relative '../parameter/struct_parameter'
3
3
  require_relative '../parameter/value_parameter'
4
4
  require_relative '../value/validator'
5
5
  require_relative 'predicate_operator'
@@ -12,7 +12,7 @@ module ParamsReady
12
12
 
13
13
  def initialize(definition)
14
14
  super definition
15
- @data = definition.hash_parameter.create
15
+ @data = definition.struct_parameter.create
16
16
  end
17
17
 
18
18
  def build_query(select_expression, context: nil)
@@ -64,7 +64,7 @@ module ParamsReady
64
64
  PredicateRegistry.register_predicate :variable_operator_predicate, self
65
65
  include HavingType
66
66
  include HavingAttribute
67
- include DelegatingBuilder[:hash_parameter_builder]
67
+ include DelegatingBuilder[:struct_parameter_builder]
68
68
 
69
69
  def self.instance(name, altn: nil, attr: nil)
70
70
  new VariableOperatorPredicateDefinition.new name, altn: altn, attribute_name: attr
@@ -82,19 +82,19 @@ module ParamsReady
82
82
  class VariableOperatorPredicateDefinition < AbstractPredicateDefinition
83
83
  include HavingAttribute
84
84
 
85
- attr_reader :hash_parameter_builder
86
- attr_reader :hash_parameter
85
+ attr_reader :struct_parameter_builder
86
+ attr_reader :struct_parameter
87
87
 
88
88
  def initialize(*args, attribute_name: nil, **opts)
89
89
  super *args, **opts
90
90
  @attribute_name = attribute_name
91
- @hash_parameter_builder = Builder.builder(:hash).instance(name, altn: altn)
91
+ @struct_parameter_builder = Builder.builder(:struct).instance(name, altn: altn)
92
92
  @operator_parameter_builder = Builder.builder(:predicate_operator).instance(:operator, altn: :op)
93
93
  end
94
94
 
95
95
  def set_type(type)
96
96
  @type = type
97
- @hash_parameter_builder.add @type.finish
97
+ @struct_parameter_builder.add @type.finish
98
98
  end
99
99
 
100
100
  def set_operators(array, &block)
@@ -107,12 +107,12 @@ module ParamsReady
107
107
  constrain :enum, operators
108
108
  end
109
109
  @operator_parameter_builder.include(&block) unless block.nil?
110
- @hash_parameter_builder.add @operator_parameter_builder.build
110
+ @struct_parameter_builder.add @operator_parameter_builder.build
111
111
  end
112
112
 
113
113
  def finish
114
- @hash_parameter = @hash_parameter_builder.build
115
- @hash_parameter_builder = nil
114
+ @struct_parameter = @struct_parameter_builder.build
115
+ @struct_parameter_builder = nil
116
116
  @operator_parameter_builder = nil
117
117
  @type = nil
118
118
 
@@ -53,10 +53,13 @@ module ParamsReady
53
53
  def strict_default?
54
54
  self.class.strict_default?
55
55
  end
56
+
57
+ def value_class_name
58
+ self.class.value_class_name
59
+ end
56
60
  end
57
61
  end
58
62
 
59
-
60
63
  class GenericCoder
61
64
  extend Extensions::LateInit
62
65
  extend Extensions::Finalizer
@@ -97,7 +100,9 @@ module ParamsReady
97
100
 
98
101
  def self.coerce(input, _)
99
102
  return nil if input.nil? || input == ''
100
- Integer(input)
103
+
104
+ base = 10 if input.is_a? String
105
+ Integer(input, base)
101
106
  end
102
107
 
103
108
  def self.format(value, format)
@@ -0,0 +1,7 @@
1
+ module ParamsReady
2
+ VERSION = '0.0.8'.freeze
3
+
4
+ def self.gem_version
5
+ ::Gem::Version.new(VERSION)
6
+ end
7
+ end
data/lib/params_ready.rb CHANGED
@@ -2,8 +2,8 @@ require 'ruby2_keywords'
2
2
  require 'arel'
3
3
 
4
4
  require_relative 'params_ready/parameter/array_parameter'
5
- require_relative 'params_ready/parameter/hash_parameter'
6
- require_relative 'params_ready/parameter/hash_set_parameter'
5
+ require_relative 'params_ready/parameter/struct_parameter'
6
+ require_relative 'params_ready/parameter/enum_set_parameter'
7
7
  require_relative 'params_ready/parameter/polymorph_parameter'
8
8
  require_relative 'params_ready/parameter/tuple_parameter'
9
9
  require_relative 'params_ready/parameter/value_parameter'
@@ -25,12 +25,4 @@ require_relative 'params_ready/query/nullness_predicate'
25
25
  require_relative 'params_ready/query/polymorph_predicate'
26
26
  require_relative 'params_ready/query/relation'
27
27
  require_relative 'params_ready/query/variable_operator_predicate'
28
-
29
-
30
- module ParamsReady
31
- VERSION = '0.0.7'.freeze
32
-
33
- def self.gem_version
34
- ::Gem::Version.new(VERSION)
35
- end
36
- end
28
+ require_relative 'params_ready/version'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: params_ready
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Milsimer
@@ -132,8 +132,10 @@ files:
132
132
  - lib/params_ready/extensions/undefined.rb
133
133
  - lib/params_ready/format.rb
134
134
  - lib/params_ready/helpers/arel_builder.rb
135
+ - lib/params_ready/helpers/callable.rb
135
136
  - lib/params_ready/helpers/conditional_block.rb
136
137
  - lib/params_ready/helpers/find_in_hash.rb
138
+ - lib/params_ready/helpers/interface_definer.rb
137
139
  - lib/params_ready/helpers/key_map.rb
138
140
  - lib/params_ready/helpers/memo.rb
139
141
  - lib/params_ready/helpers/options.rb
@@ -150,10 +152,10 @@ files:
150
152
  - lib/params_ready/marshaller/builder_module.rb
151
153
  - lib/params_ready/marshaller/collection.rb
152
154
  - lib/params_ready/marshaller/definition_module.rb
153
- - lib/params_ready/marshaller/hash_marshallers.rb
154
- - lib/params_ready/marshaller/hash_set_marshallers.rb
155
+ - lib/params_ready/marshaller/enum_set_marshallers.rb
155
156
  - lib/params_ready/marshaller/parameter_module.rb
156
157
  - lib/params_ready/marshaller/polymorph_marshallers.rb
158
+ - lib/params_ready/marshaller/struct_marshallers.rb
157
159
  - lib/params_ready/marshaller/tuple_marshallers.rb
158
160
  - lib/params_ready/ordering/column.rb
159
161
  - lib/params_ready/ordering/ordering.rb
@@ -166,14 +168,14 @@ files:
166
168
  - lib/params_ready/pagination/nulls.rb
167
169
  - lib/params_ready/pagination/offset_pagination.rb
168
170
  - lib/params_ready/pagination/tendency.rb
169
- - lib/params_ready/parameter/abstract_hash_parameter.rb
171
+ - lib/params_ready/parameter/abstract_struct_parameter.rb
170
172
  - lib/params_ready/parameter/array_parameter.rb
171
173
  - lib/params_ready/parameter/definition.rb
172
- - lib/params_ready/parameter/hash_parameter.rb
173
- - lib/params_ready/parameter/hash_set_parameter.rb
174
+ - lib/params_ready/parameter/enum_set_parameter.rb
174
175
  - lib/params_ready/parameter/parameter.rb
175
176
  - lib/params_ready/parameter/polymorph_parameter.rb
176
177
  - lib/params_ready/parameter/state.rb
178
+ - lib/params_ready/parameter/struct_parameter.rb
177
179
  - lib/params_ready/parameter/tuple_parameter.rb
178
180
  - lib/params_ready/parameter/value_parameter.rb
179
181
  - lib/params_ready/parameter_definer.rb
@@ -198,6 +200,7 @@ files:
198
200
  - lib/params_ready/value/constraint.rb
199
201
  - lib/params_ready/value/custom.rb
200
202
  - lib/params_ready/value/validator.rb
203
+ - lib/params_ready/version.rb
201
204
  homepage: https://github.com/lame-impala/params_ready
202
205
  licenses:
203
206
  - MIT
@@ -217,7 +220,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
220
  - !ruby/object:Gem::Version
218
221
  version: '0'
219
222
  requirements: []
220
- rubygems_version: 3.0.3
223
+ rubygems_version: 3.1.4
221
224
  signing_key:
222
225
  specification_version: 4
223
226
  summary: Define controller interfaces in Rails