hammer_cli 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -5
  3. data/config/cli_config.template.yml +12 -3
  4. data/doc/creating_apipie_commands.md +53 -56
  5. data/doc/creating_commands.md +25 -19
  6. data/doc/developer_docs.md +3 -2
  7. data/doc/development_tips.md +3 -3
  8. data/doc/i18n.md +3 -3
  9. data/doc/installation.md +24 -207
  10. data/doc/installation_deb.md +48 -0
  11. data/doc/installation_gem.md +30 -0
  12. data/doc/installation_rpm.md +53 -0
  13. data/doc/installation_source.md +31 -0
  14. data/doc/option_builders.md +77 -0
  15. data/doc/option_normalizers.md +5 -5
  16. data/doc/writing_a_plugin.md +9 -9
  17. data/lib/hammer_cli.rb +1 -0
  18. data/lib/hammer_cli/abstract.rb +21 -8
  19. data/lib/hammer_cli/apipie.rb +1 -2
  20. data/lib/hammer_cli/apipie/command.rb +37 -64
  21. data/lib/hammer_cli/apipie/option_builder.rb +69 -0
  22. data/lib/hammer_cli/apipie/options.rb +1 -61
  23. data/lib/hammer_cli/clamp.rb +15 -0
  24. data/lib/hammer_cli/i18n.rb +14 -2
  25. data/lib/hammer_cli/logger.rb +1 -1
  26. data/lib/hammer_cli/option_builder.rb +43 -0
  27. data/lib/hammer_cli/options/option_definition.rb +6 -0
  28. data/lib/hammer_cli/output/adapter/abstract.rb +2 -2
  29. data/lib/hammer_cli/output/adapter/base.rb +6 -3
  30. data/lib/hammer_cli/output/adapter/table.rb +19 -2
  31. data/lib/hammer_cli/output/definition.rb +4 -0
  32. data/lib/hammer_cli/output/fields.rb +9 -0
  33. data/lib/hammer_cli/output/formatters.rb +20 -8
  34. data/lib/hammer_cli/utils.rb +1 -1
  35. data/lib/hammer_cli/version.rb +1 -1
  36. data/locale/hammer-cli.pot +103 -79
  37. data/test/unit/abstract_test.rb +62 -0
  38. data/test/unit/apipie/command_test.rb +12 -197
  39. data/test/unit/apipie/option_builder_test.rb +110 -0
  40. data/test/unit/i18n_test.rb +50 -0
  41. data/test/unit/option_builder_test.rb +33 -0
  42. data/test/unit/output/adapter/abstract_test.rb +26 -3
  43. data/test/unit/output/adapter/base_test.rb +20 -3
  44. data/test/unit/output/adapter/csv_test.rb +2 -2
  45. data/test/unit/output/adapter/table_test.rb +24 -1
  46. data/test/unit/output/definition_test.rb +13 -0
  47. data/test/unit/output/formatters_test.rb +17 -1
  48. data/test/unit/utils_test.rb +1 -1
  49. metadata +101 -88
  50. data/lib/hammer_cli/apipie/read_command.rb +0 -41
  51. data/lib/hammer_cli/apipie/write_command.rb +0 -49
  52. data/test/unit/apipie/read_command_test.rb +0 -37
  53. data/test/unit/apipie/write_command_test.rb +0 -41
