stack_loop 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/stack_loop/app.rb +45 -18
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc81712c3e789d109bfae88923d192a92e9861af
|
4
|
+
data.tar.gz: f7450251ba830fa605ee00a33896c35e158bd46a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24c9c520ad3d6b5fb2da442858df29054eb83a8e205f3aee555b2b100ba609c918b957824349572b2c05476db34f09a86c36a34d57ff9ef8441ad8995bbdcbd6
|
7
|
+
data.tar.gz: 310f47536bafddb9d03ea2fc7b8a59875cc5dd49b380695439b015f7708965470acef7b0a59e7b7cca6df49e6a7c67b0142ff403cf3f9918bf75711c7178bc5b
|
data/lib/stack_loop/app.rb
CHANGED
@@ -11,17 +11,21 @@ module StackLoop
|
|
11
11
|
@action = action
|
12
12
|
end
|
13
13
|
|
14
|
-
def run
|
15
|
-
@action.call
|
14
|
+
def run(arg_array)
|
15
|
+
@action.call(arg_array)
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
def commands
|
20
20
|
[
|
21
21
|
Command.new("run"){ run_stack_loop },
|
22
|
+
Command.new("try"){ run_top },
|
22
23
|
Command.new("collect"){ push_new; run_stack_loop },
|
24
|
+
Command.new("list"){ read_stack; @stack.reverse_each{|argset| puts "- #{command_line(argset).join(" ")}"} },
|
23
25
|
Command.new("pop"){ pop_argset },
|
24
|
-
Command.new("
|
26
|
+
Command.new("push"){|args| push_argset(args)},
|
27
|
+
Command.new("edit"){ edit_stack },
|
28
|
+
Command.new("quit"){ throw :quit },
|
25
29
|
Command.new("help"){ puts "Don't know that one - try: #{command_names.join(", ")}" }
|
26
30
|
]
|
27
31
|
end
|
@@ -86,6 +90,17 @@ module StackLoop
|
|
86
90
|
@stack.length
|
87
91
|
end
|
88
92
|
|
93
|
+
def edit_stack
|
94
|
+
write_stack
|
95
|
+
execute_editor_command(stack_file)
|
96
|
+
read_stack
|
97
|
+
end
|
98
|
+
|
99
|
+
def execute_editor_command(path)
|
100
|
+
editor = ENV["EDITOR"] || "vim"
|
101
|
+
system(editor, path)
|
102
|
+
end
|
103
|
+
|
89
104
|
def run
|
90
105
|
validate_options!
|
91
106
|
|
@@ -95,16 +110,19 @@ module StackLoop
|
|
95
110
|
|
96
111
|
abbreviations = Abbrev.abbrev(command_names)
|
97
112
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
command_name =
|
113
|
+
catch :quit do
|
114
|
+
loop do
|
115
|
+
prompt
|
116
|
+
command_line = $stdin.gets.chomp.split(/\s+/)
|
117
|
+
command_name = command_line.shift
|
118
|
+
if command_name.nil?
|
119
|
+
command_name = "run"
|
120
|
+
end
|
121
|
+
|
122
|
+
command_name = abbreviations[command_name]
|
123
|
+
command = command_hash.fetch(command_name, command_hash["help"])
|
124
|
+
command.run(command_line)
|
103
125
|
end
|
104
|
-
|
105
|
-
command_name = abbreviations[command_name]
|
106
|
-
command = command_hash.fetch(command_name, command_hash["help"])
|
107
|
-
command.run
|
108
126
|
end
|
109
127
|
end
|
110
128
|
|
@@ -113,9 +131,11 @@ module StackLoop
|
|
113
131
|
end
|
114
132
|
|
115
133
|
def current_command_line
|
116
|
-
|
134
|
+
command_line(get_argset)
|
135
|
+
end
|
117
136
|
|
118
|
-
|
137
|
+
def command_line(argset)
|
138
|
+
command_list + argset
|
119
139
|
end
|
120
140
|
|
121
141
|
def prompt
|
@@ -135,22 +155,29 @@ module StackLoop
|
|
135
155
|
def run_stack_loop
|
136
156
|
while run_stack
|
137
157
|
puts
|
138
|
-
puts "Success
|
158
|
+
puts "Success running next..."
|
139
159
|
puts
|
140
160
|
end
|
161
|
+
|
162
|
+
run_top if @stack.empty?
|
141
163
|
end
|
142
164
|
|
143
165
|
def run_stack
|
144
|
-
|
166
|
+
return false if @stack.empty?
|
167
|
+
|
168
|
+
success = run_top
|
145
169
|
|
146
170
|
if success.nil?
|
147
171
|
raise "#{[command, *args].inspect} couldn't be run"
|
148
172
|
end
|
149
173
|
pop_argset if success
|
150
174
|
|
151
|
-
return false if @stack.empty?
|
152
|
-
|
153
175
|
return success
|
154
176
|
end
|
177
|
+
|
178
|
+
def run_top
|
179
|
+
puts current_command_line.join(" ")
|
180
|
+
system(*current_command_line)
|
181
|
+
end
|
155
182
|
end
|
156
183
|
end
|
metadata
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stack_loop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Judson Lester
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |2
|
14
14
|
The idea here is to take arguments off of a stack, run a command, and proceed down the stack iff the command
|
15
15
|
exits 0.
|
16
16
|
|
17
|
-
Why? Consider running rspec with a tight focus, adding
|
17
|
+
Why? Consider running rspec with a tight focus, adding breadth on success
|
18
18
|
email:
|
19
19
|
- nyarly@gmail.com
|
20
20
|
executables:
|
@@ -36,7 +36,7 @@ rdoc_options:
|
|
36
36
|
- --main
|
37
37
|
- doc/README
|
38
38
|
- --title
|
39
|
-
- stack_loop-0.0
|
39
|
+
- stack_loop-0.1.0 Documentation
|
40
40
|
require_paths:
|
41
41
|
- lib/
|
42
42
|
required_ruby_version: !ruby/object:Gem::Requirement
|