hammer_cli 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/hammer +8 -13
- data/lib/hammer_cli/main.rb +2 -3
- data/lib/hammer_cli/modules.rb +51 -0
- data/lib/hammer_cli/utils.rb +5 -0
- data/lib/hammer_cli/version.rb +1 -1
- data/lib/hammer_cli.rb +1 -0
- data/test/unit/modules_test.rb +82 -0
- data/test/unit/utils_test.rb +13 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc846bf971738baff5d9a47ba375a4faa698ddff
|
4
|
+
data.tar.gz: ec7445b7048131184372d9d6aabfa00c2bc27d77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49c74f5aad4024fd6074135d1d779e2bcf6b9debafddb2879672e938c1c0da0901c88719b70a9872145539d878c3d8660777bb535017436095790c6b2ea4662e
|
7
|
+
data.tar.gz: e84343ad493a84d1fb21e8e1cf7e36ffd63b6737fa4179b531b132a3ca3e2f050e969e40b905ad672f2c2f145e111754431fda7f89f3edb17df3b773b6490be2
|
data/bin/hammer
CHANGED
@@ -37,7 +37,8 @@ if preparser.verbose?
|
|
37
37
|
root_logger.appenders = root_logger.appenders << ::Logging.appenders.stderr(:layout => HammerCLI::Logger::COLOR_LAYOUT)
|
38
38
|
end
|
39
39
|
|
40
|
-
|
40
|
+
require 'hammer_cli/version'
|
41
|
+
hammer_version = HammerCLI.version.to_s
|
41
42
|
logger.info "Initialization of Hammer CLI (#{hammer_version}) has started..."
|
42
43
|
|
43
44
|
# log which config was loaded (now when we have logging)
|
@@ -49,18 +50,12 @@ end
|
|
49
50
|
require 'hammer_cli'
|
50
51
|
|
51
52
|
# load modules set in config
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
handler = HammerCLI::ExceptionHandler.new(:context => {}, :adapter => :base)
|
59
|
-
handler.handle_exception(e)
|
60
|
-
exit HammerCLI::EX_SOFTWARE
|
61
|
-
end
|
62
|
-
module_version = Gem.loaded_specs[m].version.to_s
|
63
|
-
logger.info "Extension module #{m} (#{module_version}) loaded"
|
53
|
+
begin
|
54
|
+
HammerCLI::Modules.load_all
|
55
|
+
rescue => e
|
56
|
+
handler = HammerCLI::ExceptionHandler.new(:context => {}, :adapter => :base)
|
57
|
+
handler.handle_exception(e)
|
58
|
+
exit HammerCLI::EX_SOFTWARE
|
64
59
|
end
|
65
60
|
|
66
61
|
exit HammerCLI::MainCommand.run || HammerCLI::EX_OK
|
data/lib/hammer_cli/main.rb
CHANGED
@@ -14,9 +14,8 @@ module HammerCLI
|
|
14
14
|
|
15
15
|
option "--version", :flag, "show version" do
|
16
16
|
puts "hammer (%s)" % HammerCLI.version
|
17
|
-
|
18
|
-
|
19
|
-
module_version = Gem.loaded_specs[m].version.to_s
|
17
|
+
HammerCLI::Modules.names.each do |m|
|
18
|
+
module_version = HammerCLI::Modules.find_by_name(m).version
|
20
19
|
puts " * #{m} (#{module_version})"
|
21
20
|
end
|
22
21
|
exit(HammerCLI::EX_OK)
|
@@ -0,0 +1,51 @@
|
|
1
|
+
|
2
|
+
module HammerCLI
|
3
|
+
|
4
|
+
class Modules
|
5
|
+
|
6
|
+
def self.names
|
7
|
+
HammerCLI::Settings.get(:modules) || []
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.find_by_name(name)
|
11
|
+
possible_names = [
|
12
|
+
name.camelize,
|
13
|
+
name.camelize.gsub("Cli", "CLI")
|
14
|
+
]
|
15
|
+
|
16
|
+
possible_names.each do |n|
|
17
|
+
return Object.const_get(n) if Object.const_defined?(n)
|
18
|
+
end
|
19
|
+
return nil
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.load(name)
|
23
|
+
begin
|
24
|
+
require_module(name)
|
25
|
+
rescue Exception => e
|
26
|
+
logger.error "Error while loading module #{name}"
|
27
|
+
raise e
|
28
|
+
end
|
29
|
+
|
30
|
+
version = find_by_name(name).version
|
31
|
+
logger.info "Extension module #{name} (#{version}) loaded"
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.require_module(name)
|
35
|
+
require name
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.load_all
|
39
|
+
HammerCLI::Modules.names.each do |m|
|
40
|
+
Modules.load(m)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
protected
|
45
|
+
def self.logger
|
46
|
+
Logging.logger['Modules']
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
data/lib/hammer_cli/utils.rb
CHANGED
data/lib/hammer_cli/version.rb
CHANGED
data/lib/hammer_cli.rb
CHANGED
@@ -0,0 +1,82 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
|
4
|
+
describe HammerCLI::Modules do
|
5
|
+
|
6
|
+
module HammerCLITom
|
7
|
+
def self.version
|
8
|
+
Gem::Version.new "0.0.1"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
module HammerCliJerry
|
13
|
+
def self.version
|
14
|
+
Gem::Version.new "0.0.2"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
before :each do
|
19
|
+
HammerCLI::Settings.clear
|
20
|
+
HammerCLI::Settings.load({
|
21
|
+
:modules => ["hammer_cli_tom", "hammer_cli_jerry"]
|
22
|
+
})
|
23
|
+
|
24
|
+
@log_output = Logging::Appenders['__test__']
|
25
|
+
@log_output.reset
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "names" do
|
29
|
+
it "must return list of modules" do
|
30
|
+
HammerCLI::Modules.names.must_equal ["hammer_cli_tom", "hammer_cli_jerry"]
|
31
|
+
end
|
32
|
+
|
33
|
+
it "must return empty array by default" do
|
34
|
+
HammerCLI::Settings.clear
|
35
|
+
HammerCLI::Modules.names.must_equal []
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "find by name" do
|
40
|
+
it "must return nil if the module does not exist" do
|
41
|
+
HammerCLI::Modules.find_by_name("hammer_cli_unknown").must_equal nil
|
42
|
+
end
|
43
|
+
|
44
|
+
it "must must find the module" do
|
45
|
+
HammerCLI::Modules.find_by_name("hammer_cli_jerry").must_equal HammerCliJerry
|
46
|
+
end
|
47
|
+
|
48
|
+
it "must find the module with capital CLI in it's name" do
|
49
|
+
HammerCLI::Modules.find_by_name("hammer_cli_tom").must_equal HammerCLITom
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "load all modules" do
|
54
|
+
|
55
|
+
it "must call load for each module" do
|
56
|
+
HammerCLI::Modules.expects(:load).with("hammer_cli_tom")
|
57
|
+
HammerCLI::Modules.expects(:load).with("hammer_cli_jerry")
|
58
|
+
HammerCLI::Modules.load_all
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "load a module" do
|
64
|
+
it "must require a module" do
|
65
|
+
HammerCLI::Modules.expects(:require_module).with("hammer_cli_tom")
|
66
|
+
HammerCLI::Modules.load("hammer_cli_tom")
|
67
|
+
end
|
68
|
+
|
69
|
+
it "must log module's name and version" do
|
70
|
+
HammerCLI::Modules.expects(:require_module).with("hammer_cli_tom")
|
71
|
+
HammerCLI::Modules.load("hammer_cli_tom")
|
72
|
+
@log_output.readline.strip.must_equal "INFO Modules : Extension module hammer_cli_tom (0.0.1) loaded"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
it "must log an error if the load fails" do
|
77
|
+
proc { HammerCLI::Modules.load("hammer_cli_tom") }.must_raise LoadError
|
78
|
+
@log_output.readline.strip.must_equal "ERROR Modules : Error while loading module hammer_cli_tom"
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
data/test/unit/utils_test.rb
CHANGED
@@ -31,5 +31,18 @@ describe String do
|
|
31
31
|
|
32
32
|
end
|
33
33
|
|
34
|
+
|
35
|
+
context "camelize" do
|
36
|
+
|
37
|
+
it "should camelize string with underscores" do
|
38
|
+
"one_two_three".camelize.must_equal "OneTwoThree"
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should not camelize string with dashes" do
|
42
|
+
"one-two-three".camelize.must_equal "One-two-three"
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
34
47
|
end
|
35
48
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hammer_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Bačovský
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-12-
|
12
|
+
date: 2013-12-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: clamp
|
@@ -154,6 +154,7 @@ files:
|
|
154
154
|
- lib/hammer_cli/exception_handler.rb
|
155
155
|
- lib/hammer_cli/output.rb
|
156
156
|
- lib/hammer_cli/shell.rb
|
157
|
+
- lib/hammer_cli/modules.rb
|
157
158
|
- lib/hammer_cli/utils.rb
|
158
159
|
- lib/hammer_cli/output/adapter/table.rb
|
159
160
|
- lib/hammer_cli/output/adapter/base.rb
|
@@ -185,6 +186,7 @@ files:
|
|
185
186
|
- test/unit/exception_handler_test.rb
|
186
187
|
- test/unit/main_test.rb
|
187
188
|
- test/unit/test_helper.rb
|
189
|
+
- test/unit/modules_test.rb
|
188
190
|
- test/unit/abstract_test.rb
|
189
191
|
- test/unit/output/adapter/base_test.rb
|
190
192
|
- test/unit/output/adapter/csv_test.rb
|
@@ -246,6 +248,7 @@ test_files:
|
|
246
248
|
- test/unit/exception_handler_test.rb
|
247
249
|
- test/unit/main_test.rb
|
248
250
|
- test/unit/test_helper.rb
|
251
|
+
- test/unit/modules_test.rb
|
249
252
|
- test/unit/abstract_test.rb
|
250
253
|
- test/unit/output/adapter/base_test.rb
|
251
254
|
- test/unit/output/adapter/csv_test.rb
|