@@ -1,41 +0,0 @@
1
- require 'hammer_cli/output/dsl'
2
-
3
- module HammerCLI::Apipie
4
-
5
- class ReadCommand < Command
6
-
7
- def execute
8
- d = retrieve_data
9
- logger.debug "Retrieved data: " + d.ai(:raw => true) if HammerCLI::Settings.get(:log_api_calls)
10
- print_data d
11
- return HammerCLI::EX_OK
12
- end
13
-
14
- protected
15
- def retrieve_data
16
- raise "resource or action not defined" unless self.class.resource_defined?
17
- logger.debug request_params.ai
18
- if resource && resource.has_action?(action)
19
- resource.call(action, request_params, request_headers)
20
- else
21
- raise HammerCLI::OperationNotSupportedError, "The server does not support such operation."
22
- end
23
- end
24
-
25
- def print_data(records)
26
- print_collection(output_definition, records)
27
- end
28
-
29
- def request_headers
30
- {}
31
- end
32
-
33
- def request_params
34
- method_options
35
- end
36
-
37
- end
38
-
39
- end
40
-
41
-
@@ -1,49 +0,0 @@
1
- require 'hammer_cli/messages'
2
-
3
- module HammerCLI::Apipie
4
-
5
- class WriteCommand < Command
6
-
7
- include HammerCLI::Messages
8
-
9
- def execute
10
- print_success_message(send_request)
11
- return HammerCLI::EX_OK
12
- end
13
-
14
- protected
15
-
16
- def success_message_params(response)
17
- response
18
- end
19
-
20
- def print_success_message(response)
21
- if success_message
22
- print_message(
23
- success_message,
24
- success_message_params(response)
25
- )
26
- end
27
- end
28
-
29
- def send_request
30
- if resource && resource.has_action?(action)
31
- resource.call(action, request_params, request_headers)
32
- else
33
- raise HammerCLI::OperationNotSupportedError, "The server does not support such operation."
34
- end
35
- end
36
-
37
- def request_headers
38
- {}
39
- end
40
-
41
- def request_params
42
- method_options
43
- end
44
-
45
- end
46
-
47
- end
48
-
49
-
@@ -1,37 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '../test_helper')
2
-
3
-
4
- describe HammerCLI::Apipie::ReadCommand do
5
-
6
- class TestReadCommand < HammerCLI::Apipie::ReadCommand
7
- def self.resource_config
8
- { :apidoc_cache_dir => 'test/unit/fixtures/apipie', :apidoc_cache_name => 'architectures' }
9
- end
10
- end
11
-
12
- let(:cmd_class) { TestReadCommand.dup }
13
- let(:cmd) { cmd_class.new("", { :adapter => :silent, :interactive => false }) }
14
- let(:cmd_run) { cmd.run([]) }
15
-
16
- it "should raise exception when no action is defined" do
17
- cmd.stubs(:handle_exception).returns(HammerCLI::EX_SOFTWARE)
18
- cmd_run.must_equal HammerCLI::EX_SOFTWARE
19
- end
20
-
21
- context "resource defined" do
22
-
23
- before :each do
24
- HammerCLI::Connection.drop_all
25
- ApipieBindings::API.any_instance.stubs(:call).returns([])
26
- cmd_class.resource :architectures, :index
27
- end
28
-
29
- it "should perform a call to api when resource is defined" do
30
- cmd_run.must_equal 0
31
- end
32
-
33
- end
34
-
35
-
36
- end
37
-
@@ -1,41 +0,0 @@
1
- require File.join(File.dirname(__FILE__), '../test_helper')
2
-
3
- describe HammerCLI::Apipie::WriteCommand do
4
-
5
- class TestWriteCommand < HammerCLI::Apipie::WriteCommand
6
- def self.resource_config
7
- { :apidoc_cache_dir => 'test/unit/fixtures/apipie', :apidoc_cache_name => 'architectures' }
8
- end
9
- end
10
-
11
- let(:cmd) { TestWriteCommand.new("") }
12
- let(:cmd_run) { cmd.run([]) }
13
-
14
- it "should raise exception when no action is defined" do
15
- cmd.stubs(:handle_exception).returns(HammerCLI::EX_SOFTWARE)
16
- cmd_run.must_equal HammerCLI::EX_SOFTWARE
17
- end
18
-
19
- context "resource defined" do
20
-
21
- before :each do
22
- HammerCLI::Connection.drop_all
23
- ApipieBindings::API.any_instance.stubs(:call).returns([])
24
- cmd.class.resource :architectures, :index
25
- end
26
-
27
- it "should perform a call to api when resource is defined" do
28
- cmd_run.must_equal 0
29
- end
30
-
31
- context "output" do
32
- it "should print success message" do
33
- cmd.class.success_message "XXX"
34
- proc { cmd_run }.must_output /.*XXX.*/
35
- end
36
- end
37
-
38
- end
39
-
40
- end
41
-