params_ready_rails5 0.0.7

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 (86) hide show
  1. checksums.yaml +7 -0
  2. data/lib/arel/cte_name.rb +20 -0
  3. data/lib/params_ready/builder.rb +161 -0
  4. data/lib/params_ready/error.rb +31 -0
  5. data/lib/params_ready/extensions/class_reader_writer.rb +33 -0
  6. data/lib/params_ready/extensions/collection.rb +43 -0
  7. data/lib/params_ready/extensions/delegation.rb +25 -0
  8. data/lib/params_ready/extensions/finalizer.rb +26 -0
  9. data/lib/params_ready/extensions/freezer.rb +49 -0
  10. data/lib/params_ready/extensions/hash.rb +46 -0
  11. data/lib/params_ready/extensions/late_init.rb +38 -0
  12. data/lib/params_ready/extensions/registry.rb +44 -0
  13. data/lib/params_ready/extensions/undefined.rb +23 -0
  14. data/lib/params_ready/format.rb +132 -0
  15. data/lib/params_ready/helpers/arel_builder.rb +68 -0
  16. data/lib/params_ready/helpers/callable.rb +14 -0
  17. data/lib/params_ready/helpers/conditional_block.rb +31 -0
  18. data/lib/params_ready/helpers/find_in_hash.rb +22 -0
  19. data/lib/params_ready/helpers/interface_definer.rb +48 -0
  20. data/lib/params_ready/helpers/key_map.rb +176 -0
  21. data/lib/params_ready/helpers/memo.rb +41 -0
  22. data/lib/params_ready/helpers/options.rb +107 -0
  23. data/lib/params_ready/helpers/parameter_definer_class_methods.rb +39 -0
  24. data/lib/params_ready/helpers/parameter_storage_class_methods.rb +63 -0
  25. data/lib/params_ready/helpers/parameter_user_class_methods.rb +35 -0
  26. data/lib/params_ready/helpers/relation_builder_wrapper.rb +35 -0
  27. data/lib/params_ready/helpers/rule.rb +76 -0
  28. data/lib/params_ready/helpers/storage.rb +30 -0
  29. data/lib/params_ready/helpers/usage_rule.rb +36 -0
  30. data/lib/params_ready/input_context.rb +31 -0
  31. data/lib/params_ready/intent.rb +70 -0
  32. data/lib/params_ready/marshaller/array_marshallers.rb +132 -0
  33. data/lib/params_ready/marshaller/builder_module.rb +9 -0
  34. data/lib/params_ready/marshaller/collection.rb +165 -0
  35. data/lib/params_ready/marshaller/definition_module.rb +63 -0
  36. data/lib/params_ready/marshaller/enum_set_marshallers.rb +96 -0
  37. data/lib/params_ready/marshaller/parameter_module.rb +11 -0
  38. data/lib/params_ready/marshaller/polymorph_marshallers.rb +67 -0
  39. data/lib/params_ready/marshaller/struct_marshallers.rb +100 -0
  40. data/lib/params_ready/marshaller/tuple_marshallers.rb +103 -0
  41. data/lib/params_ready/ordering/column.rb +60 -0
  42. data/lib/params_ready/ordering/ordering.rb +276 -0
  43. data/lib/params_ready/output_parameters.rb +138 -0
  44. data/lib/params_ready/pagination/abstract_pagination.rb +18 -0
  45. data/lib/params_ready/pagination/cursor.rb +171 -0
  46. data/lib/params_ready/pagination/direction.rb +148 -0
  47. data/lib/params_ready/pagination/keyset_pagination.rb +254 -0
  48. data/lib/params_ready/pagination/keysets.rb +70 -0
  49. data/lib/params_ready/pagination/nulls.rb +31 -0
  50. data/lib/params_ready/pagination/offset_pagination.rb +130 -0
  51. data/lib/params_ready/pagination/tendency.rb +28 -0
  52. data/lib/params_ready/parameter/abstract_struct_parameter.rb +204 -0
  53. data/lib/params_ready/parameter/array_parameter.rb +197 -0
  54. data/lib/params_ready/parameter/definition.rb +272 -0
  55. data/lib/params_ready/parameter/enum_set_parameter.rb +102 -0
  56. data/lib/params_ready/parameter/parameter.rb +475 -0
  57. data/lib/params_ready/parameter/polymorph_parameter.rb +172 -0
  58. data/lib/params_ready/parameter/state.rb +132 -0
  59. data/lib/params_ready/parameter/struct_parameter.rb +64 -0
  60. data/lib/params_ready/parameter/tuple_parameter.rb +152 -0
  61. data/lib/params_ready/parameter/value_parameter.rb +186 -0
  62. data/lib/params_ready/parameter_definer.rb +14 -0
  63. data/lib/params_ready/parameter_user.rb +35 -0
  64. data/lib/params_ready/query/array_grouping.rb +68 -0
  65. data/lib/params_ready/query/custom_predicate.rb +102 -0
  66. data/lib/params_ready/query/exists_predicate.rb +103 -0
  67. data/lib/params_ready/query/fixed_operator_predicate.rb +77 -0
  68. data/lib/params_ready/query/grouping.rb +177 -0
  69. data/lib/params_ready/query/join_clause.rb +87 -0
  70. data/lib/params_ready/query/nullness_predicate.rb +71 -0
  71. data/lib/params_ready/query/polymorph_predicate.rb +77 -0
  72. data/lib/params_ready/query/predicate.rb +203 -0
  73. data/lib/params_ready/query/predicate_operator.rb +132 -0
  74. data/lib/params_ready/query/relation.rb +337 -0
  75. data/lib/params_ready/query/structured_grouping.rb +58 -0
  76. data/lib/params_ready/query/variable_operator_predicate.rb +125 -0
  77. data/lib/params_ready/query_context.rb +21 -0
  78. data/lib/params_ready/restriction.rb +252 -0
  79. data/lib/params_ready/result.rb +109 -0
  80. data/lib/params_ready/value/coder.rb +210 -0
  81. data/lib/params_ready/value/constraint.rb +198 -0
  82. data/lib/params_ready/value/custom.rb +56 -0
  83. data/lib/params_ready/value/validator.rb +81 -0
  84. data/lib/params_ready/version.rb +7 -0
  85. data/lib/params_ready.rb +28 -0
  86. metadata +227 -0
