baf 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/baf/cli.rb +4 -0
- data/lib/baf/env.rb +1 -1
- data/lib/baf/option.rb +21 -1
- data/lib/baf/options_registrant.rb +9 -4
- data/lib/baf/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: 1991efb68636435cda379110ba0131f4215c43d0
|
4
|
+
data.tar.gz: b72d0e15f29acddc4644a4d93d1cf47a25c06cc7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfbd178801b266b25d26c04cfff28ddb1a9df4eed78aff69716583fab76d8c5236447eef3f260c7ae4237d5e7e55c5178bdd458c7714950f305b80cf442447da
|
7
|
+
data.tar.gz: b972cc8676106807bd668ece76a2ffd8190129d66ff6104c52462676f07c014a36d23488e9e07b39b5ed2471036a7ef60da02fad54c789a5d4c8b7762fde7aae
|
data/lib/baf/cli.rb
CHANGED
data/lib/baf/env.rb
CHANGED
data/lib/baf/option.rb
CHANGED
@@ -1,11 +1,31 @@
|
|
1
1
|
module Baf
|
2
|
-
|
2
|
+
class Option
|
3
|
+
attr_accessor :short, :long, :arg, :desc, :block
|
4
|
+
|
5
|
+
def initialize *args
|
6
|
+
attrs = args.size > 1 ? build_attrs(*args) : args[0]
|
7
|
+
attrs.each { |k, v| send :"#{k}=", v }
|
8
|
+
end
|
9
|
+
|
3
10
|
def to_parser_arguments
|
4
11
|
["-#{short}", parser_argument_long, desc]
|
5
12
|
end
|
6
13
|
|
7
14
|
protected
|
8
15
|
|
16
|
+
def build_attrs(short, long, arg_or_block = nil, desc = nil)
|
17
|
+
{
|
18
|
+
short: short,
|
19
|
+
long: long,
|
20
|
+
desc: desc
|
21
|
+
}.tap do |attrs|
|
22
|
+
case arg_or_block
|
23
|
+
when Proc then attrs[:block] = arg_or_block
|
24
|
+
when String then attrs[:arg] = arg_or_block
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
9
29
|
def parser_argument_long
|
10
30
|
[
|
11
31
|
'--' + long.to_s.tr(?_, ?-),
|
@@ -13,10 +13,15 @@ module Baf
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
def flag
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
def flag *args
|
17
|
+
opt = Option.new(*args)
|
18
|
+
if opt.block
|
19
|
+
parser.on(*opt.to_parser_arguments) { opt.block[env] }
|
20
|
+
else
|
21
|
+
define_env_flag env, opt.long
|
22
|
+
parser.on "-#{opt.short}", "--#{opt.long}", "enable #{opt.long} mode" do
|
23
|
+
env.send :"#{opt.long}=", true
|
24
|
+
end
|
20
25
|
end
|
21
26
|
end
|
22
27
|
|
data/lib/baf/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: baf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thibault Jouan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: baf-testing
|