console_runner 0.2.0 → 0.2.2
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.
- checksums.yaml +4 -4
- data/console_runner.gemspec +2 -0
- data/lib/console_runner.rb +36 -28
- data/lib/console_runner/version.rb +1 -1
- metadata +29 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc6386bed597d9369e063222b56ca1957a8e1fcd
|
4
|
+
data.tar.gz: 1241a02a10882d19db7cd9934bd350b285830add
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d71bdfafb2521b87ce9d834172ce56aa8a00f21279290a5481316d215facafbae09eb0119a2aea797114020ea6f4c77272d56ef31f2d38301df40b7929be8e24
|
7
|
+
data.tar.gz: e44cd673693521010232612540c17774aa0dd20b197bccd8d94435f382835168ab01518329ae810f3d880f8386e48f50cc2e21bc0941bc43434a642aef7eb2bb
|
data/console_runner.gemspec
CHANGED
@@ -35,9 +35,11 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.add_development_dependency 'rake', '~> 10.0'
|
36
36
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
37
37
|
spec.add_development_dependency 'pry', '~> 0'
|
38
|
+
spec.add_development_dependency 'rb-readline', '~> 0'
|
38
39
|
spec.add_development_dependency 'simplecov', '~> 0'
|
39
40
|
spec.add_development_dependency 'coveralls', '~> 0.8'
|
40
41
|
spec.add_dependency 'optimist', '~> 3.0'
|
41
42
|
spec.add_dependency 'yard', '~> 0.9'
|
42
43
|
spec.add_dependency 'colorize', '~> 0.8'
|
44
|
+
spec.add_dependency 'tty-logger', '~> 0'
|
43
45
|
end
|
data/lib/console_runner.rb
CHANGED
@@ -1,15 +1,21 @@
|
|
1
1
|
require 'file_parser'
|
2
2
|
require 'command_line_parser'
|
3
|
+
require 'tty-logger'
|
3
4
|
require 'console_runner/version'
|
4
5
|
|
5
6
|
# console_runner logic is here
|
6
7
|
module ConsoleRunner
|
7
8
|
CommandLineParser.debug = ARGV.any? { |a| %w(-d --debug).include? a }
|
8
|
-
|
9
|
+
|
10
|
+
LOGGER = TTY::Logger.new do |config|
|
11
|
+
config.level = CommandLineParser.debug? ? :debug : :info
|
12
|
+
end
|
13
|
+
|
14
|
+
SEPARATOR = '=============================================================='.freeze
|
15
|
+
start_time = Time.now
|
9
16
|
begin
|
10
|
-
start_time = Time.now
|
11
17
|
success_status = true
|
12
|
-
|
18
|
+
LOGGER.info "Start Time: #{start_time}"
|
13
19
|
file_from_arg = ARGV.shift
|
14
20
|
raise ConsoleRunnerError, 'Specify file to be executed' unless file_from_arg
|
15
21
|
file_path = File.realpath file_from_arg
|
@@ -20,8 +26,8 @@ module ConsoleRunner
|
|
20
26
|
actions = file_parser.runnable_methods.select { |m| m.name.to_s == cmd }
|
21
27
|
if actions.count > 1
|
22
28
|
raise(
|
23
|
-
|
24
|
-
|
29
|
+
ConsoleRunnerError,
|
30
|
+
"Class and Instance methods have the same name (#{cmd}). Actions names should be unique"
|
25
31
|
)
|
26
32
|
end
|
27
33
|
action = actions.first
|
@@ -29,16 +35,14 @@ module ConsoleRunner
|
|
29
35
|
c_line_parser = CommandLineParser.new(file_parser)
|
30
36
|
c_line_parser.run(action)
|
31
37
|
|
32
|
-
debug_message = SEPARATOR
|
33
38
|
if c_line_parser.initialize_method
|
34
|
-
|
35
|
-
|
39
|
+
LOGGER.debug 'Executing #inistialize method...'
|
40
|
+
c_line_parser.initialize_method.cmd_opts.map { |k, v| LOGGER.debug "\t#{k} = #{v}" }
|
36
41
|
end
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
puts debug_message if CommandLineParser.debug?
|
42
|
+
LOGGER.debug "Executing ##{action.name} method..."
|
43
|
+
c_line_parser.method.cmd_opts.map { |k, v| LOGGER.debug "\t#{k} = #{v}" }
|
44
|
+
LOGGER.debug("Remaining arguments: #{ARGV.inspect}") if ARGV != []
|
45
|
+
LOGGER.info SEPARATOR
|
42
46
|
|
43
47
|
require file_path
|
44
48
|
class_full_name = file_parser.clazz.title
|
@@ -48,26 +52,30 @@ module ConsoleRunner
|
|
48
52
|
method_params = c_line_parser.method.params_array
|
49
53
|
|
50
54
|
case method_type
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
55
|
+
when :class
|
56
|
+
klass_obj.send(action.name, *method_params)
|
57
|
+
when :instance
|
58
|
+
init_method = c_line_parser.initialize_method
|
59
|
+
init_params = []
|
60
|
+
init_params = init_method.params_array if init_method
|
61
|
+
obj = klass_obj.new(*init_params)
|
62
|
+
obj.send(action.name, *method_params)
|
63
|
+
else
|
64
|
+
raise ConsoleRunnerError, "Unknown method type: #{method_type}"
|
61
65
|
end
|
62
66
|
rescue => e
|
63
67
|
success_status = false
|
64
68
|
raise e
|
65
69
|
ensure
|
66
|
-
finish_time = Time.now
|
67
70
|
status = success_status ? 'Success'.green : 'Error'.red
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
#{
|
71
|
+
finish_time = Time.now
|
72
|
+
LOGGER.info SEPARATOR
|
73
|
+
if success_status
|
74
|
+
LOGGER.info "Finish Time: #{finish_time} (Duration: #{((finish_time - start_time) / 60).round(2) } minutes)"
|
75
|
+
LOGGER.success 'Execution status: ' + status
|
76
|
+
else
|
77
|
+
LOGGER.error 'Execution status: ' + status
|
78
|
+
end
|
79
|
+
|
72
80
|
end
|
73
81
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: console_runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yury Karpovich
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rb-readline
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: simplecov
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +136,20 @@ dependencies:
|
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: '0.8'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: tty-logger
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
125
153
|
description: This gem provides you an ability to run any Ruby method from command-line
|
126
154
|
(no any code modifications required!!!)
|
127
155
|
email:
|