Class: Cloudclone::Client
- Inherits:
-
Object
- Object
- Cloudclone::Client
- Defined in:
- lib/cloudclone/client.rb
Instance Attribute Summary collapse
-
#heroku ⇒ Object
readonly
Returns the value of attribute heroku.
Instance Method Summary collapse
- #create(group_name, no_of_apps) ⇒ Object
- #destroy(group_name) ⇒ Object
- #group(group_name) ⇒ Object
- #groups ⇒ Object
-
#initialize(username, password) ⇒ Client
constructor
A new instance of Client.
- #list ⇒ Object
Constructor Details
#initialize(username, password) ⇒ Client
Returns a new instance of Client.
9 10 11 |
# File 'lib/cloudclone/client.rb', line 9 def initialize(username, password) @heroku = Heroku::Client.new(username, password) end |
Instance Attribute Details
#heroku ⇒ Object (readonly)
Returns the value of attribute heroku.
7 8 9 |
# File 'lib/cloudclone/client.rb', line 7 def heroku @heroku end |
Instance Method Details
#create(group_name, no_of_apps) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/cloudclone/client.rb', line 13 def create(group_name, no_of_apps) app_names = (1..no_of_apps).map { |n| "cc-#{group_name}-#{n}" } app_names.each { |n| @heroku.create(n) } deploy(app_names) Cloudclone::Group.new(group_name, @heroku) end |
#destroy(group_name) ⇒ Object
29 30 31 |
# File 'lib/cloudclone/client.rb', line 29 def destroy(group_name) groups.select { |g| g.name == group_name }.each { |g| g.destroy } end |
#group(group_name) ⇒ Object
25 26 27 |
# File 'lib/cloudclone/client.rb', line 25 def group(group_name) Cloudclone::Group.new(group_name, @heroku) if list.include?(group_name) end |
#groups ⇒ Object
33 34 35 |
# File 'lib/cloudclone/client.rb', line 33 def groups list.map { |name| Cloudclone::Group.new(name, @heroku) } end |
#list ⇒ Object
20 21 22 23 |
# File 'lib/cloudclone/client.rb', line 20 def list @heroku.list.map { |e| e[0].match(/^cc-(.+)-1$/) }.compact. map { |e| e.captures }.flatten end |