Class: Sunzi::Cloud

Inherits:
Object
  • Object
show all
Includes:
Utility
Defined in:
lib/sunzi.rb,
lib/sunzi/cloud.rb,
lib/sunzi/cloud/base.rb,
lib/sunzi/cloud/linode.rb,
lib/sunzi/cloud/digital_ocean.rb

Defined Under Namespace

Classes: Base, DigitalOcean, Linode

Instance Method Summary collapse

Methods included from Utility

#abort_with, #exit_with, #say

Constructor Details

#initialize(cli, provider) ⇒ Cloud

Returns a new instance of Cloud.



5
6
7
8
9
10
11
12
13
14
# File 'lib/sunzi/cloud.rb', line 5

def initialize(cli, provider)
  @subject = case provider
  when 'linode'
    Sunzi::Cloud::Linode.new(cli, provider)
  when 'digital_ocean'
    Sunzi::Cloud::DigitalOcean.new(cli, provider)
  else
    abort_with "Provider #{provider} is not valid!"
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(sym, *args, &block) ⇒ Object



16
17
18
# File 'lib/sunzi/cloud.rb', line 16

def method_missing(sym, *args, &block)
  @subject.send sym, *args, &block
end

Instance Method Details

#respond_to?(method) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/sunzi/cloud.rb', line 20

def respond_to?(method)
  @subject.respond_to?(sym) || super
end