simple-cli-options 0.1.2 → 0.1.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/option.rb +18 -2
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a20b6b59fed0e7c00325c3df20d25fdd3e860bfb8e4635e824abf29ad413348a
4
- data.tar.gz: 4e1dde6d25abb317503dd35eee37199886163c37d3b79f2a250b3b6c09749e49
3
+ metadata.gz: b3dc23fc107b31257b80f1152cea570f9908946c7374c015637d735c28609779
4
+ data.tar.gz: 13bb26bad01ba80f643b0d64fae26a19a7d6c6852ef034274809031c626b00a9
5
5
  SHA512:
6
- metadata.gz: eea0745fe1eb1a4616f70e90f9d8f5397fc4ebea94018c1e99d97310a949c28656f46a32ecdba211189dba58689edb54bc5b022aea7a9502442cabc006923e62
7
- data.tar.gz: 299417202d0fe3f9bdb7cc0ce4db4c92a6ab02843dc23fb9485f59ac10c41a4463efc689ffe421c8c1df38611455ff2b161829870b871b13a69c6ba9a7d64a7f
6
+ metadata.gz: 98c31149080eef46edf5109578b988717fdd1e4e28a637f3b574e3ddc7af9203b44f99ea6c010d49ca012d2f0f58b1f8b7f37136212688a82222a5a8bd2a7416
7
+ data.tar.gz: 1aea1b272cb5e6aac5bb004222f187030b09eb66cfaa4dd358cc5d60e63173e6e34b064f4e1a5bb808e43a1cc7f15089d9af56969a8537e814f53fc69020f4dd
data/lib/option.rb CHANGED
@@ -40,10 +40,26 @@ class Option
40
40
 
41
41
  # バリデーションは追加(Array)可能、変換は上書き
42
42
  # 各バリデータは、成功時に nil、失敗時にエラーメッセージ(String)を返す想定
43
- @validators = T.let(
44
- [options[:validate]].compact,
43
+ raw_validators = options[:validate]
44
+ validators = T.let(
45
+ [],
45
46
  T::Array[T.proc.params(arg0: String).returns(T.nilable(String))]
46
47
  )
48
+
49
+ unless raw_validators.nil?
50
+ case raw_validators
51
+ when Proc
52
+ validators << raw_validators
53
+ when Array
54
+ raw_validators.each do |v|
55
+ validators << v
56
+ end
57
+ else
58
+ raise ArgumentError, "validate must be a Proc or an Array of Procs"
59
+ end
60
+ end
61
+
62
+ @validators = validators
47
63
  @converter = T.let(options[:convert] || ->(v) { v }, T.proc.params(arg0: String).returns(T.untyped))
48
64
  end
49
65
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple-cli-options
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - HIROAKI SATOU