rcoli 0.5.4 → 0.5.5
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/Gemfile.lock +1 -1
- data/lib/rcoli/model.rb +15 -2
- data/lib/rcoli/utils.rb +25 -0
- data/lib/rcoli/version.rb +1 -1
- data/lib/rcoli.rb +9 -1
- metadata +5 -4
data/Gemfile.lock
CHANGED
data/lib/rcoli/model.rb
CHANGED
@@ -56,7 +56,7 @@ module RCoLi
|
|
56
56
|
target = self.parent ? :options : :global_options
|
57
57
|
option.keys.each{|key| result.send(target)[key] = value}
|
58
58
|
else
|
59
|
-
raise InvalidCommand, "#
|
59
|
+
raise InvalidCommand, "'#{arg}' is not a valid option"
|
60
60
|
end
|
61
61
|
else
|
62
62
|
if (cmd = find_command(arg))
|
@@ -184,13 +184,26 @@ module RCoLi
|
|
184
184
|
put_default_values(result)
|
185
185
|
parse_args(args, result)
|
186
186
|
if result.command
|
187
|
+
|
188
|
+
# command has to have the action block
|
187
189
|
action = result.command.get_action
|
188
190
|
raise "Invalid configuration. Missing action block." unless action
|
191
|
+
|
192
|
+
# enable/disable logging level DEBUG
|
193
|
+
if (result.global_options['debug'])
|
194
|
+
context.instance_exec do
|
195
|
+
@log.level = Logger::DEBUG
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
# execution of the pre block
|
189
200
|
context.instance_exec(result.global_options, result.options, result.arguments, &@pre_action) if (@pre_action and !result.command.solitaire?)
|
201
|
+
# execution of the main block
|
190
202
|
context.instance_exec(result.global_options, result.options, result.arguments, &action)
|
203
|
+
# execution of the post block
|
191
204
|
context.instance_exec(result.global_options, result.options, result.arguments, &@post_action) if (@post_action and !result.command.solitaire?)
|
192
205
|
else
|
193
|
-
say "
|
206
|
+
say "This feature is comming soon. Now you should execute '#{value_of_name} help'"
|
194
207
|
end
|
195
208
|
end
|
196
209
|
|
data/lib/rcoli/utils.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'logger'
|
2
|
+
require 'singleton'
|
3
|
+
|
4
|
+
module RCoLi
|
5
|
+
|
6
|
+
class ApplicationContext
|
7
|
+
|
8
|
+
include Singleton
|
9
|
+
|
10
|
+
attr_accessor :debug
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
@log = Logger.new(STDOUT)
|
17
|
+
@log.level = Logger::INFO
|
18
|
+
@log.formatter = proc do |severity, datetime, progname, msg|
|
19
|
+
"#{msg}\n"
|
20
|
+
end
|
21
|
+
|
22
|
+
def log
|
23
|
+
@log
|
24
|
+
end
|
25
|
+
|
data/lib/rcoli/version.rb
CHANGED
data/lib/rcoli.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'highline/import'
|
2
|
+
require 'rcoli/utils'
|
2
3
|
require 'rcoli/extensions'
|
3
4
|
require 'rcoli/help'
|
4
5
|
require 'rcoli/model'
|
@@ -8,6 +9,11 @@ require 'rcoli/model'
|
|
8
9
|
|
9
10
|
def application(id, &block)
|
10
11
|
@program.name id
|
12
|
+
|
13
|
+
@program.switch long: 'debug' do |s|
|
14
|
+
s.description "Turn on debugging"
|
15
|
+
end
|
16
|
+
|
11
17
|
@program.command(:help) do |c|
|
12
18
|
c.description "Display help documentation"
|
13
19
|
c.solitaire
|
@@ -15,14 +21,16 @@ def application(id, &block)
|
|
15
21
|
@program.help args
|
16
22
|
end
|
17
23
|
end
|
24
|
+
|
18
25
|
@program.instance_eval &block
|
26
|
+
|
19
27
|
end
|
20
28
|
|
21
29
|
at_exit {
|
22
30
|
begin
|
23
31
|
@program.execute(ARGV, self)
|
24
32
|
rescue InvalidCommand => e
|
25
|
-
say "#{@program.value_of_name}: #{e.message}. See '#{@program.value_of_name}
|
33
|
+
say "#{@program.value_of_name}: #{e.message}. See '#{@program.value_of_name} help'"
|
26
34
|
end
|
27
35
|
|
28
36
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rcoli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.5
|
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-03-
|
12
|
+
date: 2013-03-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: highline
|
@@ -61,6 +61,7 @@ files:
|
|
61
61
|
- lib/rcoli/model.rb
|
62
62
|
- lib/rcoli/templates/help.erb
|
63
63
|
- lib/rcoli/templates/help_command.erb
|
64
|
+
- lib/rcoli/utils.rb
|
64
65
|
- lib/rcoli/version.rb
|
65
66
|
- rcoli.gemspec
|
66
67
|
homepage: https://github.com/jiripisa/rcoli
|
@@ -77,7 +78,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
78
|
version: '0'
|
78
79
|
segments:
|
79
80
|
- 0
|
80
|
-
hash:
|
81
|
+
hash: -3657344483658858464
|
81
82
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
83
|
none: false
|
83
84
|
requirements:
|
@@ -86,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
87
|
version: '0'
|
87
88
|
segments:
|
88
89
|
- 0
|
89
|
-
hash:
|
90
|
+
hash: -3657344483658858464
|
90
91
|
requirements: []
|
91
92
|
rubyforge_project:
|
92
93
|
rubygems_version: 1.8.24
|