nucleon 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/VERSION +1 -1
- data/lib/core/config.rb +21 -20
- data/lib/core/environment.rb +2 -2
- data/lib/core/facade.rb +15 -0
- data/lib/core/mixin/action/registration.rb +84 -0
- data/lib/core/mixin/sub_config.rb +5 -5
- data/lib/core/plugin/action.rb +66 -10
- data/lib/core/plugin/base.rb +100 -19
- data/lib/core/plugin/command.rb +4 -0
- data/lib/core/util/cache.rb +13 -1
- data/lib/core/util/cli.rb +77 -11
- data/lib/core/util/console.rb +55 -72
- data/lib/core/util/data.rb +19 -9
- data/lib/core/util/logger.rb +16 -6
- data/lib/core/util/shell.rb +3 -1
- data/lib/core/util/ssh.rb +28 -25
- data/lib/nucleon/translator/JSON.rb +2 -2
- data/lib/nucleon/translator/YAML.rb +2 -2
- data/lib/nucleon_base.rb +22 -8
- data/nucleon.gemspec +122 -2
- data/rdoc/site/0.2.0/ARCHITECTURE_rdoc.html +638 -0
- data/rdoc/site/0.2.0/Hash.html +351 -0
- data/rdoc/site/0.2.0/Kernel.html +416 -0
- data/rdoc/site/0.2.0/Nucleon.html +607 -0
- data/rdoc/site/0.2.0/Nucleon/Action.html +284 -0
- data/rdoc/site/0.2.0/Nucleon/Action/Extract.html +455 -0
- data/rdoc/site/0.2.0/Nucleon/Action/Project.html +283 -0
- data/rdoc/site/0.2.0/Nucleon/Action/Project/Add.html +500 -0
- data/rdoc/site/0.2.0/Nucleon/Action/Project/Create.html +457 -0
- data/rdoc/site/0.2.0/Nucleon/Action/Project/Remove.html +503 -0
- data/rdoc/site/0.2.0/Nucleon/Action/Project/Save.html +476 -0
- data/rdoc/site/0.2.0/Nucleon/Action/Project/Update.html +423 -0
- data/rdoc/site/0.2.0/Nucleon/Codes.html +567 -0
- data/rdoc/site/0.2.0/Nucleon/Command.html +279 -0
- data/rdoc/site/0.2.0/Nucleon/Command/Bash.html +548 -0
- data/rdoc/site/0.2.0/Nucleon/Config.html +1631 -0
- data/rdoc/site/0.2.0/Nucleon/Config/Collection.html +513 -0
- data/rdoc/site/0.2.0/Nucleon/Config/Options.html +493 -0
- data/rdoc/site/0.2.0/Nucleon/Core.html +639 -0
- data/rdoc/site/0.2.0/Nucleon/Environment.html +1208 -0
- data/rdoc/site/0.2.0/Nucleon/Errors.html +279 -0
- data/rdoc/site/0.2.0/Nucleon/Errors/BatchError.html +285 -0
- data/rdoc/site/0.2.0/Nucleon/Errors/NucleonError.html +661 -0
- data/rdoc/site/0.2.0/Nucleon/Errors/SSHUnavailable.html +285 -0
- data/rdoc/site/0.2.0/Nucleon/Event.html +279 -0
- data/rdoc/site/0.2.0/Nucleon/Event/Regex.html +471 -0
- data/rdoc/site/0.2.0/Nucleon/Facade.html +2409 -0
- data/rdoc/site/0.2.0/Nucleon/Gems.html +639 -0
- data/rdoc/site/0.2.0/Nucleon/Manager.html +1860 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin.html +288 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Action.html +281 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Action/Commit.html +385 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Action/Project.html +399 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Action/Push.html +375 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Colors.html +549 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/ConfigCollection.html +485 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/ConfigOptions.html +453 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Macro.html +280 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Macro/ObjectInterface.html +699 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Macro/PluginInterface.html +686 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/Settings.html +485 -0
- data/rdoc/site/0.2.0/Nucleon/Mixin/SubConfig.html +891 -0
- data/rdoc/site/0.2.0/Nucleon/Parallel.html +330 -0
- data/rdoc/site/0.2.0/Nucleon/Parallel/ClassMethods.html +329 -0
- data/rdoc/site/0.2.0/Nucleon/Parallel/InstanceMethods.html +456 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin.html +286 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Action.html +1829 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Action/Option.html +463 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Base.html +1803 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Command.html +725 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Event.html +446 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Extension.html +285 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Project.html +2898 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Template.html +480 -0
- data/rdoc/site/0.2.0/Nucleon/Plugin/Translator.html +375 -0
- data/rdoc/site/0.2.0/Nucleon/Project.html +280 -0
- data/rdoc/site/0.2.0/Nucleon/Project/Git.html +1805 -0
- data/rdoc/site/0.2.0/Nucleon/Project/Github.html +553 -0
- data/rdoc/site/0.2.0/Nucleon/Template.html +281 -0
- data/rdoc/site/0.2.0/Nucleon/Template/JSON.html +333 -0
- data/rdoc/site/0.2.0/Nucleon/Template/Wrapper.html +333 -0
- data/rdoc/site/0.2.0/Nucleon/Template/YAML.html +333 -0
- data/rdoc/site/0.2.0/Nucleon/Translator.html +280 -0
- data/rdoc/site/0.2.0/Nucleon/Translator/JSON.html +370 -0
- data/rdoc/site/0.2.0/Nucleon/Translator/YAML.html +370 -0
- data/rdoc/site/0.2.0/Nucleon/Util.html +289 -0
- data/rdoc/site/0.2.0/Nucleon/Util/CLI.html +392 -0
- data/rdoc/site/0.2.0/Nucleon/Util/CLI/Parser.html +1250 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Cache.html +784 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Console.html +1318 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Data.html +1411 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Disk.html +526 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Git.html +365 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Liquid.html +369 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Logger.html +810 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Package.html +562 -0
- data/rdoc/site/0.2.0/Nucleon/Util/SSH.html +1033 -0
- data/rdoc/site/0.2.0/Nucleon/Util/SSH/Keypair.html +605 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Shell.html +693 -0
- data/rdoc/site/0.2.0/Nucleon/Util/Shell/Result.html +501 -0
- data/rdoc/site/0.2.0/README_rdoc.html +316 -0
- data/rdoc/site/0.2.0/TODO_rdoc.html +265 -0
- data/rdoc/site/0.2.0/created.rid +61 -0
- data/rdoc/site/0.2.0/images/add.png +0 -0
- data/rdoc/site/0.2.0/images/brick.png +0 -0
- data/rdoc/site/0.2.0/images/brick_link.png +0 -0
- data/rdoc/site/0.2.0/images/bug.png +0 -0
- data/rdoc/site/0.2.0/images/bullet_black.png +0 -0
- data/rdoc/site/0.2.0/images/bullet_toggle_minus.png +0 -0
- data/rdoc/site/0.2.0/images/bullet_toggle_plus.png +0 -0
- data/rdoc/site/0.2.0/images/date.png +0 -0
- data/rdoc/site/0.2.0/images/delete.png +0 -0
- data/rdoc/site/0.2.0/images/find.png +0 -0
- data/rdoc/site/0.2.0/images/loadingAnimation.gif +0 -0
- data/rdoc/site/0.2.0/images/macFFBgHack.png +0 -0
- data/rdoc/site/0.2.0/images/package.png +0 -0
- data/rdoc/site/0.2.0/images/page_green.png +0 -0
- data/rdoc/site/0.2.0/images/page_white_text.png +0 -0
- data/rdoc/site/0.2.0/images/page_white_width.png +0 -0
- data/rdoc/site/0.2.0/images/plugin.png +0 -0
- data/rdoc/site/0.2.0/images/ruby.png +0 -0
- data/rdoc/site/0.2.0/images/tag_blue.png +0 -0
- data/rdoc/site/0.2.0/images/tag_green.png +0 -0
- data/rdoc/site/0.2.0/images/transparent.png +0 -0
- data/rdoc/site/0.2.0/images/wrench.png +0 -0
- data/rdoc/site/0.2.0/images/wrench_orange.png +0 -0
- data/rdoc/site/0.2.0/images/zoom.png +0 -0
- data/rdoc/site/0.2.0/index.html +315 -0
- data/rdoc/site/0.2.0/js/darkfish.js +155 -0
- data/rdoc/site/0.2.0/js/jquery.js +18 -0
- data/rdoc/site/0.2.0/js/navigation.js +142 -0
- data/rdoc/site/0.2.0/js/search.js +94 -0
- data/rdoc/site/0.2.0/js/search_index.js +1 -0
- data/rdoc/site/0.2.0/js/searcher.js +228 -0
- data/rdoc/site/0.2.0/rdoc.css +543 -0
- data/rdoc/site/0.2.0/table_of_contents.html +1657 -0
- data/spec/core/util/console_spec.rb +50 -18
- metadata +133 -2
data/lib/core/util/data.rb
CHANGED
@@ -260,12 +260,15 @@ class Data
|
|
260
260
|
|
261
261
|
#---
|
262
262
|
|
263
|
-
def self.merge(data, force = true)
|
263
|
+
def self.merge(data, force = true, basic = true)
|
264
264
|
value = data
|
265
265
|
|
266
266
|
# Special case because this method is called from within Config.new so we
|
267
267
|
# can not use Config.ensure, as that would cause an infinite loop.
|
268
|
-
|
268
|
+
if force.is_a?(Nucleon::Config)
|
269
|
+
basic = force.get(:basic, true)
|
270
|
+
force = force.get(:force, true)
|
271
|
+
end
|
269
272
|
|
270
273
|
if data.is_a?(Array)
|
271
274
|
value = undef?(data[0]) ? nil : data.shift.clone
|
@@ -275,15 +278,23 @@ class Data
|
|
275
278
|
|
276
279
|
case value
|
277
280
|
when Hash
|
278
|
-
|
279
|
-
|
280
|
-
value = force ? value.deep_merge!(item) : value.deep_merge(item)
|
281
|
-
|
282
|
-
rescue LoadError
|
283
|
-
if item.is_a?(Hash) # Non recursive top level by default.
|
281
|
+
if basic
|
282
|
+
if item.is_a?(Hash)
|
284
283
|
value = value.merge(item)
|
285
284
|
elsif force
|
286
285
|
value = item
|
286
|
+
end
|
287
|
+
else
|
288
|
+
begin
|
289
|
+
require 'deep_merge'
|
290
|
+
value = force ? value.deep_merge!(item) : value.deep_merge(item)
|
291
|
+
|
292
|
+
rescue LoadError
|
293
|
+
if item.is_a?(Hash) # Non recursive top level by default.
|
294
|
+
value = value.merge(item)
|
295
|
+
elsif force
|
296
|
+
value = item
|
297
|
+
end
|
287
298
|
end
|
288
299
|
end
|
289
300
|
when Array
|
@@ -298,7 +309,6 @@ class Data
|
|
298
309
|
end
|
299
310
|
end
|
300
311
|
end
|
301
|
-
|
302
312
|
return value
|
303
313
|
end
|
304
314
|
|
data/lib/core/util/logger.rb
CHANGED
@@ -116,32 +116,42 @@ class Logger
|
|
116
116
|
# Log statements
|
117
117
|
|
118
118
|
def debug(message)
|
119
|
-
|
119
|
+
unless Util::Console.quiet
|
120
|
+
@logger.debug(message)
|
121
|
+
end
|
120
122
|
end
|
121
123
|
|
122
124
|
#---
|
123
125
|
|
124
126
|
def info(message)
|
125
|
-
|
127
|
+
unless Util::Console.quiet
|
128
|
+
@logger.info(message)
|
129
|
+
end
|
126
130
|
end
|
127
131
|
|
128
132
|
#---
|
129
133
|
|
130
134
|
def warn(message)
|
131
|
-
|
135
|
+
unless Util::Console.quiet
|
136
|
+
@logger.warn(message)
|
137
|
+
end
|
132
138
|
end
|
133
139
|
|
134
140
|
#---
|
135
141
|
|
136
142
|
def error(message)
|
137
|
-
|
143
|
+
unless Util::Console.quiet
|
144
|
+
@logger.error(message)
|
145
|
+
end
|
138
146
|
end
|
139
147
|
|
140
148
|
#---
|
141
149
|
|
142
150
|
def hook(message)
|
143
|
-
|
144
|
-
|
151
|
+
unless Util::Console.quiet
|
152
|
+
@logger.hook(message)
|
153
|
+
end
|
154
|
+
end
|
145
155
|
end
|
146
156
|
end
|
147
157
|
end
|
data/lib/core/util/shell.rb
CHANGED
@@ -111,7 +111,9 @@ class Shell < Core
|
|
111
111
|
error_success = close_exec_pipe(t2, $stderr, error_orig, error_new, 'error')
|
112
112
|
end
|
113
113
|
|
114
|
-
|
114
|
+
unless config.get(:quiet, false)
|
115
|
+
logger.warn("`#{command}` messages: #{system_result.errors}") if system_result.errors.length > 0
|
116
|
+
end
|
115
117
|
logger.warn("`#{command}` status: #{system_result.status}") unless system_result.status == 0
|
116
118
|
|
117
119
|
success = ( system_success && output_success && error_success )
|
data/lib/core/util/ssh.rb
CHANGED
@@ -140,6 +140,8 @@ class SSH < Core
|
|
140
140
|
@@sessions = {}
|
141
141
|
@@auth = {}
|
142
142
|
|
143
|
+
@@session_lock = Mutex.new
|
144
|
+
|
143
145
|
#---
|
144
146
|
|
145
147
|
def self.session_id(hostname, user)
|
@@ -152,37 +154,40 @@ class SSH < Core
|
|
152
154
|
require 'net/ssh'
|
153
155
|
|
154
156
|
session_id = session_id(hostname, user)
|
155
|
-
config = Config.ensure(options)
|
156
157
|
|
157
|
-
|
158
|
-
|
159
|
-
:auth_methods => [ 'publickey' ],
|
160
|
-
:paranoid => :very
|
161
|
-
}).import(Util::Data.subset(config, config.keys - [ :keypair, :key_dir, :key_name ]))
|
158
|
+
@@session_lock.synchronize do
|
159
|
+
config = Config.ensure(options)
|
162
160
|
|
163
|
-
|
164
|
-
|
161
|
+
ssh_options = Config.new({
|
162
|
+
:user_known_hosts_file => [ File.join(key_path, 'known_hosts'), File.join(key_path, 'known_hosts2') ],
|
163
|
+
:auth_methods => [ 'publickey' ],
|
164
|
+
:paranoid => :very
|
165
|
+
}).import(Util::Data.subset(config, config.keys - [ :keypair, :key_dir, :key_name ]))
|
166
|
+
|
167
|
+
if private_key
|
168
|
+
auth_id = [ session_id, private_key ].join('_')
|
165
169
|
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
+
if ! @@auth[auth_id] && keypair = unlock_private_key(private_key, config)
|
171
|
+
@@auth[auth_id] = keypair
|
172
|
+
end
|
173
|
+
config[:keypair] = @@auth[auth_id] # Reset so caller can access updated keypair
|
170
174
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
175
|
+
if @@auth[auth_id].is_a?(String)
|
176
|
+
ssh_options[:keys_only] = false
|
177
|
+
ssh_options[:keys] = [ @@auth[auth_id] ]
|
178
|
+
else
|
179
|
+
ssh_options[:keys_only] = true
|
180
|
+
ssh_options[:key_data] = [ @@auth[auth_id].private_key ]
|
181
|
+
end
|
177
182
|
end
|
178
|
-
end
|
179
183
|
|
180
|
-
|
184
|
+
ssh_options[:port] = port
|
181
185
|
|
182
|
-
|
183
|
-
|
186
|
+
if reset || ! @@sessions.has_key?(session_id)
|
187
|
+
@@sessions[session_id] = Net::SSH.start(hostname, user, ssh_options.export)
|
188
|
+
end
|
184
189
|
end
|
185
|
-
yield(@@sessions[session_id]) if block_given? && @@sessions[session_id]
|
190
|
+
yield(@@sessions[session_id]) if block_given? && @@sessions[session_id]
|
186
191
|
@@sessions[session_id]
|
187
192
|
end
|
188
193
|
|
@@ -244,7 +249,6 @@ class SSH < Core
|
|
244
249
|
logger.info(">> running SSH: #{command}")
|
245
250
|
|
246
251
|
ssh.open_channel do |ssh_channel|
|
247
|
-
ssh_channel.request_pty
|
248
252
|
ssh_channel.exec(command) do |channel, success|
|
249
253
|
unless success
|
250
254
|
raise "Could not execute command: #{command.inspect}"
|
@@ -256,7 +260,6 @@ class SSH < Core
|
|
256
260
|
end
|
257
261
|
|
258
262
|
channel.on_extended_data do |ch, type, data|
|
259
|
-
next unless type == 1
|
260
263
|
result.append_errors(data)
|
261
264
|
yield(:error, command, data) if block_given?
|
262
265
|
end
|
@@ -9,7 +9,7 @@ class JSON < Nucleon.plugin_class(:nucleon, :translator)
|
|
9
9
|
def parse(json_text)
|
10
10
|
return super do |properties|
|
11
11
|
if json_text && ! json_text.empty?
|
12
|
-
properties = Util::Data.parse_json(json_text)
|
12
|
+
properties = Util::Data.symbol_map(Util::Data.parse_json(json_text))
|
13
13
|
end
|
14
14
|
properties
|
15
15
|
end
|
@@ -19,7 +19,7 @@ class JSON < Nucleon.plugin_class(:nucleon, :translator)
|
|
19
19
|
|
20
20
|
def generate(properties)
|
21
21
|
return super do
|
22
|
-
Util::Data.to_json(properties, get(:pretty, true))
|
22
|
+
Util::Data.to_json(Util::Data.string_map(properties), get(:pretty, true))
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -9,7 +9,7 @@ class YAML < Nucleon.plugin_class(:nucleon, :translator)
|
|
9
9
|
def parse(yaml_text)
|
10
10
|
return super do |properties|
|
11
11
|
if yaml_text && ! yaml_text.empty?
|
12
|
-
properties = Util::Data.parse_yaml(yaml_text)
|
12
|
+
properties = Util::Data.symbol_map(Util::Data.parse_yaml(yaml_text))
|
13
13
|
end
|
14
14
|
properties
|
15
15
|
end
|
@@ -19,7 +19,7 @@ class YAML < Nucleon.plugin_class(:nucleon, :translator)
|
|
19
19
|
|
20
20
|
def generate(properties)
|
21
21
|
return super do
|
22
|
-
Util::Data.to_yaml(properties)
|
22
|
+
Util::Data.to_yaml(Util::Data.string_map(properties))
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
data/lib/nucleon_base.rb
CHANGED
@@ -64,6 +64,18 @@ module Nucleon
|
|
64
64
|
def self.VERSION
|
65
65
|
File.read(File.join(File.dirname(__FILE__), '..', 'VERSION'))
|
66
66
|
end
|
67
|
+
|
68
|
+
#-----------------------------------------------------------------------------
|
69
|
+
|
70
|
+
@@dump_enabled = false
|
71
|
+
|
72
|
+
def self.dump_enabled=dump
|
73
|
+
@@dump_enabled = dump
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.dump_enabled
|
77
|
+
@@dump_enabled
|
78
|
+
end
|
67
79
|
|
68
80
|
#-----------------------------------------------------------------------------
|
69
81
|
|
@@ -170,16 +182,18 @@ end
|
|
170
182
|
|
171
183
|
module Kernel
|
172
184
|
|
173
|
-
def dbg(data, label = '')
|
185
|
+
def dbg(data, label = '', override_enabled = false)
|
174
186
|
# Invocations of this function should NOT be committed to the project
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
187
|
+
if Nucleon.dump_enabled || override_enabled
|
188
|
+
require 'pp'
|
189
|
+
puts '>>----------------------'
|
190
|
+
unless ! label || label.empty?
|
191
|
+
puts label
|
192
|
+
puts '---'
|
193
|
+
end
|
194
|
+
pp data
|
195
|
+
puts '<<'
|
180
196
|
end
|
181
|
-
pp data
|
182
|
-
puts '<<'
|
183
197
|
end
|
184
198
|
end
|
185
199
|
|
data/nucleon.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "nucleon"
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Adrian Webb"]
|
12
|
-
s.date = "2014-07-
|
12
|
+
s.date = "2014-07-10"
|
13
13
|
s.description = "\nA framework that provides a simple foundation for building Ruby applications that are:\n\n* Highly configurable (with both distributed and persistent configurations)\n* Extremely pluggable and extendable\n* Easily parallel\n\nNote: This framework is still very early in development!\n"
|
14
14
|
s.email = "adrian.webb@coralnexus.com"
|
15
15
|
s.executables = ["nucleon"]
|
@@ -42,6 +42,7 @@ Gem::Specification.new do |s|
|
|
42
42
|
"lib/core/mixin/action/commit.rb",
|
43
43
|
"lib/core/mixin/action/project.rb",
|
44
44
|
"lib/core/mixin/action/push.rb",
|
45
|
+
"lib/core/mixin/action/registration.rb",
|
45
46
|
"lib/core/mixin/colors.rb",
|
46
47
|
"lib/core/mixin/config/collection.rb",
|
47
48
|
"lib/core/mixin/config/options.rb",
|
@@ -202,6 +203,122 @@ Gem::Specification.new do |s|
|
|
202
203
|
"rdoc/site/0.1.19/js/searcher.js",
|
203
204
|
"rdoc/site/0.1.19/rdoc.css",
|
204
205
|
"rdoc/site/0.1.19/table_of_contents.html",
|
206
|
+
"rdoc/site/0.2.0/ARCHITECTURE_rdoc.html",
|
207
|
+
"rdoc/site/0.2.0/Hash.html",
|
208
|
+
"rdoc/site/0.2.0/Kernel.html",
|
209
|
+
"rdoc/site/0.2.0/Nucleon.html",
|
210
|
+
"rdoc/site/0.2.0/Nucleon/Action.html",
|
211
|
+
"rdoc/site/0.2.0/Nucleon/Action/Extract.html",
|
212
|
+
"rdoc/site/0.2.0/Nucleon/Action/Project.html",
|
213
|
+
"rdoc/site/0.2.0/Nucleon/Action/Project/Add.html",
|
214
|
+
"rdoc/site/0.2.0/Nucleon/Action/Project/Create.html",
|
215
|
+
"rdoc/site/0.2.0/Nucleon/Action/Project/Remove.html",
|
216
|
+
"rdoc/site/0.2.0/Nucleon/Action/Project/Save.html",
|
217
|
+
"rdoc/site/0.2.0/Nucleon/Action/Project/Update.html",
|
218
|
+
"rdoc/site/0.2.0/Nucleon/Codes.html",
|
219
|
+
"rdoc/site/0.2.0/Nucleon/Command.html",
|
220
|
+
"rdoc/site/0.2.0/Nucleon/Command/Bash.html",
|
221
|
+
"rdoc/site/0.2.0/Nucleon/Config.html",
|
222
|
+
"rdoc/site/0.2.0/Nucleon/Config/Collection.html",
|
223
|
+
"rdoc/site/0.2.0/Nucleon/Config/Options.html",
|
224
|
+
"rdoc/site/0.2.0/Nucleon/Core.html",
|
225
|
+
"rdoc/site/0.2.0/Nucleon/Environment.html",
|
226
|
+
"rdoc/site/0.2.0/Nucleon/Errors.html",
|
227
|
+
"rdoc/site/0.2.0/Nucleon/Errors/BatchError.html",
|
228
|
+
"rdoc/site/0.2.0/Nucleon/Errors/NucleonError.html",
|
229
|
+
"rdoc/site/0.2.0/Nucleon/Errors/SSHUnavailable.html",
|
230
|
+
"rdoc/site/0.2.0/Nucleon/Event.html",
|
231
|
+
"rdoc/site/0.2.0/Nucleon/Event/Regex.html",
|
232
|
+
"rdoc/site/0.2.0/Nucleon/Facade.html",
|
233
|
+
"rdoc/site/0.2.0/Nucleon/Gems.html",
|
234
|
+
"rdoc/site/0.2.0/Nucleon/Manager.html",
|
235
|
+
"rdoc/site/0.2.0/Nucleon/Mixin.html",
|
236
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Action.html",
|
237
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Action/Commit.html",
|
238
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Action/Project.html",
|
239
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Action/Push.html",
|
240
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Colors.html",
|
241
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/ConfigCollection.html",
|
242
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/ConfigOptions.html",
|
243
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Macro.html",
|
244
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Macro/ObjectInterface.html",
|
245
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Macro/PluginInterface.html",
|
246
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/Settings.html",
|
247
|
+
"rdoc/site/0.2.0/Nucleon/Mixin/SubConfig.html",
|
248
|
+
"rdoc/site/0.2.0/Nucleon/Parallel.html",
|
249
|
+
"rdoc/site/0.2.0/Nucleon/Parallel/ClassMethods.html",
|
250
|
+
"rdoc/site/0.2.0/Nucleon/Parallel/InstanceMethods.html",
|
251
|
+
"rdoc/site/0.2.0/Nucleon/Plugin.html",
|
252
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Action.html",
|
253
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Action/Option.html",
|
254
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Base.html",
|
255
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Command.html",
|
256
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Event.html",
|
257
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Extension.html",
|
258
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Project.html",
|
259
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Template.html",
|
260
|
+
"rdoc/site/0.2.0/Nucleon/Plugin/Translator.html",
|
261
|
+
"rdoc/site/0.2.0/Nucleon/Project.html",
|
262
|
+
"rdoc/site/0.2.0/Nucleon/Project/Git.html",
|
263
|
+
"rdoc/site/0.2.0/Nucleon/Project/Github.html",
|
264
|
+
"rdoc/site/0.2.0/Nucleon/Template.html",
|
265
|
+
"rdoc/site/0.2.0/Nucleon/Template/JSON.html",
|
266
|
+
"rdoc/site/0.2.0/Nucleon/Template/Wrapper.html",
|
267
|
+
"rdoc/site/0.2.0/Nucleon/Template/YAML.html",
|
268
|
+
"rdoc/site/0.2.0/Nucleon/Translator.html",
|
269
|
+
"rdoc/site/0.2.0/Nucleon/Translator/JSON.html",
|
270
|
+
"rdoc/site/0.2.0/Nucleon/Translator/YAML.html",
|
271
|
+
"rdoc/site/0.2.0/Nucleon/Util.html",
|
272
|
+
"rdoc/site/0.2.0/Nucleon/Util/CLI.html",
|
273
|
+
"rdoc/site/0.2.0/Nucleon/Util/CLI/Parser.html",
|
274
|
+
"rdoc/site/0.2.0/Nucleon/Util/Cache.html",
|
275
|
+
"rdoc/site/0.2.0/Nucleon/Util/Console.html",
|
276
|
+
"rdoc/site/0.2.0/Nucleon/Util/Data.html",
|
277
|
+
"rdoc/site/0.2.0/Nucleon/Util/Disk.html",
|
278
|
+
"rdoc/site/0.2.0/Nucleon/Util/Git.html",
|
279
|
+
"rdoc/site/0.2.0/Nucleon/Util/Liquid.html",
|
280
|
+
"rdoc/site/0.2.0/Nucleon/Util/Logger.html",
|
281
|
+
"rdoc/site/0.2.0/Nucleon/Util/Package.html",
|
282
|
+
"rdoc/site/0.2.0/Nucleon/Util/SSH.html",
|
283
|
+
"rdoc/site/0.2.0/Nucleon/Util/SSH/Keypair.html",
|
284
|
+
"rdoc/site/0.2.0/Nucleon/Util/Shell.html",
|
285
|
+
"rdoc/site/0.2.0/Nucleon/Util/Shell/Result.html",
|
286
|
+
"rdoc/site/0.2.0/README_rdoc.html",
|
287
|
+
"rdoc/site/0.2.0/TODO_rdoc.html",
|
288
|
+
"rdoc/site/0.2.0/created.rid",
|
289
|
+
"rdoc/site/0.2.0/images/add.png",
|
290
|
+
"rdoc/site/0.2.0/images/brick.png",
|
291
|
+
"rdoc/site/0.2.0/images/brick_link.png",
|
292
|
+
"rdoc/site/0.2.0/images/bug.png",
|
293
|
+
"rdoc/site/0.2.0/images/bullet_black.png",
|
294
|
+
"rdoc/site/0.2.0/images/bullet_toggle_minus.png",
|
295
|
+
"rdoc/site/0.2.0/images/bullet_toggle_plus.png",
|
296
|
+
"rdoc/site/0.2.0/images/date.png",
|
297
|
+
"rdoc/site/0.2.0/images/delete.png",
|
298
|
+
"rdoc/site/0.2.0/images/find.png",
|
299
|
+
"rdoc/site/0.2.0/images/loadingAnimation.gif",
|
300
|
+
"rdoc/site/0.2.0/images/macFFBgHack.png",
|
301
|
+
"rdoc/site/0.2.0/images/package.png",
|
302
|
+
"rdoc/site/0.2.0/images/page_green.png",
|
303
|
+
"rdoc/site/0.2.0/images/page_white_text.png",
|
304
|
+
"rdoc/site/0.2.0/images/page_white_width.png",
|
305
|
+
"rdoc/site/0.2.0/images/plugin.png",
|
306
|
+
"rdoc/site/0.2.0/images/ruby.png",
|
307
|
+
"rdoc/site/0.2.0/images/tag_blue.png",
|
308
|
+
"rdoc/site/0.2.0/images/tag_green.png",
|
309
|
+
"rdoc/site/0.2.0/images/transparent.png",
|
310
|
+
"rdoc/site/0.2.0/images/wrench.png",
|
311
|
+
"rdoc/site/0.2.0/images/wrench_orange.png",
|
312
|
+
"rdoc/site/0.2.0/images/zoom.png",
|
313
|
+
"rdoc/site/0.2.0/index.html",
|
314
|
+
"rdoc/site/0.2.0/js/darkfish.js",
|
315
|
+
"rdoc/site/0.2.0/js/jquery.js",
|
316
|
+
"rdoc/site/0.2.0/js/navigation.js",
|
317
|
+
"rdoc/site/0.2.0/js/search.js",
|
318
|
+
"rdoc/site/0.2.0/js/search_index.js",
|
319
|
+
"rdoc/site/0.2.0/js/searcher.js",
|
320
|
+
"rdoc/site/0.2.0/rdoc.css",
|
321
|
+
"rdoc/site/0.2.0/table_of_contents.html",
|
205
322
|
"spec/coral_mock_input.rb",
|
206
323
|
"spec/coral_test_kernel.rb",
|
207
324
|
"spec/core/util/console_spec.rb",
|
@@ -224,6 +341,7 @@ Gem::Specification.new do |s|
|
|
224
341
|
s.add_runtime_dependency(%q<i18n>, ["~> 0.6"])
|
225
342
|
s.add_runtime_dependency(%q<netrc>, ["~> 0.7"])
|
226
343
|
s.add_runtime_dependency(%q<highline>, ["~> 1.6"])
|
344
|
+
s.add_runtime_dependency(%q<erubis>, ["~> 2.7"])
|
227
345
|
s.add_runtime_dependency(%q<deep_merge>, ["~> 1.0"])
|
228
346
|
s.add_runtime_dependency(%q<multi_json>, ["~> 1.7"])
|
229
347
|
s.add_runtime_dependency(%q<sshkey>, ["~> 1.6"])
|
@@ -244,6 +362,7 @@ Gem::Specification.new do |s|
|
|
244
362
|
s.add_dependency(%q<i18n>, ["~> 0.6"])
|
245
363
|
s.add_dependency(%q<netrc>, ["~> 0.7"])
|
246
364
|
s.add_dependency(%q<highline>, ["~> 1.6"])
|
365
|
+
s.add_dependency(%q<erubis>, ["~> 2.7"])
|
247
366
|
s.add_dependency(%q<deep_merge>, ["~> 1.0"])
|
248
367
|
s.add_dependency(%q<multi_json>, ["~> 1.7"])
|
249
368
|
s.add_dependency(%q<sshkey>, ["~> 1.6"])
|
@@ -265,6 +384,7 @@ Gem::Specification.new do |s|
|
|
265
384
|
s.add_dependency(%q<i18n>, ["~> 0.6"])
|
266
385
|
s.add_dependency(%q<netrc>, ["~> 0.7"])
|
267
386
|
s.add_dependency(%q<highline>, ["~> 1.6"])
|
387
|
+
s.add_dependency(%q<erubis>, ["~> 2.7"])
|
268
388
|
s.add_dependency(%q<deep_merge>, ["~> 1.0"])
|
269
389
|
s.add_dependency(%q<multi_json>, ["~> 1.7"])
|
270
390
|
s.add_dependency(%q<sshkey>, ["~> 1.6"])
|