strong_yaml 1.0.0 → 1.0.1

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: 4d9fbf0e956d82b087df9a89ee34ed584b87bd15dd96fd69bb3fa7bc4c23568a
4
- data.tar.gz: 9ac87edf2ff09038300c7b74f7171332f9e8f4379f9d0daa1a01693aaf70eea1
3
+ metadata.gz: a3f01108f842a42d2d81c27b42bfaaab7c974c219265db4dfd56ce62aaf0e372
4
+ data.tar.gz: 21d96b7459b077e7d56c304e299d3420020828d5a6c298186494faab309e2775
5
5
  SHA512:
6
- metadata.gz: b524ca35ed3137d72309934f9287fef33d62da0fb77a1303850b7420013c319b1d06520441f614a50b32ffaf9a0e5ef454036a4accb1cdc4842cf831627d7c12
7
- data.tar.gz: ac3613443faf96bfcaa0e960f36f66aafb35275fac07a3f1684b57287c6d757108d5a6cfe2b67835db421e38889b7e4adbc8a720f9570bfbd8ff4f03e3b521cb
6
+ metadata.gz: 129b8495146a518c5563300749be3394f5f9842494ddcfcd0346e00fd1acae5cbb989226ae89d11c31c1372e38b50619db58add7e04cc76a1f1074d07844cfcd
7
+ data.tar.gz: cf47cc092a99df378992f100367a6785f46e82fd500c3c413778e025eb36c9e62c3c6e52d907a9e058b154714e5b2f5cb9fc630d51af05bc0534f6fbf76645c2
@@ -0,0 +1,10 @@
1
+ module StrongYAML
2
+ class ConfigBoolean
3
+ attr_reader :name, :default
4
+
5
+ def initialize(name, default: nil)
6
+ @name = name
7
+ @default = default
8
+ end
9
+ end
10
+ end
@@ -1,5 +1,6 @@
1
1
  require_relative "config_string"
2
2
  require_relative "config_integer"
3
+ require_relative "config_boolean"
3
4
  require_relative "config_list"
4
5
 
5
6
  module StrongYAML
@@ -25,6 +26,10 @@ module StrongYAML
25
26
  @elements << StrongYAML::ConfigInteger.new(name, **args)
26
27
  end
27
28
 
29
+ def boolean(name, **args)
30
+ @elements << StrongYAML::ConfigBoolean.new(name, **args)
31
+ end
32
+
28
33
  def list(name, **args)
29
34
  @elements << StrongYAML::ConfigList.new(name, **args)
30
35
  end
data/lib/schema/schema.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require_relative "config_group"
2
2
  require_relative "config_string"
3
3
  require_relative "config_integer"
4
+ require_relative "config_boolean"
4
5
  require_relative "config_list"
5
6
 
6
7
  module StrongYAML
@@ -28,6 +29,10 @@ module StrongYAML
28
29
  @elements << StrongYAML::ConfigInteger.new(name, **args)
29
30
  end
30
31
 
32
+ def boolean(name, **args)
33
+ @elements << StrongYAML::ConfigBoolean.new(name, **args)
34
+ end
35
+
31
36
  def list(name, **args)
32
37
  @elements << StrongYAML::ConfigList.new(name, **args)
33
38
  end
data/lib/strong_yaml.rb CHANGED
@@ -81,6 +81,12 @@ module StrongYAML
81
81
  else
82
82
  raise StrongYAML::ConfigSchema::SchemaError, "#{path.map(&:to_s).join(".")} is of type #{value.class}, but should be Integer"
83
83
  end
84
+ when StrongYAML::ConfigBoolean
85
+ if value.nil? || !!foo == foo
86
+ value
87
+ else
88
+ raise StrongYAML::ConfigSchema::SchemaError, "#{path.map(&:to_s).join(".")} is of type #{value.class}, but should be Boolean"
89
+ end
84
90
  when StrongYAML::ConfigList
85
91
  if value.nil? || value.is_a?(Array)
86
92
  value
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strong_yaml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Philipp Schlesinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-15 00:00:00.000000000 Z
11
+ date: 2023-05-28 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Allows for easy YAML parsing and type checking, as well as generators
14
14
  email:
@@ -17,6 +17,7 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - lib/schema/config_boolean.rb
20
21
  - lib/schema/config_group.rb
21
22
  - lib/schema/config_integer.rb
22
23
  - lib/schema/config_list.rb