class_kit 0.8.0 → 0.9.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f501847a8ffea1775ff197945234f28865db2ba0188b35d469b9e2968f00d2f
4
- data.tar.gz: 37c4acff0fc0114dc9cc4e4fe9c2c41acc294fa4d54e3e53e99149ac0afb17ad
3
+ metadata.gz: 174b8ba8709d3d55964c17cb86fb820b786e03a3bf4c17fa11b2db2c07ebf3f4
4
+ data.tar.gz: 1c1a03980781a37881a209e47cf596529dad0ce1a41dc6d301f91e295fd60e28
5
5
  SHA512:
6
- metadata.gz: 77507663db94f9e8d8da1a77bde21ef2000f40124a3a776de446715a133b944aa132fe71cf68dd7197b1434a6a70b0817dfcb455b4a2808d57f3878ad4472d59
7
- data.tar.gz: b2f047deffc4c43fb07b09b6ba8d9a7d9d732c1f0b5ed5192af614182e1bf6703fb72bcd3b0fb4a4dee010db515bc7f700f0b4c09cdf3b03b7cd43e297b000fe
6
+ metadata.gz: df7de4121b05e773056d8ef4af2b7aefde3a47b6dc42ff2cf2d711ba841c1b2e79fcc978a278e208f355cadc0dba12e8906b390582dea2bdfa4e2952557d86a7
7
+ data.tar.gz: 2709a0c45a4e95f7bf79675821f1ee0a009887688f47b3a013f2e326a38a9ec97a3e3f44a37b00b243d2f937427a405470a21886eaa2e9d92ec4dafe7a8eb3e7
@@ -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
- # check if the value being set is not of the specified type and should attempt to parse the value
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)
@@ -1,5 +1,5 @@
1
1
  # Namespace
2
2
  module ClassKit
3
3
  # :nodoc:
4
- VERSION = '0.8.0'
4
+ VERSION = '0.9.1'
5
5
  end
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.8.0
4
+ version: 0.9.1
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: 2021-10-07 00:00:00.000000000 Z
11
+ date: 2025-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -25,7 +25,21 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: pry
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
45
  - - ">="
@@ -39,21 +53,21 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: rake
56
+ name: simplecov
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '10.0'
61
+ version: 0.22.0
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '10.0'
68
+ version: 0.22.0
55
69
  - !ruby/object:Gem::Dependency
56
- name: rspec
70
+ name: simplecov_json_formatter
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -67,19 +81,19 @@ dependencies:
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
- name: simplecov
84
+ name: bigdecimal
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "<"
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
- version: 0.18.0
76
- type: :development
89
+ version: '0'
90
+ type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "<"
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
- version: 0.18.0
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: hash_kit
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -131,7 +145,7 @@ homepage: https://github.com/sage/class_kit
131
145
  licenses:
132
146
  - MIT
133
147
  metadata: {}
134
- post_install_message:
148
+ post_install_message:
135
149
  rdoc_options: []
136
150
  require_paths:
137
151
  - lib
@@ -146,8 +160,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
160
  - !ruby/object:Gem::Version
147
161
  version: '0'
148
162
  requirements: []
149
- rubygems_version: 3.1.2
150
- signing_key:
163
+ rubygems_version: 3.4.20
164
+ signing_key:
151
165
  specification_version: 4
152
166
  summary: Toolkit for working with classes
153
167
  test_files: []