ey_cli 0.1.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.
- data/Gemfile +3 -0
- data/Gemfile.lock +57 -0
- data/LICENSE +22 -0
- data/README.md +104 -0
- data/Rakefile +129 -0
- data/bin/ey_cli +5 -0
- data/ey_cli.gemspec +117 -0
- data/history.md +3 -0
- data/lib/ey_cli/api.rb +96 -0
- data/lib/ey_cli/cli.rb +17 -0
- data/lib/ey_cli/command_manager.rb +29 -0
- data/lib/ey_cli/commands/accounts.rb +26 -0
- data/lib/ey_cli/commands/apps.rb +24 -0
- data/lib/ey_cli/commands/base.rb +16 -0
- data/lib/ey_cli/commands/console.rb +38 -0
- data/lib/ey_cli/commands/create_app.rb +76 -0
- data/lib/ey_cli/commands/create_env.rb +106 -0
- data/lib/ey_cli/commands/deploy.rb +23 -0
- data/lib/ey_cli/commands/help.rb +65 -0
- data/lib/ey_cli/commands/show.rb +65 -0
- data/lib/ey_cli/controllers/accounts.rb +23 -0
- data/lib/ey_cli/controllers/apps.rb +66 -0
- data/lib/ey_cli/controllers/environments.rb +78 -0
- data/lib/ey_cli/git_utils.rb +12 -0
- data/lib/ey_cli/models/account.rb +6 -0
- data/lib/ey_cli/models/app.rb +15 -0
- data/lib/ey_cli/models/base.rb +54 -0
- data/lib/ey_cli/models/environment.rb +32 -0
- data/lib/ey_cli/options_parser.rb +47 -0
- data/lib/ey_cli/smarty_parser.rb +29 -0
- data/lib/ey_cli/term.rb +58 -0
- data/lib/ey_cli.rb +46 -0
- data/spec/auth_helper.rb +28 -0
- data/spec/ey_cli/api_spec.rb +70 -0
- data/spec/ey_cli/command_manager_spec.rb +33 -0
- data/spec/ey_cli/commands/help_spec.rb +36 -0
- data/spec/ey_cli/controllers/accounts_spec.rb +40 -0
- data/spec/ey_cli/controllers/apps_spec.rb +97 -0
- data/spec/ey_cli/controllers/environments_spec.rb +101 -0
- data/spec/ey_cli/models/app_spec.rb +50 -0
- data/spec/ey_cli/models/base_spec.rb +98 -0
- data/spec/ey_cli/models/environment_spec.rb +51 -0
- data/spec/ey_cli/options_parser_spec.rb +19 -0
- data/spec/ey_cli/smarty_parser_spec.rb +19 -0
- data/spec/spec_helper.rb +29 -0
- metadata +288 -0
@@ -0,0 +1,98 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe EYCli::Model::Base do
|
4
|
+
class BaseMock < EYCli::Model::Base
|
5
|
+
base_path 'base_mocks'
|
6
|
+
end
|
7
|
+
|
8
|
+
class HierarchicalMock < EYCli::Model::Base
|
9
|
+
base_path 'parent/%s/children'
|
10
|
+
end
|
11
|
+
|
12
|
+
subject { EYCli::Model::Base }
|
13
|
+
|
14
|
+
it "knows its name" do
|
15
|
+
EYCli::Model::Account.class_name.should == 'account'
|
16
|
+
end
|
17
|
+
|
18
|
+
it "uses the class name as base path to call the api" do
|
19
|
+
EYCli::Model::Account.base_path.should == 'accounts'
|
20
|
+
end
|
21
|
+
|
22
|
+
it "allows to override the base path calling the method class" do
|
23
|
+
BaseMock.base_path.should == 'base_mocks'
|
24
|
+
end
|
25
|
+
|
26
|
+
it "resolves the resource children path given the base path and the variable arguments" do
|
27
|
+
path = BaseMock.resolve_child_path([1])
|
28
|
+
path.should == 'base_mocks/1'
|
29
|
+
|
30
|
+
path = HierarchicalMock.resolve_child_path([1, 1])
|
31
|
+
path.should == 'parent/1/children/1'
|
32
|
+
end
|
33
|
+
|
34
|
+
context '.all' do
|
35
|
+
it "returns the collection of elements" do
|
36
|
+
body = to_json({:base_mocks => [{:id => 1, :name => 'foo'}]})
|
37
|
+
stub_request(:get, 'http://example.com/base_mocks').
|
38
|
+
to_return(:body => body, :status => 200)
|
39
|
+
|
40
|
+
mocks = BaseMock.all
|
41
|
+
mocks.should have(1).mocks
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'returns an empty array when the collection is empty' do
|
45
|
+
body = to_json({:base_mocks => []})
|
46
|
+
stub_request(:get, 'http://example.com/base_mocks').
|
47
|
+
to_return(:body => body, :status => 200)
|
48
|
+
|
49
|
+
BaseMock.all.should be_empty
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context ".find" do
|
54
|
+
it "accepts several identifires to fill the hierarchy" do
|
55
|
+
expected = HierarchicalMock.new({:id => 1, :parent => BaseMock.new({:id => 2})})
|
56
|
+
stub_request(:get, 'http://example.com/parent/2/children/1').
|
57
|
+
to_return(:body => to_json(:hierarchicalmock => expected))
|
58
|
+
|
59
|
+
mock = HierarchicalMock.find(2, 1)
|
60
|
+
mock.should == expected
|
61
|
+
end
|
62
|
+
|
63
|
+
it "returns the element if exists" do
|
64
|
+
expected = BaseMock.new({:id => 1, :name => 'foo'})
|
65
|
+
body = to_json({:basemock => expected.to_hash})
|
66
|
+
stub_request(:get, 'http://example.com/base_mocks/1').
|
67
|
+
to_return(:body => body, :status => 200)
|
68
|
+
|
69
|
+
mock = BaseMock.find 1
|
70
|
+
mock.should == expected
|
71
|
+
end
|
72
|
+
|
73
|
+
it "raises an error when the element is not found" do
|
74
|
+
stub_request(:get, 'http://example.com/base_mocks/1').
|
75
|
+
to_return(:status => 404)
|
76
|
+
|
77
|
+
lambda { BaseMock.find 1 }.should raise_error(Faraday::Error::ResourceNotFound)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context '.find_by_name' do
|
82
|
+
before do
|
83
|
+
@expected = BaseMock.new({:id => 1, :name => 'foo'})
|
84
|
+
body = to_json({:base_mocks => [@expected.to_hash]})
|
85
|
+
stub_request(:get, 'http://example.com/base_mocks').
|
86
|
+
to_return(:body => body, :status => 200)
|
87
|
+
end
|
88
|
+
|
89
|
+
it "returns the element if it finds it by name" do
|
90
|
+
mock = BaseMock.find_by_name 'foo'
|
91
|
+
mock.should == @expected
|
92
|
+
end
|
93
|
+
|
94
|
+
it "returns nil when the element is not found" do
|
95
|
+
BaseMock.find_by_name('bar').should be_nil
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require File.expand_path('../../spec_helper', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe EYCli::Model::Environment do
|
4
|
+
context "creating the resource path" do
|
5
|
+
let(:clazz) { EYCli::Model::Environment }
|
6
|
+
it "raises an error when the app is not into the parameters hash" do
|
7
|
+
lambda { clazz.create_collection_path({}) }.should raise_error
|
8
|
+
end
|
9
|
+
|
10
|
+
it "creates the resource path using the application id" do
|
11
|
+
app = EYCli::Model::App.new(:id => 1)
|
12
|
+
path = clazz.create_collection_path(:app => app)
|
13
|
+
path.should == 'apps/1/environments'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context "deploying" do
|
18
|
+
let(:app) { EYCli::Model::App.new(:id => 1, :name => 'fake_app') }
|
19
|
+
let(:env) do
|
20
|
+
EYCli::Model::Environment.new(
|
21
|
+
:id => 1,
|
22
|
+
:deployment_configurations => {
|
23
|
+
'fake_app' => {:migrate => {:perform => true, :command => 'rake db:migrate'}}
|
24
|
+
})
|
25
|
+
end
|
26
|
+
let(:deploy_uri) { 'http://example.com/apps/1/environments/1/deployments/deploy' }
|
27
|
+
|
28
|
+
it "uses the default deployment options when the provided options are empty" do
|
29
|
+
stub_request(:post, "#{deploy_uri}?deployment[migrate]=true&deployment[migrate_command]=rake db:migrate&deployment[ref]=HEAD").
|
30
|
+
to_return(:status => 201, :body => to_json(:deployment => {}))
|
31
|
+
|
32
|
+
env.deploy(app)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "uses the provided options as deploy parameters" do
|
36
|
+
stub_request(:post, "#{deploy_uri}?deployment[migrate]=false&deployment[migrate_command]=fake_migrate&deployment[ref]=master").
|
37
|
+
to_return(:status => 201, :body => to_json(:deployment => {}))
|
38
|
+
|
39
|
+
env.deploy(app, {:migrate => false, :migrate_command => 'fake_migrate', :ref => 'master'})
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns the body of the response when there is an error" do
|
43
|
+
expected_body = Hashie::Mash.new({:errors => {:provision => 'Amazon is down'}})
|
44
|
+
stub_request(:post, "#{deploy_uri}?deployment[migrate]=true&deployment[migrate_command]=rake db:migrate&deployment[ref]=HEAD").
|
45
|
+
to_return(:status => 400, :body => to_json(expected_body))
|
46
|
+
|
47
|
+
response = env.deploy(app)
|
48
|
+
response.should == expected_body
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.expand_path('../spec_helper', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe EYCli::OptionsParser do
|
4
|
+
|
5
|
+
it 'accepts the account name as an option' do
|
6
|
+
opts = subject.parse ['-a', 'fake_account']
|
7
|
+
opts[:account].should == 'fake_account'
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'accepts the app name as an option' do
|
11
|
+
opts = subject.parse ['-p', 'fake_app']
|
12
|
+
opts[:app].should == 'fake_app'
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'accepts the environment name as an option' do
|
16
|
+
opts = subject.parse ['-e', 'fake_env']
|
17
|
+
opts[:environment].should == 'fake_env'
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.expand_path('../spec_helper', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe 'EYCli::SmartyParser' do
|
4
|
+
class Parser; extend EYCli::SmartyParser; end
|
5
|
+
|
6
|
+
it "parses the entities in a recursively" do
|
7
|
+
out = Parser.smarty({'account' => {'id' => 1}})
|
8
|
+
|
9
|
+
out['account'].should be_instance_of(EYCli::Model::Account)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "does not override other instances" do
|
13
|
+
out = Parser.smarty({'app'=> {'account' => {}, 'environments' => [{}]}})
|
14
|
+
|
15
|
+
out['app'].should be_instance_of(EYCli::Model::App)
|
16
|
+
out['app'].account.should be_instance_of(EYCli::Model::Account)
|
17
|
+
out['app'].environments.first.should be_instance_of(EYCli::Model::Environment)
|
18
|
+
end
|
19
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
|
3
|
+
$LOAD_PATH << '../lib'
|
4
|
+
require 'ey_cli'
|
5
|
+
require 'webmock/rspec'
|
6
|
+
require 'fakefs/spec_helpers'
|
7
|
+
require 'stringio'
|
8
|
+
require 'auth_helper'
|
9
|
+
|
10
|
+
# Setup for specs
|
11
|
+
|
12
|
+
EYCli.api 'http://example.com' # use example.com as an endpoint
|
13
|
+
|
14
|
+
$stdin_test = StringIO.new
|
15
|
+
$stdout_test = StringIO.new
|
16
|
+
|
17
|
+
EYCli.term($stdin_test, $stdout_test) # use fake buffers as input and output
|
18
|
+
|
19
|
+
|
20
|
+
RSpec.configure do |config|
|
21
|
+
config.include FakeFS::SpecHelpers
|
22
|
+
config.include EYCli::AuthHelper
|
23
|
+
end
|
24
|
+
|
25
|
+
# Helper methods
|
26
|
+
|
27
|
+
def to_json(hash)
|
28
|
+
MultiJson.encode(hash)
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,288 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ey_cli
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- David Calavera
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-10-15 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
22
|
+
none: false
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
hash: 3
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
name: faraday
|
31
|
+
type: :runtime
|
32
|
+
prerelease: false
|
33
|
+
requirement: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
hash: 3
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
name: faraday_middleware
|
45
|
+
type: :runtime
|
46
|
+
prerelease: false
|
47
|
+
requirement: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
hash: 3
|
55
|
+
segments:
|
56
|
+
- 0
|
57
|
+
version: "0"
|
58
|
+
name: faraday-stack
|
59
|
+
type: :runtime
|
60
|
+
prerelease: false
|
61
|
+
requirement: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
hash: 3
|
69
|
+
segments:
|
70
|
+
- 0
|
71
|
+
version: "0"
|
72
|
+
name: highline
|
73
|
+
type: :runtime
|
74
|
+
prerelease: false
|
75
|
+
requirement: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
hash: 3
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
86
|
+
name: hashie
|
87
|
+
type: :runtime
|
88
|
+
prerelease: false
|
89
|
+
requirement: *id005
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
92
|
+
none: false
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
hash: 3
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
version: "0"
|
100
|
+
name: json
|
101
|
+
type: :runtime
|
102
|
+
prerelease: false
|
103
|
+
requirement: *id006
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
hash: 3
|
111
|
+
segments:
|
112
|
+
- 0
|
113
|
+
version: "0"
|
114
|
+
name: multi_json
|
115
|
+
type: :runtime
|
116
|
+
prerelease: false
|
117
|
+
requirement: *id007
|
118
|
+
- !ruby/object:Gem::Dependency
|
119
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
hash: 3
|
125
|
+
segments:
|
126
|
+
- 0
|
127
|
+
version: "0"
|
128
|
+
name: slop
|
129
|
+
type: :runtime
|
130
|
+
prerelease: false
|
131
|
+
requirement: *id008
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
version_requirements: &id009 !ruby/object:Gem::Requirement
|
134
|
+
none: false
|
135
|
+
requirements:
|
136
|
+
- - ~>
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
hash: 25
|
139
|
+
segments:
|
140
|
+
- 0
|
141
|
+
- 9
|
142
|
+
version: "0.9"
|
143
|
+
name: rake
|
144
|
+
type: :development
|
145
|
+
prerelease: false
|
146
|
+
requirement: *id009
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
version_requirements: &id010 !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
hash: 3
|
154
|
+
segments:
|
155
|
+
- 0
|
156
|
+
version: "0"
|
157
|
+
name: rspec
|
158
|
+
type: :development
|
159
|
+
prerelease: false
|
160
|
+
requirement: *id010
|
161
|
+
- !ruby/object:Gem::Dependency
|
162
|
+
version_requirements: &id011 !ruby/object:Gem::Requirement
|
163
|
+
none: false
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
hash: 3
|
168
|
+
segments:
|
169
|
+
- 0
|
170
|
+
version: "0"
|
171
|
+
name: webmock
|
172
|
+
type: :development
|
173
|
+
prerelease: false
|
174
|
+
requirement: *id011
|
175
|
+
- !ruby/object:Gem::Dependency
|
176
|
+
version_requirements: &id012 !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
hash: 3
|
182
|
+
segments:
|
183
|
+
- 0
|
184
|
+
version: "0"
|
185
|
+
name: fakefs
|
186
|
+
type: :development
|
187
|
+
prerelease: false
|
188
|
+
requirement: *id012
|
189
|
+
description: More user friendly CLI for Engine Yard cloud. Use undocumented APIs
|
190
|
+
email: david.calavera@gmail.com
|
191
|
+
executables:
|
192
|
+
- ey_cli
|
193
|
+
extensions: []
|
194
|
+
|
195
|
+
extra_rdoc_files:
|
196
|
+
- README.md
|
197
|
+
- LICENSE
|
198
|
+
files:
|
199
|
+
- Gemfile
|
200
|
+
- Gemfile.lock
|
201
|
+
- LICENSE
|
202
|
+
- README.md
|
203
|
+
- Rakefile
|
204
|
+
- bin/ey_cli
|
205
|
+
- ey_cli.gemspec
|
206
|
+
- history.md
|
207
|
+
- lib/ey_cli.rb
|
208
|
+
- lib/ey_cli/api.rb
|
209
|
+
- lib/ey_cli/cli.rb
|
210
|
+
- lib/ey_cli/command_manager.rb
|
211
|
+
- lib/ey_cli/commands/accounts.rb
|
212
|
+
- lib/ey_cli/commands/apps.rb
|
213
|
+
- lib/ey_cli/commands/base.rb
|
214
|
+
- lib/ey_cli/commands/console.rb
|
215
|
+
- lib/ey_cli/commands/create_app.rb
|
216
|
+
- lib/ey_cli/commands/create_env.rb
|
217
|
+
- lib/ey_cli/commands/deploy.rb
|
218
|
+
- lib/ey_cli/commands/help.rb
|
219
|
+
- lib/ey_cli/commands/show.rb
|
220
|
+
- lib/ey_cli/controllers/accounts.rb
|
221
|
+
- lib/ey_cli/controllers/apps.rb
|
222
|
+
- lib/ey_cli/controllers/environments.rb
|
223
|
+
- lib/ey_cli/git_utils.rb
|
224
|
+
- lib/ey_cli/models/account.rb
|
225
|
+
- lib/ey_cli/models/app.rb
|
226
|
+
- lib/ey_cli/models/base.rb
|
227
|
+
- lib/ey_cli/models/environment.rb
|
228
|
+
- lib/ey_cli/options_parser.rb
|
229
|
+
- lib/ey_cli/smarty_parser.rb
|
230
|
+
- lib/ey_cli/term.rb
|
231
|
+
- spec/auth_helper.rb
|
232
|
+
- spec/ey_cli/api_spec.rb
|
233
|
+
- spec/ey_cli/command_manager_spec.rb
|
234
|
+
- spec/ey_cli/commands/help_spec.rb
|
235
|
+
- spec/ey_cli/controllers/accounts_spec.rb
|
236
|
+
- spec/ey_cli/controllers/apps_spec.rb
|
237
|
+
- spec/ey_cli/controllers/environments_spec.rb
|
238
|
+
- spec/ey_cli/models/app_spec.rb
|
239
|
+
- spec/ey_cli/models/base_spec.rb
|
240
|
+
- spec/ey_cli/models/environment_spec.rb
|
241
|
+
- spec/ey_cli/options_parser_spec.rb
|
242
|
+
- spec/ey_cli/smarty_parser_spec.rb
|
243
|
+
- spec/spec_helper.rb
|
244
|
+
homepage: http://github.com/calavera/ey_cli
|
245
|
+
licenses: []
|
246
|
+
|
247
|
+
post_install_message:
|
248
|
+
rdoc_options:
|
249
|
+
- --charset=UTF-8
|
250
|
+
require_paths:
|
251
|
+
- lib
|
252
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
253
|
+
none: false
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
hash: 3
|
258
|
+
segments:
|
259
|
+
- 0
|
260
|
+
version: "0"
|
261
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
262
|
+
none: false
|
263
|
+
requirements:
|
264
|
+
- - ">="
|
265
|
+
- !ruby/object:Gem::Version
|
266
|
+
hash: 3
|
267
|
+
segments:
|
268
|
+
- 0
|
269
|
+
version: "0"
|
270
|
+
requirements: []
|
271
|
+
|
272
|
+
rubyforge_project: ey_cli
|
273
|
+
rubygems_version: 1.8.6
|
274
|
+
signing_key:
|
275
|
+
specification_version: 2
|
276
|
+
summary: More user friendly CLI for Engine Yard cloud
|
277
|
+
test_files:
|
278
|
+
- spec/ey_cli/api_spec.rb
|
279
|
+
- spec/ey_cli/command_manager_spec.rb
|
280
|
+
- spec/ey_cli/commands/help_spec.rb
|
281
|
+
- spec/ey_cli/controllers/accounts_spec.rb
|
282
|
+
- spec/ey_cli/controllers/apps_spec.rb
|
283
|
+
- spec/ey_cli/controllers/environments_spec.rb
|
284
|
+
- spec/ey_cli/models/app_spec.rb
|
285
|
+
- spec/ey_cli/models/base_spec.rb
|
286
|
+
- spec/ey_cli/models/environment_spec.rb
|
287
|
+
- spec/ey_cli/options_parser_spec.rb
|
288
|
+
- spec/ey_cli/smarty_parser_spec.rb
|