cft_smartcloud 0.2.2 → 0.3.0

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.
Files changed (93) hide show
  1. data/.gitignore +1 -0
  2. data/CHANGELOG +11 -0
  3. data/README.md +106 -0
  4. data/VERSION +1 -1
  5. data/bin/cft_smartcloud +33 -7
  6. data/bin/smartcloud +33 -7
  7. data/cft_smartcloud.gemspec +84 -20
  8. data/lib/config/config.yml +2 -0
  9. data/lib/curl_client.rb +42 -0
  10. data/lib/rest-client-1.6.6-master/.gitignore +6 -0
  11. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/README.rdoc +10 -1
  12. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/Rakefile +0 -0
  13. data/lib/rest-client-1.6.6-master/VERSION +1 -0
  14. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/bin/restclient +5 -4
  15. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/history.md +22 -0
  16. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/rest-client.rb +0 -0
  17. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/rest_client.rb +0 -0
  18. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/restclient/abstract_response.rb +0 -0
  19. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/restclient/exceptions.rb +0 -0
  20. data/lib/rest-client-1.6.6-master/lib/restclient/net_http_ext.rb +55 -0
  21. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/restclient/payload.rb +17 -2
  22. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/restclient/raw_response.rb +0 -0
  23. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/restclient/request.rb +21 -19
  24. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/restclient/resource.rb +0 -0
  25. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/restclient/response.rb +0 -0
  26. data/lib/{rest-client-1.6.3 → rest-client-1.6.6-master}/lib/restclient.rb +0 -0
  27. data/lib/rest-client-1.6.6-master/rest-client.gemspec +76 -0
  28. data/lib/rest-client-1.6.6-master/spec/abstract_response_spec.rb +85 -0
  29. data/lib/rest-client-1.6.6-master/spec/base.rb +16 -0
  30. data/lib/rest-client-1.6.6-master/spec/exceptions_spec.rb +98 -0
  31. data/lib/rest-client-1.6.6-master/spec/integration/certs/equifax.crt +19 -0
  32. data/lib/rest-client-1.6.6-master/spec/integration/certs/verisign.crt +14 -0
  33. data/lib/rest-client-1.6.6-master/spec/integration/request_spec.rb +25 -0
  34. data/lib/rest-client-1.6.6-master/spec/integration_spec.rb +38 -0
  35. data/lib/rest-client-1.6.6-master/spec/master_shake.jpg +0 -0
  36. data/lib/rest-client-1.6.6-master/spec/payload_spec.rb +234 -0
  37. data/lib/rest-client-1.6.6-master/spec/raw_response_spec.rb +17 -0
  38. data/lib/rest-client-1.6.6-master/spec/request2_spec.rb +40 -0
  39. data/lib/rest-client-1.6.6-master/spec/request_spec.rb +536 -0
  40. data/lib/rest-client-1.6.6-master/spec/resource_spec.rb +134 -0
  41. data/lib/rest-client-1.6.6-master/spec/response_spec.rb +169 -0
  42. data/lib/rest-client-1.6.6-master/spec/restclient_spec.rb +73 -0
  43. data/lib/slop-2.3.1/.gemtest +0 -0
  44. data/lib/slop-2.3.1/.gitignore +6 -0
  45. data/lib/slop-2.3.1/.yardopts +6 -0
  46. data/lib/slop-2.3.1/CHANGES.md +137 -0
  47. data/lib/slop-2.3.1/LICENSE +20 -0
  48. data/lib/slop-2.3.1/README.md +293 -0
  49. data/lib/slop-2.3.1/Rakefile +6 -0
  50. data/lib/slop-2.3.1/lib/slop.rb +1022 -0
  51. data/lib/slop-2.3.1/slop.gemspec +11 -0
  52. data/lib/slop-2.3.1/test/commands_test.rb +151 -0
  53. data/lib/slop-2.3.1/test/helper.rb +13 -0
  54. data/lib/slop-2.3.1/test/option_test.rb +198 -0
  55. data/lib/slop-2.3.1/test/slop_test.rb +574 -0
  56. data/lib/smartcloud.rb +186 -116
  57. data/lib/terminal-table-1.4.4/History.rdoc +53 -0
  58. data/lib/terminal-table-1.4.4/Manifest +24 -0
  59. data/lib/terminal-table-1.4.4/README.rdoc +240 -0
  60. data/lib/terminal-table-1.4.4/Rakefile +15 -0
  61. data/lib/terminal-table-1.4.4/Todo.rdoc +14 -0
  62. data/lib/terminal-table-1.4.4/examples/examples.rb +80 -0
  63. data/lib/terminal-table-1.4.4/lib/terminal-table/cell.rb +88 -0
  64. data/lib/terminal-table-1.4.4/lib/terminal-table/core_ext.rb +8 -0
  65. data/lib/terminal-table-1.4.4/lib/terminal-table/import.rb +4 -0
  66. data/lib/terminal-table-1.4.4/lib/terminal-table/row.rb +48 -0
  67. data/lib/terminal-table-1.4.4/lib/terminal-table/separator.rb +14 -0
  68. data/lib/terminal-table-1.4.4/lib/terminal-table/style.rb +61 -0
  69. data/lib/terminal-table-1.4.4/lib/terminal-table/table.rb +217 -0
  70. data/lib/terminal-table-1.4.4/lib/terminal-table/table_helper.rb +9 -0
  71. data/lib/terminal-table-1.4.4/lib/terminal-table/version.rb +6 -0
  72. data/lib/terminal-table-1.4.4/lib/terminal-table.rb +27 -0
  73. data/lib/terminal-table-1.4.4/spec/cell_spec.rb +54 -0
  74. data/lib/terminal-table-1.4.4/spec/core_ext_spec.rb +18 -0
  75. data/lib/terminal-table-1.4.4/spec/import_spec.rb +11 -0
  76. data/lib/terminal-table-1.4.4/spec/spec.opts +1 -0
  77. data/lib/terminal-table-1.4.4/spec/spec_helper.rb +8 -0
  78. data/lib/terminal-table-1.4.4/spec/table_spec.rb +525 -0
  79. data/lib/terminal-table-1.4.4/tasks/docs.rake +13 -0
  80. data/lib/terminal-table-1.4.4/tasks/gemspec.rake +3 -0
  81. data/lib/terminal-table-1.4.4/tasks/spec.rake +25 -0
  82. data/lib/terminal-table-1.4.4/terminal-table.gemspec +30 -0
  83. data/responses/addresses +26 -0
  84. data/responses/addresses.blank +2 -0
  85. data/responses/instances +74 -0
  86. data/responses/keys +33 -0
  87. data/responses/locations +142 -0
  88. data/responses/offerings_image +3780 -0
  89. data/responses/storage +379 -0
  90. metadata +86 -22
  91. data/README.rdoc +0 -75
  92. data/lib/rest-client-1.6.3/VERSION +0 -1
  93. data/lib/rest-client-1.6.3/lib/restclient/net_http_ext.rb +0 -21
