Class: Cloudclone::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/cloudclone/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#herokuObject (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

#groupsObject



33
34
35
# File 'lib/cloudclone/client.rb', line 33

def groups
  list.map { |name| Cloudclone::Group.new(name, @heroku) }
end

#listObject



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