Class: Capistrano::DockerCloud::Base
- Inherits:
-
Object
- Object
- Capistrano::DockerCloud::Base
- Includes:
- Helpers::CollectionHelper
- Defined in:
- lib/capistrano/docker-cloud/base.rb
Class Method Summary collapse
-
.belongs_to(name) ⇒ Object
Rails like belongs_to association.
- .configure(username, api_key) ⇒ Object
- .connection ⇒ Object
- .find(uuid) ⇒ Object
- .find_by(options = {}) ⇒ Object
- .find_by_name(name) ⇒ Object
- .redeploy(uuid) ⇒ Object
- .resource ⇒ Object
-
.subclass_name ⇒ Object
~~~~ Class Methods ~~~~.
Instance Method Summary collapse
-
#connection ⇒ Object
~~~~ Instance Methods ~~~~.
- #redeploy ⇒ Object
- #reload! ⇒ Object
Methods included from Helpers::CollectionHelper
Class Method Details
.belongs_to(name) ⇒ Object
Rails like belongs_to association
57 58 59 60 61 62 |
# File 'lib/capistrano/docker-cloud/base.rb', line 57 def self.belongs_to(name) define_method("#{name.to_s}=") do |object| instance_variable_set("@#{name.to_s}", object) end define_method("#{name.to_s}") { instance_variable_get("@#{name.to_s}") } end |
.configure(username, api_key) ⇒ Object
44 45 46 47 |
# File 'lib/capistrano/docker-cloud/base.rb', line 44 def self.configure(username, api_key) @@dockercloud_username = username @@dockercloud_api_key = api_key end |
.connection ⇒ Object
49 50 51 52 |
# File 'lib/capistrano/docker-cloud/base.rb', line 49 def self.connection @@connection ||= ::DockerCloud::Client.new(@@dockercloud_username, @@dockercloud_api_key) end |
.find(uuid) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/capistrano/docker-cloud/base.rb', line 17 def self.find(uuid) object = resource.get(uuid) return object if object raise Capistrano::DockerCloud::RecordNotFound rescue RestClient::ResourceNotFound => error puts "ERROR: #{error.response}" end |
.find_by(options = {}) ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/capistrano/docker-cloud/base.rb', line 25 def self.find_by( = {}) case when .key?(:name) new(find_by_name([:name])) else raise "You can only search #{subclass_name} by `:name`." end end |
.find_by_name(name) ⇒ Object
34 35 36 37 38 |
# File 'lib/capistrano/docker-cloud/base.rb', line 34 def self.find_by_name(name) resource.all.detect do |stack| stack.name.downcase == name end end |
.redeploy(uuid) ⇒ Object
64 65 66 |
# File 'lib/capistrano/docker-cloud/base.rb', line 64 def self.redeploy(uuid) resource.redeploy(uuid) end |
.resource ⇒ Object
40 41 42 |
# File 'lib/capistrano/docker-cloud/base.rb', line 40 def self.resource connection.send("#{subclass_name}") end |
.subclass_name ⇒ Object
~~~~ Class Methods ~~~~
12 13 14 15 |
# File 'lib/capistrano/docker-cloud/base.rb', line 12 def self.subclass_name # FIXME : Find a better way to archive this. ancestors.first.to_s.split('::').last.downcase + 's' end |
Instance Method Details
#connection ⇒ Object
~~~~ Instance Methods ~~~~
69 70 71 |
# File 'lib/capistrano/docker-cloud/base.rb', line 69 def connection self.class.connection end |
#redeploy ⇒ Object
77 78 79 |
# File 'lib/capistrano/docker-cloud/base.rb', line 77 def redeploy self.class.redeploy(uuid) end |
#reload! ⇒ Object
73 74 75 |
# File 'lib/capistrano/docker-cloud/base.rb', line 73 def reload! initialize(self.class.find(uuid)) end |