vmc 0.4.7 → 0.5.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/vmc.rb +1 -2
- data/lib/vmc/cli.rb +33 -31
- data/lib/vmc/cli/app/app.rb +2 -2
- data/lib/vmc/cli/app/apps.rb +4 -5
- data/lib/vmc/cli/app/crashes.rb +2 -3
- data/lib/vmc/cli/app/delete.rb +28 -25
- data/lib/vmc/cli/app/env.rb +11 -19
- data/lib/vmc/cli/app/files.rb +11 -15
- data/lib/vmc/cli/app/health.rb +2 -3
- data/lib/vmc/cli/app/instances.rb +3 -3
- data/lib/vmc/cli/app/logs.rb +7 -10
- data/lib/vmc/cli/app/push.rb +17 -89
- data/lib/vmc/cli/app/push/create.rb +2 -0
- data/lib/vmc/cli/app/rename.rb +17 -13
- data/lib/vmc/cli/app/restart.rb +4 -7
- data/lib/vmc/cli/app/routes.rb +14 -11
- data/lib/vmc/cli/app/scale.rb +17 -15
- data/lib/vmc/cli/app/start.rb +4 -7
- data/lib/vmc/cli/app/stats.rb +2 -3
- data/lib/vmc/cli/app/stop.rb +3 -5
- data/lib/vmc/cli/domain/add_domain.rb +3 -5
- data/lib/vmc/cli/domain/create_domain.rb +5 -8
- data/lib/vmc/cli/domain/delete_domain.rb +23 -18
- data/lib/vmc/cli/domain/domains.rb +4 -7
- data/lib/vmc/cli/domain/remove_domain.rb +12 -10
- data/lib/vmc/cli/organization/org.rb +6 -7
- data/lib/vmc/cli/organization/orgs.rb +19 -19
- data/lib/vmc/cli/organization/rename.rb +18 -14
- data/lib/vmc/cli/route/create_route.rb +20 -13
- data/lib/vmc/cli/route/{delete_route.rb → delete.rb} +22 -17
- data/lib/vmc/cli/service/bind.rb +2 -2
- data/lib/vmc/cli/service/create.rb +57 -53
- data/lib/vmc/cli/service/delete.rb +33 -31
- data/lib/vmc/cli/service/rename.rb +17 -14
- data/lib/vmc/cli/service/service.rb +5 -8
- data/lib/vmc/cli/service/services.rb +14 -18
- data/lib/vmc/cli/service/unbind.rb +4 -4
- data/lib/vmc/cli/space/create.rb +16 -17
- data/lib/vmc/cli/space/delete.rb +34 -31
- data/lib/vmc/cli/space/rename.rb +20 -17
- data/lib/vmc/cli/space/space.rb +11 -14
- data/lib/vmc/cli/space/spaces.rb +14 -16
- data/lib/vmc/cli/space/take.rb +1 -3
- data/lib/vmc/cli/start/base.rb +2 -0
- data/lib/vmc/cli/start/colors.rb +0 -1
- data/lib/vmc/cli/start/info.rb +8 -10
- data/lib/vmc/cli/start/login.rb +11 -40
- data/lib/vmc/cli/start/logout.rb +0 -1
- data/lib/vmc/cli/start/register.rb +18 -12
- data/lib/vmc/cli/start/target.rb +7 -36
- data/lib/vmc/cli/start/target_interactions.rb +3 -1
- data/lib/vmc/cli/start/targets.rb +0 -1
- data/lib/vmc/cli/user/create.rb +4 -2
- data/lib/vmc/version.rb +1 -1
- data/spec/factories/organization_factory.rb +5 -0
- data/spec/factories/space_factory.rb +15 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/vmc/cli/app/push/create_spec.rb +2 -1
- data/spec/vmc/cli/app/push_spec.rb +1 -1
- data/spec/vmc/cli/organization/orgs_spec.rb +119 -0
- data/spec/vmc/cli/route/delete_route_spec.rb +3 -3
- data/spec/vmc/cli/service/bind_spec.rb +34 -0
- data/spec/vmc/cli/service/delete_spec.rb +32 -0
- data/spec/vmc/cli/service/service_spec.rb +32 -0
- data/spec/vmc/cli/service/unbind_spec.rb +34 -0
- data/spec/vmc/cli/space/spaces_spec.rb +120 -0
- data/spec/vmc/cli/start/info_spec.rb +38 -0
- data/spec/vmc/cli/start/login_spec.rb +40 -0
- metadata +127 -113
- data/lib/vmc/cli/organization/create_org.rb +0 -28
- data/lib/vmc/cli/organization/delete_org.rb +0 -65
- data/lib/vmc/cli/service/binding.rb +0 -66
- data/lib/vmc/cli/user.rb +0 -118
data/lib/vmc/cli/app/rename.rb
CHANGED
@@ -1,22 +1,12 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/app/base"
|
4
2
|
|
5
3
|
module VMC::App
|
6
4
|
class Rename < Base
|
7
5
|
desc "Rename an application"
|
8
6
|
group :apps, :manage, :hidden => true
|
9
|
-
input
|
10
|
-
:from_given => by_name(
|
11
|
-
|
12
|
-
fail "No applications." if apps.empty?
|
13
|
-
|
14
|
-
ask("Rename which application?", :choices => apps.sort_by(&:name),
|
15
|
-
:display => proc(&:name))
|
16
|
-
}
|
17
|
-
input(:name, :argument => :optional, :desc => "New application name") {
|
18
|
-
ask("New name")
|
19
|
-
}
|
7
|
+
input :app, :desc => "Application to rename", :argument => :optional,
|
8
|
+
:from_given => by_name(:app)
|
9
|
+
input :name, :desc => "New application name", :argument => :optional
|
20
10
|
def rename
|
21
11
|
app = input[:app]
|
22
12
|
name = input[:name]
|
@@ -27,5 +17,19 @@ module VMC::App
|
|
27
17
|
app.update!
|
28
18
|
end
|
29
19
|
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def ask_app
|
24
|
+
apps = client.apps
|
25
|
+
fail "No applications." if apps.empty?
|
26
|
+
|
27
|
+
ask("Rename which application?", :choices => apps.sort_by(&:name),
|
28
|
+
:display => proc(&:name))
|
29
|
+
end
|
30
|
+
|
31
|
+
def ask_name
|
32
|
+
ask("New name")
|
33
|
+
end
|
30
34
|
end
|
31
35
|
end
|
data/lib/vmc/cli/app/restart.rb
CHANGED
@@ -4,13 +4,10 @@ module VMC::App
|
|
4
4
|
class Restart < Base
|
5
5
|
desc "Stop and start an application"
|
6
6
|
group :apps, :manage
|
7
|
-
input :apps, :
|
8
|
-
|
9
|
-
|
10
|
-
input :
|
11
|
-
:desc => "Debug mode to start in"
|
12
|
-
input :all, :type => :boolean, :default => false,
|
13
|
-
:desc => "Restart all applications"
|
7
|
+
input :apps, :desc => "Applications to start", :argument => :splat,
|
8
|
+
:singular => :app, :from_given => by_name(:app)
|
9
|
+
input :debug_mode, :desc => "Debug mode to start in", :aliases => "-d"
|
10
|
+
input :all, :desc => "Restart all applications", :default => false
|
14
11
|
def restart
|
15
12
|
invoke :stop, :all => input[:all], :apps => input[:apps]
|
16
13
|
|
data/lib/vmc/cli/app/routes.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
require "vmc/cli/app/base"
|
2
2
|
|
3
|
+
# TODO: split up, as the URL interaction will differ (see other TODO)
|
3
4
|
module VMC::App
|
4
5
|
class Routes < Base
|
5
6
|
desc "Add a URL mapping for an app"
|
6
7
|
group :apps, :info, :hidden => true
|
7
|
-
input :app, :argument => true,
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
:desc => "URL to map to the application"
|
8
|
+
input :app, :desc => "Application to add the URL to", :argument => true,
|
9
|
+
:from_given => by_name(:app)
|
10
|
+
input :url, :desc => "URL to map to the application", :argument => true
|
11
|
+
# TODO: move push's URL interaction here, and have it just invoke
|
12
12
|
def map
|
13
13
|
app = input[:app]
|
14
14
|
|
@@ -51,12 +51,9 @@ module VMC::App
|
|
51
51
|
|
52
52
|
desc "Remove a URL mapping from an app"
|
53
53
|
group :apps, :info, :hidden => true
|
54
|
-
input :app, :
|
55
|
-
|
56
|
-
|
57
|
-
input(:url, :argument => true, :desc => "URL to unmap") { |choices|
|
58
|
-
ask("Which URL?", :choices => choices)
|
59
|
-
}
|
54
|
+
input :app, :desc => "Application to remove the URL from",
|
55
|
+
:argument => true, :from_given => by_name(:app)
|
56
|
+
input :url, :desc => "URL to unmap", :argument => :optional
|
60
57
|
def unmap
|
61
58
|
app = input[:app]
|
62
59
|
url = input[:url, app.urls]
|
@@ -93,5 +90,11 @@ module VMC::App
|
|
93
90
|
end
|
94
91
|
end
|
95
92
|
end
|
93
|
+
|
94
|
+
private
|
95
|
+
|
96
|
+
def ask_url(choices)
|
97
|
+
ask("Which URL?", :choices => choices)
|
98
|
+
end
|
96
99
|
end
|
97
100
|
end
|
data/lib/vmc/cli/app/scale.rb
CHANGED
@@ -4,21 +4,12 @@ module VMC::App
|
|
4
4
|
class Scale < Base
|
5
5
|
desc "Update the instances/memory limit for an application"
|
6
6
|
group :apps, :info, :hidden => true
|
7
|
-
input :app, :
|
8
|
-
|
9
|
-
input
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
input(:memory, :desc => "Memory limit") { |default|
|
14
|
-
ask("Memory Limit", :choices => memory_choices(default),
|
15
|
-
:allow_other => true,
|
16
|
-
:default => human_mb(default))
|
17
|
-
}
|
18
|
-
input :plan, :default => "D100",
|
19
|
-
:desc => "Application plan (e.g. D100, P200)"
|
20
|
-
input :restart, :type => :boolean, :default => true,
|
21
|
-
:desc => "Restart app after updating?"
|
7
|
+
input :app, :desc => "Application to update", :argument => true,
|
8
|
+
:from_given => by_name(:app)
|
9
|
+
input :instances, :desc => "Number of instances to run", :type => :numeric
|
10
|
+
input :memory, :desc => "Memory limit"
|
11
|
+
input :plan, :desc => "Application plan", :default => "D100"
|
12
|
+
input :restart, :desc => "Restart app after updating?", :default => true
|
22
13
|
def scale
|
23
14
|
app = input[:app]
|
24
15
|
|
@@ -63,5 +54,16 @@ module VMC::App
|
|
63
54
|
invoke :restart, :app => app
|
64
55
|
end
|
65
56
|
end
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def ask_instances(default)
|
61
|
+
ask("Instances", :default => default)
|
62
|
+
end
|
63
|
+
|
64
|
+
def ask_memory(default)
|
65
|
+
ask("Memory Limit", :choices => memory_choices(default),
|
66
|
+
:default => human_mb(default), :allow_other => true)
|
67
|
+
end
|
66
68
|
end
|
67
69
|
end
|
data/lib/vmc/cli/app/start.rb
CHANGED
@@ -6,13 +6,10 @@ module VMC::App
|
|
6
6
|
|
7
7
|
desc "Start an application"
|
8
8
|
group :apps, :manage
|
9
|
-
input :apps, :
|
10
|
-
|
11
|
-
|
12
|
-
input :
|
13
|
-
:desc => "Debug mode to start in"
|
14
|
-
input :all, :type => :boolean, :default => false,
|
15
|
-
:desc => "Start all applications"
|
9
|
+
input :apps, :desc => "Applications to start", :argument => :splat,
|
10
|
+
:singular => :app, :from_given => by_name(:app)
|
11
|
+
input :debug_mode, :desc => "Debug mode to start in", :aliases => "-d"
|
12
|
+
input :all, :desc => "Start all applications", :default => false
|
16
13
|
def start
|
17
14
|
apps = input[:all] ? client.apps : input[:apps]
|
18
15
|
fail "No applications given." if apps.empty?
|
data/lib/vmc/cli/app/stats.rb
CHANGED
@@ -4,9 +4,8 @@ module VMC::App
|
|
4
4
|
class Stats < Base
|
5
5
|
desc "Display application instance status"
|
6
6
|
group :apps, :info, :hidden => true
|
7
|
-
input :app, :
|
8
|
-
|
9
|
-
:from_given => by_name("app")
|
7
|
+
input :app, :desc => "Application to get the stats for",
|
8
|
+
:argument => true, :from_given => by_name(:app)
|
10
9
|
def stats
|
11
10
|
app = input[:app]
|
12
11
|
|
data/lib/vmc/cli/app/stop.rb
CHANGED
@@ -4,11 +4,9 @@ module VMC::App
|
|
4
4
|
class Stop < Base
|
5
5
|
desc "Stop an application"
|
6
6
|
group :apps, :manage
|
7
|
-
input :apps, :
|
8
|
-
|
9
|
-
|
10
|
-
input :all, :type => :boolean, :default => false,
|
11
|
-
:desc => "Stop all applications"
|
7
|
+
input :apps, :desc => "Applications to start", :argument => :splat,
|
8
|
+
:singular => :app, :from_given => by_name(:app)
|
9
|
+
input :all, :desc => "Stop all applications", :default => false
|
12
10
|
def stop
|
13
11
|
apps = input[:all] ? client.apps : input[:apps]
|
14
12
|
fail "No applications given." if apps.empty?
|
@@ -4,12 +4,10 @@ module VMC::Domain
|
|
4
4
|
class AddDomain < Base
|
5
5
|
desc "Add a domain to a space"
|
6
6
|
group :domains
|
7
|
-
input :name, :argument => :required
|
8
|
-
|
9
|
-
input :space, :from_given => by_name("space"),
|
7
|
+
input :name, :desc => "Domain to add", :argument => :required
|
8
|
+
input :space, :desc => "Space to add the domain to",
|
10
9
|
:default => proc { client.current_space },
|
11
|
-
:
|
12
|
-
|
10
|
+
:from_given => by_name(:space)
|
13
11
|
def add_domain
|
14
12
|
space = input[:space]
|
15
13
|
name = input[:name].sub(/^\*\./, "")
|
@@ -4,15 +4,12 @@ module VMC::Domain
|
|
4
4
|
class CreateDomain < Base
|
5
5
|
desc "Create a domain"
|
6
6
|
group :domains
|
7
|
-
input :name, :argument => :required
|
8
|
-
|
9
|
-
|
10
|
-
:from_given => by_name("organization"),
|
7
|
+
input :name, :desc => "Domain name to create", :argument => :required
|
8
|
+
input :organization, :desc => "Organization to add the domain to",
|
9
|
+
:aliases => %w{--org -o},
|
11
10
|
:default => proc { client.current_organization },
|
12
|
-
:
|
13
|
-
input :shared, :
|
14
|
-
:desc => "Create a shared domain (admin-only)"
|
15
|
-
|
11
|
+
:from_given => by_name(:organization)
|
12
|
+
input :shared, :desc => "Create a shared domain", :default => false
|
16
13
|
def create_domain
|
17
14
|
org = input[:organization]
|
18
15
|
name = input[:name].sub(/^\*\./, "")
|
@@ -2,26 +2,18 @@ require "vmc/cli/domain/base"
|
|
2
2
|
|
3
3
|
module VMC::Domain
|
4
4
|
class DeleteDomain < Base
|
5
|
+
# TODO: refactor; using find_by_name, and target cycling between
|
6
|
+
# org/client, is awkward
|
7
|
+
|
5
8
|
desc "Delete a domain"
|
6
9
|
group :domains
|
7
|
-
input
|
8
|
-
:from_given => find_by_name("domain")
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
:
|
14
|
-
}
|
15
|
-
input :organization, :aliases => ["--org", "-o"],
|
16
|
-
:from_given => by_name("organization"),
|
17
|
-
:desc => "Organization to delete the domain from"
|
18
|
-
input(:really, :type => :boolean, :forget => true,
|
19
|
-
:default => proc { force? || interact }) { |name, color|
|
20
|
-
ask("Really delete #{c(name, color)}?", :default => false)
|
21
|
-
}
|
22
|
-
input :all, :type => :boolean, :default => false,
|
23
|
-
:desc => "Delete all domains"
|
24
|
-
|
10
|
+
input :domain, :desc => "URL to map to the application",
|
11
|
+
:argument => :optional, :from_given => find_by_name("domain")
|
12
|
+
input :organization, :desc => "Organization to delete the domain from",
|
13
|
+
:aliases => %w{--org -o}, :from_given => by_name(:organization)
|
14
|
+
input :all, :desc => "Delete all domains", :default => false
|
15
|
+
input :really, :type => :boolean, :forget => true, :hidden => true,
|
16
|
+
:default => proc { force? || interact }
|
25
17
|
def delete_domain
|
26
18
|
target = input[:organization] || client
|
27
19
|
|
@@ -47,5 +39,18 @@ module VMC::Domain
|
|
47
39
|
domain.delete!
|
48
40
|
end
|
49
41
|
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def ask_domain(domains)
|
46
|
+
fail "No domains." if domains.empty?
|
47
|
+
|
48
|
+
ask "Which domain?", :choices => domains.sort_by(&:name),
|
49
|
+
:display => proc(&:name)
|
50
|
+
end
|
51
|
+
|
52
|
+
def ask_really(name, color)
|
53
|
+
ask("Really delete #{c(name, color)}?", :default => false)
|
54
|
+
end
|
50
55
|
end
|
51
56
|
end
|
@@ -4,13 +4,10 @@ module VMC::Domain
|
|
4
4
|
class Domains < Base
|
5
5
|
desc "List domains in a space"
|
6
6
|
group :domains
|
7
|
-
input :space, :
|
8
|
-
:default => proc { client.current_space },
|
9
|
-
:from_given => by_name(
|
10
|
-
|
11
|
-
input :all, :type => :boolean, :default => false,
|
12
|
-
:desc => "List all domains"
|
13
|
-
|
7
|
+
input :space, :desc => "Space to list the domains from",
|
8
|
+
:argument => :optional, :default => proc { client.current_space },
|
9
|
+
:from_given => by_name(:space)
|
10
|
+
input :all, :desc => "List all domains", :default => false
|
14
11
|
def domains
|
15
12
|
space = input[:space]
|
16
13
|
|
@@ -4,16 +4,11 @@ module VMC::Domain
|
|
4
4
|
class RemoveDomain < Base
|
5
5
|
desc "Remove a domain from a space"
|
6
6
|
group :domains
|
7
|
-
input
|
8
|
-
:from_given => by_name(
|
9
|
-
|
10
|
-
|
11
|
-
:
|
12
|
-
}
|
13
|
-
input :space, :from_given => by_name("space"),
|
14
|
-
:default => proc { client.current_space },
|
15
|
-
:desc => "Space to add the domain to"
|
16
|
-
|
7
|
+
input :domain, :desc => "Domain to add", :argument => :optional,
|
8
|
+
:from_given => by_name(:domain)
|
9
|
+
input :space, :desc => "Space to add the domain to",
|
10
|
+
:from_given => by_name(:space),
|
11
|
+
:default => proc { client.current_space }
|
17
12
|
def remove_domain
|
18
13
|
space = input[:space]
|
19
14
|
domain = input[:domain, space]
|
@@ -22,5 +17,12 @@ module VMC::Domain
|
|
22
17
|
space.remove_domain(domain)
|
23
18
|
end
|
24
19
|
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def ask_domain(space)
|
24
|
+
ask "Which domain?", :choices => space.domains,
|
25
|
+
:display => proc(&:name)
|
26
|
+
end
|
25
27
|
end
|
26
28
|
end
|
@@ -4,13 +4,12 @@ module VMC::Organization
|
|
4
4
|
class Org < Base
|
5
5
|
desc "Show organization information"
|
6
6
|
group :organizations
|
7
|
-
input :organization, :
|
8
|
-
:argument => :optional,
|
9
|
-
:from_given => by_name(
|
10
|
-
:default => proc { client.current_organization }
|
11
|
-
|
12
|
-
|
13
|
-
:desc => "Show full information for spaces, domains, etc."
|
7
|
+
input :organization, :desc => "Organization to show",
|
8
|
+
:aliases => %w{--org -o}, :argument => :optional,
|
9
|
+
:from_given => by_name(:organization),
|
10
|
+
:default => proc { client.current_organization }
|
11
|
+
input :full, :desc => "Show full information for spaces, domains, etc.",
|
12
|
+
:default => false
|
14
13
|
def org
|
15
14
|
org = input[:organization]
|
16
15
|
|
@@ -4,32 +4,32 @@ module VMC::Organization
|
|
4
4
|
class Orgs < Base
|
5
5
|
desc "List available organizations"
|
6
6
|
group :organizations
|
7
|
-
input :
|
8
|
-
:
|
9
|
-
input :full, :type => :boolean, :default => false,
|
10
|
-
:desc => "Show full information for apps, service instances, etc."
|
7
|
+
input :full, :desc => "Show full information for apps, services, etc.",
|
8
|
+
:default => false
|
11
9
|
def orgs
|
12
10
|
orgs =
|
13
|
-
|
14
|
-
|
15
|
-
|
11
|
+
with_progress("Getting organizations") do
|
12
|
+
client.organizations.sort_by(&:name)
|
13
|
+
end
|
14
|
+
|
15
|
+
return if orgs.empty?
|
16
16
|
|
17
17
|
line unless quiet?
|
18
18
|
|
19
|
-
if input[:
|
20
|
-
table(
|
21
|
-
%w{name spaces domains},
|
22
|
-
orgs.collect { |o|
|
23
|
-
[ c(o.name, :name),
|
24
|
-
name_list(o.spaces),
|
25
|
-
name_list(o.domains)
|
26
|
-
]
|
27
|
-
})
|
28
|
-
else
|
19
|
+
if input[:full]
|
29
20
|
orgs.each do |o|
|
30
|
-
invoke :org, :organization => o, :full =>
|
21
|
+
invoke :org, :organization => o, :full => true
|
31
22
|
end
|
23
|
+
else
|
24
|
+
table(
|
25
|
+
%w{name spaces domains},
|
26
|
+
orgs.collect { |o|
|
27
|
+
[ c(o.name, :name),
|
28
|
+
name_list(o.spaces),
|
29
|
+
name_list(o.domains)
|
30
|
+
]
|
31
|
+
})
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
35
|
-
end
|
35
|
+
end
|
@@ -1,23 +1,13 @@
|
|
1
|
-
require "vmc/detect"
|
2
|
-
|
3
1
|
require "vmc/cli/organization/base"
|
4
2
|
|
5
3
|
module VMC::Organization
|
6
4
|
class Rename < Base
|
7
5
|
desc "Rename an organization"
|
8
6
|
group :organizations, :hidden => true
|
9
|
-
input
|
10
|
-
:
|
11
|
-
:from_given => by_name(
|
12
|
-
|
13
|
-
fail "No organizations." if organizations.empty?
|
14
|
-
|
15
|
-
ask("Rename which organization?", :choices => organizations.sort_by(&:name),
|
16
|
-
:display => proc(&:name))
|
17
|
-
}
|
18
|
-
input(:name, :argument => :optional, :desc => "New organization name") {
|
19
|
-
ask("New name")
|
20
|
-
}
|
7
|
+
input :organization, :desc => "Organization to rename",
|
8
|
+
:aliases => ["--org", "-o"], :argument => :optional,
|
9
|
+
:from_given => by_name(:organization)
|
10
|
+
input :name, :desc => "New organization name", :argument => :optional
|
21
11
|
def rename_org
|
22
12
|
organization = input[:organization]
|
23
13
|
name = input[:name]
|
@@ -28,5 +18,19 @@ module VMC::Organization
|
|
28
18
|
organization.update!
|
29
19
|
end
|
30
20
|
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def ask_name
|
25
|
+
ask("New name")
|
26
|
+
end
|
27
|
+
|
28
|
+
def ask_organization
|
29
|
+
organizations = client.organizations
|
30
|
+
fail "No organizations." if organizations.empty?
|
31
|
+
|
32
|
+
ask("Rename which organization?", :choices => organizations.sort_by(&:name),
|
33
|
+
:display => proc(&:name))
|
34
|
+
end
|
31
35
|
end
|
32
36
|
end
|