duoconsole 0.1.3 → 0.1.4
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.
- data/lib/duoconsole.rb +29 -15
- metadata +2 -2
data/lib/duoconsole.rb
CHANGED
@@ -119,7 +119,14 @@ class Duoconsole
|
|
119
119
|
@socket = socket
|
120
120
|
end
|
121
121
|
|
122
|
-
def
|
122
|
+
def method_missing(m, *args, &block)
|
123
|
+
send m, args
|
124
|
+
end
|
125
|
+
|
126
|
+
private
|
127
|
+
|
128
|
+
def send command, args
|
129
|
+
msg = Marshal.dump([command, args])
|
123
130
|
socket.write(msg)
|
124
131
|
recv
|
125
132
|
end
|
@@ -133,14 +140,11 @@ class Duoconsole
|
|
133
140
|
socket.recv(1000)
|
134
141
|
raise e
|
135
142
|
end
|
136
|
-
|
137
|
-
def method_missing(m, *args, &block)
|
138
|
-
send "#{m} #{args.join(' ')}"
|
139
|
-
end
|
140
143
|
end
|
141
144
|
|
142
145
|
|
143
146
|
class CommandServer
|
147
|
+
RECOGNIZED_COMMANDS = [:test, :rake]
|
144
148
|
attr_reader :socket
|
145
149
|
|
146
150
|
def initialize socket
|
@@ -150,29 +154,39 @@ class Duoconsole
|
|
150
154
|
def start
|
151
155
|
loop do
|
152
156
|
msg = socket.recv(1000)
|
153
|
-
command, args =
|
157
|
+
command, args = Marshal.load(msg)
|
154
158
|
|
155
|
-
retval = if
|
156
|
-
|
159
|
+
retval = if valid_command?(command)
|
160
|
+
run_command(command, args)
|
157
161
|
else
|
158
|
-
|
162
|
+
"Unrecognized command. Valid commands are #{RECOGNIZED_COMMANDS.join(', ')}"
|
159
163
|
end
|
160
164
|
|
161
165
|
socket.write(retval)
|
162
166
|
end
|
163
167
|
end
|
164
168
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
169
|
+
private
|
170
|
+
|
171
|
+
def valid_command? command
|
172
|
+
RECOGNIZED_COMMANDS.include?(command.to_sym)
|
173
|
+
end
|
174
|
+
|
175
|
+
def run_command command, args
|
176
|
+
commander.send(command, *args)
|
177
|
+
rescue => e
|
178
|
+
dump_exception e
|
179
|
+
e.class.name
|
171
180
|
end
|
172
181
|
|
173
182
|
def commander
|
174
183
|
@commander ||= Rails::Commands::Commander.new
|
175
184
|
end
|
185
|
+
|
186
|
+
def dump_exception e
|
187
|
+
puts "#{e.class}: #{e.message}"
|
188
|
+
puts e.backtrace.map {|line| "\t#{line}"}
|
189
|
+
end
|
176
190
|
end
|
177
191
|
|
178
192
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duoconsole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|