class_kit 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f501847a8ffea1775ff197945234f28865db2ba0188b35d469b9e2968f00d2f
4
- data.tar.gz: 37c4acff0fc0114dc9cc4e4fe9c2c41acc294fa4d54e3e53e99149ac0afb17ad
3
+ metadata.gz: 7eabd3f3f7ac3ef4e982c58ba8b8be6d1381e5b17c0721c52692d53eb336da14
4
+ data.tar.gz: 4ef5d9de4c5664ff7c9cd6865d65692f88691570d57ce75fab9ae4a5635f958c
5
5
  SHA512:
6
- metadata.gz: 77507663db94f9e8d8da1a77bde21ef2000f40124a3a776de446715a133b944aa132fe71cf68dd7197b1434a6a70b0817dfcb455b4a2808d57f3878ad4472d59
7
- data.tar.gz: b2f047deffc4c43fb07b09b6ba8d9a7d9d732c1f0b5ed5192af614182e1bf6703fb72bcd3b0fb4a4dee010db515bc7f700f0b4c09cdf3b03b7cd43e297b000fe
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
- # 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.0'
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.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: 2021-10-07 00:00:00.000000000 Z
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.18.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.18.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.1.2
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: []