params_ready 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
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