class_kit 0.8.0 → 0.9.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/class_kit/class_methods.rb +24 -1
- data/lib/class_kit/version.rb +1 -1
- metadata +24 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7eabd3f3f7ac3ef4e982c58ba8b8be6d1381e5b17c0721c52692d53eb336da14
|
|
4
|
+
data.tar.gz: 4ef5d9de4c5664ff7c9cd6865d65692f88691570d57ce75fab9ae4a5635f958c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e15932814638fad318677a2a730900e84e67181b241f6b7984dc244c1a96ca8476ee6b0562d45609de939dbf9db0a5861b633c0ac6ccf6fd233ce9b07c5a2681
|
|
7
|
+
data.tar.gz: 149ef28121384fbd91b10755cdad6e8c51d640c71882e156492921c39b2e0e45ddfed336c02de6438d6a2412d002bfd0fac8b2a56082841ffee641efe95d3845
|
|
@@ -3,6 +3,7 @@ module ClassKit
|
|
|
3
3
|
name,
|
|
4
4
|
type: nil,
|
|
5
5
|
collection_type: nil,
|
|
6
|
+
one_of: nil,
|
|
6
7
|
allow_nil: true,
|
|
7
8
|
default: nil,
|
|
8
9
|
auto_init: false,
|
|
@@ -17,6 +18,7 @@ module ClassKit
|
|
|
17
18
|
attributes[name] = {
|
|
18
19
|
name: name,
|
|
19
20
|
type: type,
|
|
21
|
+
one_of: one_of,
|
|
20
22
|
collection_type: collection_type,
|
|
21
23
|
allow_nil: allow_nil,
|
|
22
24
|
default: default,
|
|
@@ -54,7 +56,28 @@ module ClassKit
|
|
|
54
56
|
raise ClassKit::Exceptions::InvalidAttributeValueError, "Attribute: #{name}, must not be nil."
|
|
55
57
|
end
|
|
56
58
|
|
|
57
|
-
|
|
59
|
+
if !cka[:one_of].nil? && !value.nil?
|
|
60
|
+
parsed_value =
|
|
61
|
+
if value == true || value == false
|
|
62
|
+
value
|
|
63
|
+
elsif(/(true|t|yes|y|1)$/i === value.to_s.downcase)
|
|
64
|
+
true
|
|
65
|
+
elsif (/(false|f|no|n|0)$/i === value.to_s.downcase)
|
|
66
|
+
false
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
if parsed_value != nil
|
|
70
|
+
value = parsed_value
|
|
71
|
+
else
|
|
72
|
+
begin
|
|
73
|
+
type = cka[:one_of].detect {|t| value.is_a?(t) }
|
|
74
|
+
value = ClassKit::ValueHelper.instance.parse(type: type, value: value)
|
|
75
|
+
rescue => e
|
|
76
|
+
raise ClassKit::Exceptions::InvalidAttributeValueError, "Attribute: #{name}, must be of type: #{type}. Error: #{e}"
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
58
81
|
if !cka[:type].nil? && !value.nil? && (cka[:type] == :bool || !value.is_a?(cka[:type]))
|
|
59
82
|
begin
|
|
60
83
|
value = ClassKit::ValueHelper.instance.parse(type: cka[:type], value: value)
|
data/lib/class_kit/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: class_kit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sage One
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-02-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -24,20 +24,6 @@ dependencies:
|
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
26
|
version: '2'
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: pry
|
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
|
30
|
-
requirements:
|
|
31
|
-
- - ">="
|
|
32
|
-
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
34
|
-
type: :development
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - ">="
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
41
27
|
- !ruby/object:Gem::Dependency
|
|
42
28
|
name: rake
|
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -70,16 +56,30 @@ dependencies:
|
|
|
70
56
|
name: simplecov
|
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
|
72
58
|
requirements:
|
|
73
|
-
- - "
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: 0.22.0
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: 0.22.0
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: simplecov_json_formatter
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 0
|
|
75
|
+
version: '0'
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
|
-
- - "
|
|
80
|
+
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 0
|
|
82
|
+
version: '0'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: hash_kit
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -131,7 +131,7 @@ homepage: https://github.com/sage/class_kit
|
|
|
131
131
|
licenses:
|
|
132
132
|
- MIT
|
|
133
133
|
metadata: {}
|
|
134
|
-
post_install_message:
|
|
134
|
+
post_install_message:
|
|
135
135
|
rdoc_options: []
|
|
136
136
|
require_paths:
|
|
137
137
|
- lib
|
|
@@ -146,8 +146,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
146
146
|
- !ruby/object:Gem::Version
|
|
147
147
|
version: '0'
|
|
148
148
|
requirements: []
|
|
149
|
-
rubygems_version: 3.
|
|
150
|
-
signing_key:
|
|
149
|
+
rubygems_version: 3.4.20
|
|
150
|
+
signing_key:
|
|
151
151
|
specification_version: 4
|
|
152
152
|
summary: Toolkit for working with classes
|
|
153
153
|
test_files: []
|