opto 1.8.0 → 1.8.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 +4 -4
- data/.travis.yml +0 -1
- data/lib/opto/group.rb +2 -2
- data/lib/opto/option.rb +4 -0
- data/lib/opto/type.rb +5 -0
- data/lib/opto/types/array.rb +4 -0
- data/lib/opto/types/boolean.rb +5 -1
- data/lib/opto/types/enum.rb +5 -0
- data/lib/opto/types/integer.rb +4 -0
- data/lib/opto/types/string.rb +4 -0
- data/lib/opto/types/uri.rb +4 -0
- data/lib/opto/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6025b403553a3ecfb777534995962166273d72be
|
4
|
+
data.tar.gz: a947fa23c88021c9f83eba1e925d478bcaf44dae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e16e7b5ca1c943dbeb4df9da7c40196f9f6eb5e85fcc02e18985be15c301c748bd30218377e9088a5a0dd096a7ea10e01cec6abfbe72d5a04a4f1f1c41a693d6
|
7
|
+
data.tar.gz: 7bc3b7d16d8cc8f88a259049509086dc652e1195cc54b60ee744393d14eb91e8845f89ae9428b3aca6cc73a28cc314c31b0239f0d54f6f7bfabd3d0394f02d5f
|
data/.travis.yml
CHANGED
@@ -4,7 +4,6 @@ rvm:
|
|
4
4
|
- 2.2.3
|
5
5
|
- 2.3.3
|
6
6
|
- 2.4.0
|
7
|
-
- jruby-9.1.5.0
|
8
7
|
env:
|
9
8
|
- secure: "bCu1bVzr6SP+gAbMo88GvcHHbhO3LcnJtWp+YuSZ5qW4EHhdBw+DOQeOlzoKHtYhNhptmb/65pZZctRTE6jOOSZzpOUHaeqaqHZpELldkCMu7rE8bXuCV4OfhG0CKWvURS0x5p5F5onEx1a1sjiu+MVEUqktAPDAcdTBNBW1irRwvnSifgjcZRLzfm1aRs1fqzBJpHaAXyD++2GQaWyXDtQsEsc/Eyhmnkac5Y2cTeQiYlDluqBeB885q9K16ruLp2NWx/rnR8RGMP1LSnrye/GEo2mRWOWy1MyIEwNDcVaA6MVDY2GBIQUoXg4PBrZAleVIsO3LzwR4oorFCaSgWxzqYI67g5Kb2zn8fW9Yu5lDcFEJKIHQAwBrlq3n3Mi5it/IxGQDWXQ/2fjBxCwuilvI0WTzOH0m4g8Uf6jHaQLFC6ahdWDjfs6aCzdPpbJls26/r39NIB5k/6ZO29NZkxGBsQ7E7m4wurr7a9ksLODgPOyPiB8/4Txu35Llp+IuJpbshrlkRIMwEIFVWiLi6MZhRBkxaRzlkJQ0bS3RD9W4z9UJyoBujmgXMrv0eHNTGCOC+/4tvrA+pXzJwmFQJA6TnenoDl9hc6o03gyfH/YvmMgrtJLbJ8rGoLRaY8HsQwHWgimpCl1o043kO8/UkhhS7J4wyQXYwqGnA2PC/j0="
|
10
9
|
before_install: gem install bundler -v 1.12.5
|
data/lib/opto/group.rb
CHANGED
@@ -117,7 +117,7 @@ module Opto
|
|
117
117
|
[]
|
118
118
|
when ::Array
|
119
119
|
ifs.map do |iff|
|
120
|
-
lambda { |grp|
|
120
|
+
lambda { |grp| grp.option(iff).true? }
|
121
121
|
end
|
122
122
|
when Hash
|
123
123
|
ifs.each_with_object([]) do |(k, v), arr|
|
@@ -175,7 +175,7 @@ module Opto
|
|
175
175
|
end
|
176
176
|
end
|
177
177
|
when String, Symbol
|
178
|
-
[
|
178
|
+
normalize_ifs([ifs])
|
179
179
|
else
|
180
180
|
raise TypeError, "Invalid syntax for conditional"
|
181
181
|
end
|
data/lib/opto/option.rb
CHANGED
data/lib/opto/type.rb
CHANGED
@@ -70,6 +70,11 @@ module Opto
|
|
70
70
|
raise TypeError, "Block required" unless block_given?
|
71
71
|
sanitizers << define_method("sanitize_#{name}", &block)
|
72
72
|
end
|
73
|
+
|
74
|
+
def true_when(&block)
|
75
|
+
raise TypeError, "Block required" unless block_given?
|
76
|
+
define_method(:truthy?, &block)
|
77
|
+
end
|
73
78
|
end
|
74
79
|
|
75
80
|
# The default :in validator, returns an error unless the
|
data/lib/opto/types/array.rb
CHANGED
data/lib/opto/types/boolean.rb
CHANGED
data/lib/opto/types/enum.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require_relative '../type'
|
2
2
|
require 'opto/extensions/snake_case'
|
3
3
|
require 'opto/extensions/hash_string_or_symbol_key'
|
4
|
+
require 'opto/types/boolean'
|
4
5
|
|
5
6
|
module Opto
|
6
7
|
module Types
|
@@ -42,6 +43,10 @@ module Opto
|
|
42
43
|
in: []
|
43
44
|
}
|
44
45
|
|
46
|
+
true_when do |value|
|
47
|
+
Opto::Types::Boolean.new(options).sanitize_to_bool(value)
|
48
|
+
end
|
49
|
+
|
45
50
|
def initialize(options={})
|
46
51
|
opts = normalize_opts(options.delete(:options))
|
47
52
|
super(options)
|
data/lib/opto/types/integer.rb
CHANGED
data/lib/opto/types/string.rb
CHANGED
@@ -2,6 +2,7 @@ require_relative '../type'
|
|
2
2
|
require 'base64'
|
3
3
|
require 'opto/extensions/snake_case'
|
4
4
|
require 'opto/extensions/hash_string_or_symbol_key'
|
5
|
+
require 'opto/types/boolean'
|
5
6
|
|
6
7
|
module Opto
|
7
8
|
module Types
|
@@ -33,6 +34,9 @@ module Opto
|
|
33
34
|
decode_64: false
|
34
35
|
}.merge(Hash[*TRANSFORMATIONS.flat_map {|tr| [tr, false]}])
|
35
36
|
|
37
|
+
true_when do |value|
|
38
|
+
!value.nil? && !value.strip.empty? && value != 'false'
|
39
|
+
end
|
36
40
|
|
37
41
|
sanitizer :encode_64 do |value|
|
38
42
|
(options[:encode_64] && value) ? Base64.encode64(value) : value
|
data/lib/opto/types/uri.rb
CHANGED
data/lib/opto/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kimmo Lehto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|