mothership 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mothership/inputs.rb +22 -19
- data/lib/mothership/version.rb +1 -1
- metadata +4 -4
data/lib/mothership/inputs.rb
CHANGED
@@ -22,8 +22,8 @@ class Mothership
|
|
22
22
|
def given(name)
|
23
23
|
if @inputs.key?(name)
|
24
24
|
@inputs[name]
|
25
|
-
|
26
|
-
|
25
|
+
elsif (given = @given[name]) != :interact
|
26
|
+
given
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -43,11 +43,26 @@ class Mothership
|
|
43
43
|
inputs.delete(n)
|
44
44
|
end
|
45
45
|
|
46
|
-
self.class.new(@command, @context,
|
46
|
+
self.class.new(@command, @context, inputs, given, @global)
|
47
47
|
end
|
48
48
|
|
49
49
|
def [](name, *args)
|
50
|
-
|
50
|
+
return @inputs[name] if @inputs.key?(name)
|
51
|
+
|
52
|
+
if @command && meta = @command.inputs[name]
|
53
|
+
# special case so #invoke can be called with singular-named inputs
|
54
|
+
singular = meta[:singular]
|
55
|
+
|
56
|
+
if @inputs.key?(singular)
|
57
|
+
return @inputs[name] = [@inputs[singular]]
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
val = get(name, @context, *args)
|
62
|
+
|
63
|
+
@inputs[name] = val unless meta && meta[:forget]
|
64
|
+
|
65
|
+
val
|
51
66
|
end
|
52
67
|
|
53
68
|
def interact(name, *args)
|
@@ -71,16 +86,10 @@ class Mothership
|
|
71
86
|
# 5. global
|
72
87
|
# 6. global, singular
|
73
88
|
def get(name, context, *args)
|
74
|
-
return @inputs[name] if @inputs.key?(name)
|
75
|
-
|
76
89
|
before_input = @current_input
|
77
90
|
@current_input = [name, args]
|
78
91
|
|
79
92
|
if @command && meta = @command.inputs[name]
|
80
|
-
# special case so #invoke can be called with singular-named inputs
|
81
|
-
singular = meta[:singular]
|
82
|
-
return @inputs[name] = [@inputs[singular]] if @inputs.key?(singular)
|
83
|
-
|
84
93
|
found, val = find_in(@given, name, meta, context, *args)
|
85
94
|
elsif meta = Mothership.global_option(name)
|
86
95
|
found, val = find_in(@global, name, meta, context, *args)
|
@@ -89,16 +98,15 @@ class Mothership
|
|
89
98
|
return val if not found
|
90
99
|
|
91
100
|
if val == :interact && interact = meta[:interact]
|
92
|
-
|
101
|
+
context.instance_exec(*args, &interact)
|
93
102
|
else
|
94
|
-
|
103
|
+
convert_given(meta, context, val, *args)
|
95
104
|
end
|
96
105
|
ensure
|
97
106
|
@current_input = before_input
|
98
107
|
end
|
99
108
|
|
100
109
|
def forget(name)
|
101
|
-
@given.delete(name)
|
102
110
|
@inputs.delete(name)
|
103
111
|
end
|
104
112
|
|
@@ -117,12 +125,7 @@ class Mothership
|
|
117
125
|
[true, [where[singular]]]
|
118
126
|
else
|
119
127
|
# no value given; set as default
|
120
|
-
|
121
|
-
|
122
|
-
# cache default value
|
123
|
-
@inputs[name] = val unless meta[:forget]
|
124
|
-
|
125
|
-
[false, val]
|
128
|
+
[false, default_for(meta, context, *args)]
|
126
129
|
end
|
127
130
|
end
|
128
131
|
|
data/lib/mothership/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mothership
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 4
|
10
|
+
version: 0.2.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alex Suraci
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-10-
|
18
|
+
date: 2012-10-17 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rake
|