opto 1.8.0 → 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|