@@ -0,0 +1,11 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'slop'
3
+ s.version = '2.3.1'
4
+ s.summary = 'Option gathering made easy'
5
+ s.description = 'A simple DSL for gathering options and parsing the command line'
6
+ s.author = 'Lee Jarvis'
7
+ s.email = 'lee@jarvis.co'
8
+ s.homepage = 'http://github.com/injekt/slop'
9
+ s.files = `git ls-files`.split("\n")
10
+ s.test_files = `git ls-files -- test/*`.split("\n")
11
+ end
@@ -0,0 +1,151 @@
1
+ require 'helper'
2
+
3
+ class CommandsTest < TestCase
4
+ test 'creating commands' do
5
+ slop = Slop.new do
6
+ command :foo do on :f, :foo, 'foo option' end
7
+ command :bar do on :f, :foo; on :b, :bar, true end
8
+ end
9
+
10
+ slop.commands.each_value do |command|
11
+ assert_kind_of Slop, command
12
+ end
13
+
14
+ assert 'foo option', slop.commands[:foo].options[:foo].description
15
+
16
+ slop.parse %w/bar --bar baz/
17
+ assert 'baz', slop.commands[:bar][:bar]
18
+ assert_nil slop.commands['bar']
19
+ end
20
+
21
+ test 'repeating existing commands' do
22
+ slop = Slop.new
23
+ assert slop.command :foo
24
+ assert_raises(ArgumentError) { slop.command :foo }
25
+ end
26
+
27
+ test 'commands inheriting options' do
28
+ slop = Slop.new :strict do
29
+ command :foo do end
30
+ end
31
+ assert slop.commands[:foo].instance_variable_get(:@strict)
32
+ end
33
+
34
+ test 'commands setting options' do
35
+ slop = Slop.new :strict => false do
36
+ command :foo, :strict => true do end
37
+ end
38
+ assert slop.commands[:foo].instance_variable_get(:@strict)
39
+ end
40
+
41
+ test 'inception' do
42
+ slop = Slop.new do
43
+ command(:foo) { command(:bar) { command(:baz) { on :f, 'D:' } } }
44
+ end
45
+ desc = slop.commands[:foo].commands[:bar].commands[:baz].options[:f].description
46
+ assert_equal 'D:', desc
47
+ end
48
+
49
+ test 'commands with banners' do
50
+ slop = Slop.new do
51
+ command(:foo, :banner => 'bar') { }
52
+ command(:bar) { banner 'bar' }
53
+ end
54
+ assert_equal 'bar', slop.commands[:foo].banner
55
+ assert_equal 'bar', slop.commands[:bar].banner
56
+ end
57
+
58
+ test 'executing on_empty on separate commands' do
59
+ incmd = inslop = false
60
+ slop = Slop.new do
61
+ command(:foo) { on(:bar) {}; on_empty { incmd = true }}
62
+ on_empty { inslop = true }
63
+ end
64
+ slop.parse %w//
65
+ assert inslop
66
+ refute incmd
67
+ inslop = false
68
+ slop.parse %w/foo/
69
+ assert incmd
70
+ refute inslop
71
+ end
72
+
73
+ test 'executing blocks' do
74
+ foo = bar = nil
75
+ slop = Slop.new
76
+ slop.command :foo do
77
+ on :v, :verbose
78
+ execute { |o, a| foo = o.verbose? }
79
+ end
80
+ slop.command :bar do
81
+ on :v, :verbose
82
+ execute { |o, a| bar = o.verbose? }
83
+ end
84
+ slop.parse %w[ foo --verbose ]
85
+
86
+ assert foo
87
+ refute bar
88
+ end
89
+
90
+ test 'executing blocks and command arguments' do
91
+ opts = args = nil
92
+ slop = Slop.new
93
+ slop.command :foo do
94
+ execute do |o, a|
95
+ opts = o
96
+ args = a
97
+ end
98
+ end
99
+ slop.parse %w[ foo bar baz ]
100
+
101
+ assert_equal %w[ bar baz ], args
102
+ assert_kind_of Slop, opts
103
+ end
104
+
105
+ test 'executing nested commands' do
106
+ args = nil
107
+ slop = Slop.new
108
+ slop.command :foo do
109
+ command :bar do
110
+ execute { |o, a| args = a }
111
+ end
112
+ end
113
+ slop.parse %w[ foo bar baz ]
114
+
115
+ assert_equal %w[ baz ], args
116
+ end
117
+
118
+ test 'aliases' do
119
+ slop = Slop.new
120
+ slop.command :foo, :alias => :bar
121
+ slop.command :baz, :aliases => [:lorem, :ipsum]
122
+
123
+ assert_equal [:bar], slop.commands[:foo].aliases
124
+ assert_equal [:lorem, :ipsum], slop.commands[:baz].aliases
125
+
126
+ assert_raises(ArgumentError) { slop.command :lorem }
127
+ end
128
+
129
+ test 'command completion' do
130
+ foo = bar = bara = nil
131
+ slop = Slop.new
132
+ slop.command(:foo) { execute { foo = true } }
133
+ slop.parse %w[ fo ]
134
+ assert foo
135
+
136
+ slop.command(:bar) { execute { bar = true } }
137
+ slop.command(:bara) { execute { bara = true } }
138
+ slop.parse %w[ bar ]
139
+ assert bar
140
+ refute bara
141
+ end
142
+
143
+ test 'ambiguous command completion' do
144
+ io = StringIO.new
145
+ slop = Slop.new(:io => io)
146
+ slop.command :bar
147
+ slop.command :baz
148
+ slop.parse %w[ ba ]
149
+ assert_equal "Command 'ba' is ambiguous:\n bar, baz\n", io.string
150
+ end
151
+ end
@@ -0,0 +1,13 @@
1
+ unless Object.const_defined? 'Slop'
2
+ $:.unshift File.expand_path('../../lib', __FILE__)
3
+ require 'slop'
4
+ end
5
+
6
+ require 'minitest/autorun'
7
+ require 'stringio'
8
+
9
+ class TestCase < MiniTest::Unit::TestCase
10
+ def self.test(name, &block)
11
+ define_method("test_#{name.gsub(/\W/, '_')}", &block) if block
12
+ end
13
+ end
@@ -0,0 +1,198 @@
1
+ require 'helper'
2
+
3
+ class OptionTest < TestCase
4
+ def option(*args, &block)
5
+ Slop.new.option(*args, &block)
6
+ end
7
+
8
+ def option_with_argument(*args, &block)
9
+ options = args.shift
10
+ slop = Slop.new
11
+ option = slop.opt(*args)
12
+ slop.parse(options)
13
+ slop.find {|opt| opt.key == option.key }
14
+ end
15
+
16
+ def option_value(*args, &block)
17
+ option_with_argument(*args, &block).argument_value
18
+ end
19
+
20
+ test 'expects an argument if argument is true or optional is false' do
21
+ assert option(:f, :foo, 'foo', true).expects_argument?
22
+ assert option(:f, :argument => true).expects_argument?
23
+ assert option(:f, :optional => false).expects_argument?
24
+
25
+ refute option(:f, :foo).expects_argument?
26
+ end
27
+
28
+ test 'expects an argument if long option is suffixed with =' do
29
+ assert option(:f, :foo=).expects_argument?
30
+ assert option('f', 'foo=').expects_argument?
31
+ end
32
+
33
+ test 'accepts an optional argument if optional is true' do
34
+ assert option(:f, :optional => true).accepts_optional_argument?
35
+ assert option(:f, false, :optional => true).accepts_optional_argument?
36
+
37
+ refute option(:f, true).accepts_optional_argument?
38
+ end
39
+
40
+ test 'has a callback when passed a block or callback option' do
41
+ item = nil
42
+ option(:f){ item = "foo" }.call
43
+ assert_equal "foo", item
44
+
45
+ assert option(:callback => proc { item = "bar" }).call
46
+ assert_equal "bar", item
47
+
48
+ refute option(:f).call
49
+ end
50
+
51
+ test 'splits argument_value with :as => array' do
52
+ assert_equal %w/lee john bill/, option_value(
53
+ %w/--people lee,john,bill/, :people, true, :as => Array
54
+ )
55
+
56
+ assert_equal %w/lee john bill/, option_value(
57
+ %w/--people lee:john:bill/,
58
+ :people, true, :as => Array, :delimiter => ':'
59
+ )
60
+
61
+ assert_equal ['lee', 'john,bill'], option_value(
62
+ %w/--people lee,john,bill/,
63
+ :people, true, :as => Array, :limit => 2
64
+ )
65
+
66
+ assert_equal ['lee', 'john:bill'], option_value(
67
+ %w/--people lee:john:bill/,
68
+ :people, true, :as => Array, :limit => 2, :delimiter => ':'
69
+ )
70
+ end
71
+
72
+ test 'casting' do
73
+ assert_equal :foo, option_value(%w/--name foo/, :name, true, :as => Symbol)
74
+ assert_equal :foo, option_value(%w/--name foo/, :name, true, :as => :symbol)
75
+ assert_equal :foo, option_value(%w/--name foo/, :name, true, :as => :sym)
76
+ assert_equal 30, option_value(%w/--age 30/, :age, true, :as => Integer)
77
+ assert_equal "1.0", option_value(%w/--id 1/, :id, true, :as => Float).to_s
78
+
79
+ assert_equal -1, option_value(%w/-i -1/, :i, true, :as => Integer)
80
+ assert_equal -1, option_value(%w/-i -1.1/, :i, true, :as => Integer)
81
+ assert_equal "-1.1", option_value(%w/-i -1.1/, :i, true, :as => Float).to_s
82
+ assert_equal "foo", option_value(%w/--foo1 foo/, :foo1, true)
83
+
84
+ assert_equal 0, option_value(%w//, :v, :verbose, :as => :count)
85
+ assert_equal 1, option_value(%w/--verbose/, :v, :verbose, :as => :count)
86
+ assert_equal 2, option_value(%w/--verbose -v/, :v, :verbose, :as => :count)
87
+ assert_equal 3, option_value(%w/-vvv/, :v, :verbose, :as => :count)
88
+ end
89
+
90
+ test 'casting should return nil for optionless arguments' do
91
+ assert_equal nil, option_value(%w/-i/, :i, :as => :int)
92
+ assert_equal nil, option_value(%w/-i/, :i, :as => :str)
93
+ assert_equal nil, option_value(%w/-i/, :i, :as => :float)
94
+ assert_equal nil, option_value(%w/-i/, :i, :as => :array)
95
+ assert_equal nil, option_value(%w/-i/, :i, :as => :range)
96
+ end
97
+
98
+ test 'ranges' do
99
+ assert_equal (1..10), option_value(%w/-r 1..10/, :r, true, :as => Range)
100
+ assert_equal (1..10), option_value(%w/-r 1-10/, :r, true, :as => Range)
101
+ assert_equal (1..10), option_value(%w/-r 1,10/, :r, true, :as => Range)
102
+ assert_equal (1...10), option_value(%w/-r 1...10/, :r, true, :as => Range)
103
+ assert_equal (-1..10), option_value(%w/-r -1..10/, :r, true, :as => Range)
104
+ assert_equal (1..-10), option_value(%w/-r 1..-10/, :r, true, :as => Range)
105
+
106
+ # default back to the string unless a regex is successful
107
+ # return value.to_i if the value is /\A\d+\z/
108
+ # maybe this should raise if Slop#strict?
109
+ assert_equal "1abc10", option_value(%w/-r 1abc10/, :r, true, :as => Range)
110
+ assert_equal 1, option_value(%w/-r 1/, :r, true, :as => Range)
111
+ end
112
+
113
+ test 'printing options' do
114
+ slop = Slop.new
115
+ slop.opt :n, :name, 'Your name', true
116
+ slop.opt :age, 'Your age', true
117
+ slop.opt :V, 'Display the version'
118
+
119
+ assert_equal " -n, --name Your name", slop.options[:name].to_s
120
+ assert_equal " --age Your age", slop.options[:age].to_s
121
+ assert_equal " -V, Display the version", slop.options[:V].to_s
122
+ end
123
+
124
+ test 'falls back to default option' do
125
+ slop = Slop.new
126
+ slop.opt :foo, :optional => true, :default => 'lee'
127
+ slop.parse %w/--foo/
128
+ assert_equal 'lee', slop[:foo]
129
+ end
130
+
131
+ test 'key should default to long flag otherwise use short flag' do
132
+ assert_equal 'foo', option(:f, :foo).key
133
+ assert_equal 'b', option(:b).key
134
+ end
135
+
136
+ test 'tail to append items to the options list when printing help' do
137
+ slop = Slop.new
138
+ slop.on :f, :foo, :tail => true
139
+ slop.on :b, :bar
140
+ assert slop.to_s.strip =~ /foo$/
141
+ end
142
+
143
+ test 'do not print help for options with :help => false' do
144
+ slop = Slop.new
145
+ slop.on :f, :foo, :help => false
146
+ refute slop.help.include?('foo')
147
+ end
148
+
149
+ test 'appends a help string with :help => "string"' do
150
+ slop = Slop.new
151
+ slop.on :n, :name, 'Your name', true, :help => '<YOUR NAME HERE>'
152
+ assert_equal ' -n, --name <YOUR NAME HERE> Your name', slop.options[:name].to_s
153
+ end
154
+
155
+ test 'argument matching' do
156
+ slop = Slop.new
157
+ slop.on :f, :foo, true, :match => /^h/
158
+
159
+ assert_raises(Slop::InvalidArgumentError, /world/) { slop.parse %w/--foo world/ }
160
+ assert slop.parse %w/--foo hello/
161
+ end
162
+
163
+ test 'non-casting of nil options' do
164
+ slop = Slop.new { on :f, :foo, true, :as => String }
165
+ slop.parse []
166
+
167
+ assert_equal nil, slop[:foo]
168
+ refute_equal "", slop[:foo]
169
+ end
170
+
171
+ test 'counting options' do
172
+ slop = Slop.new { on :v; on :x }
173
+ slop.parse %w/-v -v -v -x/
174
+ assert_equal 1, slop.options[:x].count
175
+ assert_equal 3, slop.options[:v].count
176
+ end
177
+
178
+ test 'omit block execution with :unless option' do
179
+ item = nil
180
+ opts = Slop.new do
181
+ on :foo
182
+ on :bar, true, :unless => 'foo' do; item = "foo"; end
183
+ end
184
+ opts.parse %w/--foo --bar 1/
185
+
186
+ assert_equal "1", opts[:bar]
187
+ refute item
188
+ end
189
+
190
+ test 'raises MissingOptionError when an option is :required' do
191
+ opts = Slop.new do
192
+ on :foo, :required => true
193
+ end
194
+
195
+ assert_raises(Slop::MissingOptionError, /foo is required/) { opts.parse %w[ --bar ] }
196
+ assert_raises(Slop::MissingOptionError, /foo is required/) { opts.parse %w[ foo ] }
197
+ end
198
+ end