@@ -0,0 +1,198 @@
1
+ require 'set'
2
+ require_relative '../extensions/undefined'
3
+ require_relative '../extensions/registry'
4
+ require_relative '../error'
5
+
6
+ module ParamsReady
7
+ module Value
8
+
9
+ class Constraint
10
+ class Error < ParamsReadyError; end
11
+
12
+ extend Extensions::Registry
13
+ registry :constraint_types, as: :constraint_type, getter: true
14
+
15
+ def self.register(name)
16
+ Constraint.register_constraint_type(name, self)
17
+ end
18
+
19
+ attr_reader :condition
20
+
21
+ def initialize(cond)
22
+ @condition = cond.freeze
23
+ freeze
24
+ end
25
+
26
+ def clamp?; false; end
27
+
28
+ def self.build(cond, *args, **opts, &block)
29
+ if block.nil?
30
+ new cond, *args, **opts
31
+ else
32
+ new cond, block, *args, **opts
33
+ end
34
+ end
35
+
36
+ def self.instance(cond, *args, **opts)
37
+ case cond
38
+ when Range
39
+ RangeConstraint.new(cond, *args, **opts)
40
+ when Array, Set
41
+ EnumConstraint.new(cond, *args, **opts)
42
+ else
43
+ raise ParamsReadyError, "Unknown constraint type: " + cond.class.name
44
+ end
45
+ end
46
+
47
+ def valid?(input)
48
+ raise ParamsReadyError, 'This is an abstract class'
49
+ end
50
+
51
+ def error_message
52
+ "didn't pass validation"
53
+ end
54
+ end
55
+
56
+ class RangeConstraint < Constraint
57
+ register :range
58
+
59
+ def initialize(cond, *args, **opts)
60
+ raise ParamsReadyError, "Expected Range, got: " + cond.class.name unless cond.is_a?(Range)
61
+ super cond, *args, **opts
62
+ end
63
+
64
+ def valid?(input)
65
+ @condition.include?(input)
66
+ end
67
+
68
+ def error_message
69
+ 'not in range'
70
+ end
71
+
72
+ def clamp(value)
73
+ if value < @condition.min
74
+ @condition.min
75
+ elsif value > @condition.max
76
+ @condition.max
77
+ else
78
+ value
79
+ end
80
+ end
81
+
82
+ def clamp?
83
+ return false if @condition.min.nil? || @condition.max.nil?
84
+
85
+ true
86
+ end
87
+ end
88
+
89
+ class EnumConstraint < Constraint
90
+ register :enum
91
+
92
+ def initialize(cond, *args, **opts)
93
+ raise ParamsReadyError, "Expected Set or Array, got: " + cond.class.name unless
94
+ cond.is_a?(Set) ||
95
+ cond.is_a?(Array)
96
+ super cond, *args, **opts
97
+ end
98
+
99
+ def valid?(input)
100
+ if input.is_a?(String)
101
+ @condition.include?(input) || @condition.include?(input.to_sym)
102
+ else
103
+ @condition.include?(input)
104
+ end
105
+ end
106
+
107
+ def error_message
108
+ 'not in enum'
109
+ end
110
+ end
111
+
112
+ class OperatorConstraint < Constraint
113
+ register :operator
114
+
115
+ OPERATORS = [:=~, :<, :<=, :==, :>=, :>].to_set.freeze
116
+
117
+ def initialize(operator, value, *args, **opts)
118
+ unless OPERATORS.member? operator
119
+ raise ParamsReadyError, "Unsupported operator: #{operator}"
120
+ end
121
+ cond = Condition.instance(operator, value)
122
+ super(cond, *args, **opts)
123
+ end
124
+
125
+ def clamp(value)
126
+ return value if valid?(value)
127
+
128
+ @condition.clamp(value)
129
+ end
130
+
131
+ def clamp?
132
+ @condition.clamp?
133
+ end
134
+
135
+ def valid?(input)
136
+ @condition.true?(input)
137
+ end
138
+
139
+ def error_message
140
+ @condition.error_message
141
+ end
142
+
143
+ module ClampingCondition
144
+ CLAMPING_OPERATORS = %i(<= == >=).to_set.freeze
145
+ def clamp(_)
146
+ case @operator
147
+ when :<=, :>=, :==
148
+ get_value
149
+ else
150
+ raise "Unexpected operator: #{@operator}"
151
+ end
152
+ end
153
+
154
+ def clamp?
155
+ CLAMPING_OPERATORS.member? @operator
156
+ end
157
+ end
158
+
159
+ class Condition
160
+ include ClampingCondition
161
+
162
+ def initialize(operator, value)
163
+ @operator = operator
164
+ @value = value
165
+ end
166
+
167
+ def true?(input)
168
+ input.send(@operator, get_value)
169
+ end
170
+
171
+ def error_message
172
+ "not #{@operator} #{get_value}"
173
+ end
174
+
175
+ def self.instance(operator, value)
176
+ case value
177
+ when Method, Proc
178
+ DynamicCondition.new operator, value
179
+ else
180
+ StaticCondition.new operator, value
181
+ end
182
+ end
183
+ end
184
+
185
+ class StaticCondition < Condition
186
+ def get_value
187
+ @value
188
+ end
189
+ end
190
+
191
+ class DynamicCondition < Condition
192
+ def get_value
193
+ @value.call
194
+ end
195
+ end
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,56 @@
1
+ require_relative '../parameter/value_parameter'
2
+
3
+ module ParamsReady
4
+ module Value
5
+ class DowncaseStringCoder < StringCoder
6
+ def self.coerce(value, context)
7
+ string = super
8
+ string.downcase
9
+ end
10
+ end
11
+
12
+ Parameter::ValueParameterBuilder.register_coder :downcase_string, DowncaseStringCoder
13
+
14
+ class FormattedDecimalCoder < DecimalCoder
15
+ EU = /^(\d{1,3}( \d{3})+|\d+),\d{1,2}$/.freeze
16
+ US = /^(\d{1,3}(,\d{3})+).\d{1,2}$/.freeze
17
+
18
+ def self.coerce(value, context)
19
+ value = if value.is_a? String
20
+ stripped = value.strip
21
+ if EU.match? stripped
22
+ stripped.gsub(/[ ,]/, ' ' => '', ',' => '.')
23
+ elsif US.match? stripped
24
+ stripped.delete(',')
25
+ else
26
+ stripped
27
+ end
28
+ else
29
+ value
30
+ end
31
+ super
32
+ end
33
+ end
34
+
35
+ Parameter::ValueParameterBuilder.register_coder :formatted_decimal, FormattedDecimalCoder
36
+
37
+ class CheckboxBooleanCoder < BooleanCoder
38
+ def self.format(value, format)
39
+ return value unless format.marshal? :boolean
40
+ return value ? 'true' : nil
41
+ end
42
+ end
43
+
44
+ Parameter::ValueParameterBuilder.register_coder :checkbox_boolean, CheckboxBooleanCoder
45
+
46
+ class NonEmptyStringCoder < StringCoder
47
+ def self.coerce(value, _)
48
+ return Extensions::Undefined if value.nil? || value.empty?
49
+
50
+ super
51
+ end
52
+ end
53
+
54
+ Parameter::ValueParameterBuilder.register_coder :non_empty_string, NonEmptyStringCoder
55
+ end
56
+ end
@@ -0,0 +1,81 @@
1
+ require_relative 'constraint'
2
+
3
+ module ParamsReady
4
+ module Value
5
+ class Validator
6
+ attr_reader :constraint, :strategy
7
+
8
+ def self.instance(name_or_constraint, *args, strategy: :raise, **opts, &block)
9
+ constraint = case name_or_constraint
10
+ when Value::Constraint
11
+ name_or_constraint
12
+ when Symbol
13
+ type = Value::Constraint.constraint_type(name_or_constraint)
14
+ type.build(*args, **opts, &block)
15
+ else
16
+ valid, missing_method = valid_constraint?(name_or_constraint, strategy)
17
+ on_constraint_invalid(missing_method) unless valid
18
+ name_or_constraint
19
+ end
20
+ new(constraint, strategy: strategy)
21
+ end
22
+
23
+ def self.on_constraint_invalid(missing_method)
24
+ raise ParamsReadyError, "Not a valid constraint, '#{missing_method}' unimplemented"
25
+ end
26
+
27
+ def self.valid_constraint?(constraint, strategy)
28
+ return [false, 'valid?'] unless constraint.respond_to?(:valid?)
29
+ return [false, 'error_message'] unless constraint.respond_to?(:error_message)
30
+ return [true, nil] unless strategy == :clamp
31
+ return [false, 'clamp'] unless constraint.respond_to? :clamp
32
+
33
+ [true, nil]
34
+ end
35
+
36
+ def initialize(constraint, strategy: :raise)
37
+ @constraint = constraint
38
+ @strategy = check_strategy(constraint, strategy)
39
+ freeze
40
+ end
41
+
42
+ def check_strategy(constraint, strategy)
43
+ case strategy.to_sym
44
+ when :raise, :undefine
45
+ strategy.to_sym
46
+ when :clamp
47
+ if constraint.respond_to? :clamp?
48
+ raise ParamsReadyError, 'Clamping not applicable' unless constraint.clamp?
49
+ end
50
+ strategy.to_sym
51
+ else
52
+ raise ParamsReadyError, "Unexpected constraint strategy #{strategy}"
53
+ end
54
+ end
55
+
56
+ def validate(value, result)
57
+ return [value, result] if Extensions::Undefined.value_indefinite?(value)
58
+
59
+ if constraint.valid? value
60
+ [value, result]
61
+ else
62
+ case strategy
63
+ when :raise
64
+ e = Constraint::Error.new("value '#{value}' #{constraint.error_message}")
65
+ if result.nil?
66
+ raise e
67
+ else
68
+ result.error! e
69
+ end
70
+ [Extensions::Undefined, result]
71
+ when :clamp
72
+ [constraint.clamp(value), result]
73
+ else
74
+ [Extensions::Undefined, result]
75
+ end
76
+ end
77
+ end
78
+
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,7 @@
1
+ module ParamsReady
2
+ VERSION = '0.0.7'.freeze
3
+
4
+ def self.gem_version
5
+ ::Gem::Version.new(VERSION)
6
+ end
7
+ end
@@ -0,0 +1,28 @@
1
+ require 'ruby2_keywords'
2
+ require 'arel'
3
+
4
+ require_relative 'params_ready/parameter/array_parameter'
5
+ require_relative 'params_ready/parameter/struct_parameter'
6
+ require_relative 'params_ready/parameter/enum_set_parameter'
7
+ require_relative 'params_ready/parameter/polymorph_parameter'
8
+ require_relative 'params_ready/parameter/tuple_parameter'
9
+ require_relative 'params_ready/parameter/value_parameter'
10
+
11
+ require_relative 'params_ready/value/custom'
12
+ require_relative 'params_ready/value/validator'
13
+
14
+ require_relative 'params_ready/input_context'
15
+ require_relative 'params_ready/output_parameters'
16
+ require_relative 'params_ready/parameter_definer'
17
+ require_relative 'params_ready/parameter_user'
18
+ require_relative 'params_ready/query_context'
19
+
20
+ require_relative 'params_ready/query/array_grouping'
21
+ require_relative 'params_ready/query/custom_predicate'
22
+ require_relative 'params_ready/query/exists_predicate'
23
+ require_relative 'params_ready/query/fixed_operator_predicate'
24
+ require_relative 'params_ready/query/nullness_predicate'
25
+ require_relative 'params_ready/query/polymorph_predicate'
26
+ require_relative 'params_ready/query/relation'
27
+ require_relative 'params_ready/query/variable_operator_predicate'
28
+ require_relative 'params_ready/version'
metadata ADDED
@@ -0,0 +1,227 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: params_ready_rails5
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.7
5
+ platform: ruby
6
+ authors:
7
+ - Tomas Milsimer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-03-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ruby2_keywords
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activerecord
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: byebug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '11'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '11'
55
+ - !ruby/object:Gem::Dependency
56
+ name: memory_profiler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-rg
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.20'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.20'
97
+ - !ruby/object:Gem::Dependency
98
+ name: sqlite3
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1'
111
+ description: "Create well defined controller interfaces. Sanitize, coerce and constrain
112
+ \nincoming parameters to safely populate data models, hold session state in URI
113
+ variables \nacross different locations, build SQL queries, apply ordering and offset/keyset
114
+ pagination.\n"
115
+ email: tomas.milsimer@protonmail.com
116
+ executables: []
117
+ extensions: []
118
+ extra_rdoc_files: []
119
+ files:
120
+ - lib/arel/cte_name.rb
121
+ - lib/params_ready.rb
122
+ - lib/params_ready/builder.rb
123
+ - lib/params_ready/error.rb
124
+ - lib/params_ready/extensions/class_reader_writer.rb
125
+ - lib/params_ready/extensions/collection.rb
126
+ - lib/params_ready/extensions/delegation.rb
127
+ - lib/params_ready/extensions/finalizer.rb
128
+ - lib/params_ready/extensions/freezer.rb
129
+ - lib/params_ready/extensions/hash.rb
130
+ - lib/params_ready/extensions/late_init.rb
131
+ - lib/params_ready/extensions/registry.rb
132
+ - lib/params_ready/extensions/undefined.rb
133
+ - lib/params_ready/format.rb
134
+ - lib/params_ready/helpers/arel_builder.rb
135
+ - lib/params_ready/helpers/callable.rb
136
+ - lib/params_ready/helpers/conditional_block.rb
137
+ - lib/params_ready/helpers/find_in_hash.rb
138
+ - lib/params_ready/helpers/interface_definer.rb
139
+ - lib/params_ready/helpers/key_map.rb
140
+ - lib/params_ready/helpers/memo.rb
141
+ - lib/params_ready/helpers/options.rb
142
+ - lib/params_ready/helpers/parameter_definer_class_methods.rb
143
+ - lib/params_ready/helpers/parameter_storage_class_methods.rb
144
+ - lib/params_ready/helpers/parameter_user_class_methods.rb
145
+ - lib/params_ready/helpers/relation_builder_wrapper.rb
146
+ - lib/params_ready/helpers/rule.rb
147
+ - lib/params_ready/helpers/storage.rb
148
+ - lib/params_ready/helpers/usage_rule.rb
149
+ - lib/params_ready/input_context.rb
150
+ - lib/params_ready/intent.rb
151
+ - lib/params_ready/marshaller/array_marshallers.rb
152
+ - lib/params_ready/marshaller/builder_module.rb
153
+ - lib/params_ready/marshaller/collection.rb
154
+ - lib/params_ready/marshaller/definition_module.rb
155
+ - lib/params_ready/marshaller/enum_set_marshallers.rb
156
+ - lib/params_ready/marshaller/parameter_module.rb
157
+ - lib/params_ready/marshaller/polymorph_marshallers.rb
158
+ - lib/params_ready/marshaller/struct_marshallers.rb
159
+ - lib/params_ready/marshaller/tuple_marshallers.rb
160
+ - lib/params_ready/ordering/column.rb
161
+ - lib/params_ready/ordering/ordering.rb
162
+ - lib/params_ready/output_parameters.rb
163
+ - lib/params_ready/pagination/abstract_pagination.rb
164
+ - lib/params_ready/pagination/cursor.rb
165
+ - lib/params_ready/pagination/direction.rb
166
+ - lib/params_ready/pagination/keyset_pagination.rb
167
+ - lib/params_ready/pagination/keysets.rb
168
+ - lib/params_ready/pagination/nulls.rb
169
+ - lib/params_ready/pagination/offset_pagination.rb
170
+ - lib/params_ready/pagination/tendency.rb
171
+ - lib/params_ready/parameter/abstract_struct_parameter.rb
172
+ - lib/params_ready/parameter/array_parameter.rb
173
+ - lib/params_ready/parameter/definition.rb
174
+ - lib/params_ready/parameter/enum_set_parameter.rb
175
+ - lib/params_ready/parameter/parameter.rb
176
+ - lib/params_ready/parameter/polymorph_parameter.rb
177
+ - lib/params_ready/parameter/state.rb
178
+ - lib/params_ready/parameter/struct_parameter.rb
179
+ - lib/params_ready/parameter/tuple_parameter.rb
180
+ - lib/params_ready/parameter/value_parameter.rb
181
+ - lib/params_ready/parameter_definer.rb
182
+ - lib/params_ready/parameter_user.rb
183
+ - lib/params_ready/query/array_grouping.rb
184
+ - lib/params_ready/query/custom_predicate.rb
185
+ - lib/params_ready/query/exists_predicate.rb
186
+ - lib/params_ready/query/fixed_operator_predicate.rb
187
+ - lib/params_ready/query/grouping.rb
188
+ - lib/params_ready/query/join_clause.rb
189
+ - lib/params_ready/query/nullness_predicate.rb
190
+ - lib/params_ready/query/polymorph_predicate.rb
191
+ - lib/params_ready/query/predicate.rb
192
+ - lib/params_ready/query/predicate_operator.rb
193
+ - lib/params_ready/query/relation.rb
194
+ - lib/params_ready/query/structured_grouping.rb
195
+ - lib/params_ready/query/variable_operator_predicate.rb
196
+ - lib/params_ready/query_context.rb
197
+ - lib/params_ready/restriction.rb
198
+ - lib/params_ready/result.rb
199
+ - lib/params_ready/value/coder.rb
200
+ - lib/params_ready/value/constraint.rb
201
+ - lib/params_ready/value/custom.rb
202
+ - lib/params_ready/value/validator.rb
203
+ - lib/params_ready/version.rb
204
+ homepage: https://github.com/lame-impala/params_ready
205
+ licenses:
206
+ - MIT
207
+ metadata: {}
208
+ post_install_message:
209
+ rdoc_options: []
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubygems_version: 3.1.4
224
+ signing_key:
225
+ specification_version: 4
226
+ summary: Define controller interfaces in Rails
227
+ test_files: []