typed-parameter 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/typed_parameter.rb +1 -1
- data/lib/typed_parameter/constraints.rb +22 -0
- data/lib/typed_parameter/constraints/{datetime_constraint.rb → date_time_constraint.rb} +0 -0
- data/lib/typed_parameter/permit_field_generator.rb +8 -8
- data/lib/typed_parameter/swagger/types.rb +1 -1
- data/lib/typed_parameter/swagger/types/{datetime_type.rb → date_time_type.rb} +0 -0
- data/lib/typed_parameter/type_constraint.rb +6 -6
- data/lib/typed_parameter/version.rb +1 -1
- data/typed_parameter.gemspec +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27016542e3178c6385e4fdfe27f3520f6f37f5afc49572e04f701a0b261eba92
|
4
|
+
data.tar.gz: 991f39290e89d92ede9ae33df068712f3e90fc545e4282ccd7cf5e0bf82fdc4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 557509df857bfc89d385cabce59a11296fc0ce54751d9060f3da267fc72bd77b5ff4a98e65c488127d83fe0cbe01b2aa18b723325da36819657f5f0615ea4867
|
7
|
+
data.tar.gz: 676c8fc68a53c6923407bf104cf54a1825d27db20b40377f4f0c2d0800fe5910843c6e775c6cea5b862c30d92b50faf0656e4631dbe1164981a3f957d2c9bfa0
|
data/lib/typed_parameter.rb
CHANGED
@@ -5,3 +5,25 @@ require 'typed_parameter/constraints/string_constraint'
|
|
5
5
|
require 'typed_parameter/constraints/date_constraint'
|
6
6
|
require 'typed_parameter/constraints/datetime_constraint'
|
7
7
|
require 'typed_parameter/constraints/boolean_constraint'
|
8
|
+
|
9
|
+
module TypedParameter
|
10
|
+
module Constraints
|
11
|
+
class << self
|
12
|
+
def register(key, constraint)
|
13
|
+
@constraints ||= {}
|
14
|
+
@constraints[key] = constraint
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(name)
|
18
|
+
@constraints[name].freeze
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
TypedParameter::Constraints.register :Integer, TypedParameter::Constraints::IntegerConstraint
|
25
|
+
TypedParameter::Constraints.register :String, TypedParameter::Constraints::StringConstraint
|
26
|
+
TypedParameter::Constraints.register :Float, TypedParameter::Constraints::FloatConstraint
|
27
|
+
TypedParameter::Constraints.register :Date, TypedParameter::Constraints::DateConstraint
|
28
|
+
TypedParameter::Constraints.register :DateTime, TypedParameter::Constraints::DateTimeConstraint
|
29
|
+
TypedParameter::Constraints.register :Boolean, TypedParameter::Constraints::BooleanConstraint
|
File without changes
|
@@ -1,20 +1,20 @@
|
|
1
1
|
module TypedParameter
|
2
2
|
module PermitFieldGenerator
|
3
3
|
class << self
|
4
|
-
BASE_TYPES = TypedParameter::ParameterTypes.types
|
5
|
-
|
6
4
|
def generate(name, type)
|
7
|
-
|
5
|
+
type_class = [type].flatten.first
|
8
6
|
|
9
|
-
props =
|
10
|
-
|
7
|
+
props = if type.is_a? Array
|
8
|
+
type_class.in? TypedParameter::ParameterTypes.types ? [] : generate_properties(type_class)
|
9
|
+
else
|
10
|
+
generate_properties(type_class)
|
11
|
+
end
|
11
12
|
|
12
|
-
[[name, props]].to_h
|
13
|
+
props ? [[name, props]].to_h : name
|
13
14
|
end
|
14
15
|
|
15
16
|
def generate_properties(type)
|
16
|
-
return if type.in?
|
17
|
-
return generate_properties(type[0]) if type.is_a? Array
|
17
|
+
return if type.in? TypedParameter::ParameterTypes.types
|
18
18
|
return type.keys if type.is_a? Hash
|
19
19
|
|
20
20
|
type.fields
|
@@ -3,5 +3,5 @@ require 'typed_parameter/swagger/types/integer_type'
|
|
3
3
|
require 'typed_parameter/swagger/types/float_type'
|
4
4
|
require 'typed_parameter/swagger/types/string_type'
|
5
5
|
require 'typed_parameter/swagger/types/date_type'
|
6
|
-
require 'typed_parameter/swagger/types/
|
6
|
+
require 'typed_parameter/swagger/types/date_time_type'
|
7
7
|
require 'typed_parameter/swagger/types/boolean_type'
|
File without changes
|
@@ -3,19 +3,19 @@ module TypedParameter
|
|
3
3
|
class << self
|
4
4
|
def value(type, value)
|
5
5
|
type_class = [type].flatten.first
|
6
|
-
array_type = type.is_a?(Array)
|
7
|
-
parameter_type = type_class < TypedParameter::Base
|
8
6
|
|
9
|
-
if
|
10
|
-
|
7
|
+
if type_class < TypedParameter::Base
|
8
|
+
type.is_a?(Array) ? parameter_array(type_class, value) : type.permit(value)
|
11
9
|
else
|
12
|
-
constraint =
|
10
|
+
constraint = TypedParameter::Constraints.get type_class.name.to_sym
|
13
11
|
constraint ||= TypedParameter::Constraints::StringConstraint # Default
|
14
12
|
|
15
|
-
|
13
|
+
type.is_a?(Array) ? constraint_array(constraint, value) : constraint.value(value)
|
16
14
|
end
|
17
15
|
end
|
18
16
|
|
17
|
+
private
|
18
|
+
|
19
19
|
def parameter_array(parameter_class, values)
|
20
20
|
values.map { |value| parameter_class.permit(value) }
|
21
21
|
end
|
data/typed_parameter.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typed-parameter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Minwoo Jo
|
@@ -14,16 +14,16 @@ dependencies:
|
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -61,7 +61,7 @@ files:
|
|
61
61
|
- lib/typed_parameter/constraints/base.rb
|
62
62
|
- lib/typed_parameter/constraints/boolean_constraint.rb
|
63
63
|
- lib/typed_parameter/constraints/date_constraint.rb
|
64
|
-
- lib/typed_parameter/constraints/
|
64
|
+
- lib/typed_parameter/constraints/date_time_constraint.rb
|
65
65
|
- lib/typed_parameter/constraints/float_constraint.rb
|
66
66
|
- lib/typed_parameter/constraints/integer_constraint.rb
|
67
67
|
- lib/typed_parameter/constraints/string_constraint.rb
|
@@ -74,8 +74,8 @@ files:
|
|
74
74
|
- lib/typed_parameter/swagger/types.rb
|
75
75
|
- lib/typed_parameter/swagger/types/base.rb
|
76
76
|
- lib/typed_parameter/swagger/types/boolean_type.rb
|
77
|
+
- lib/typed_parameter/swagger/types/date_time_type.rb
|
77
78
|
- lib/typed_parameter/swagger/types/date_type.rb
|
78
|
-
- lib/typed_parameter/swagger/types/datetime_type.rb
|
79
79
|
- lib/typed_parameter/swagger/types/float_type.rb
|
80
80
|
- lib/typed_parameter/swagger/types/integer_type.rb
|
81
81
|
- lib/typed_parameter/swagger/types/string_type.rb
|