hammer_cli 0.0.13 → 0.0.14
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/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
|