Class: QC::DataType

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

Direct Known Subclasses

Eip, Image, Instance, KeyPair, Volume

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(h) ⇒ DataType

Returns a new instance of DataType.



64
65
66
# File 'lib/qc.rb', line 64

def initialize h
  @values = h
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

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



72
73
74
75
76
77
78
# File 'lib/qc.rb', line 72

def method_missing met, *args, &block
  if @values.has_key? met.to_s
    @values[met.to_s]
  else
    raise NoMethodError.new "undefined method `#{met}'"
  end
end

Instance Attribute Details

#resultObject (readonly)

Returns the value of attribute result.



60
61
62
# File 'lib/qc.rb', line 60

def result
  @result
end

Class Method Details

.describe(p = {}, &block) ⇒ Object



80
81
82
83
84
85
86
87
88
# File 'lib/qc.rb', line 80

def self.describe p = {}, &block
  req = QC::API::Request.new "Describe#{@identifier}s", p
  @result = req.execute!(QC::Key)
  if block_given?
    @result["#{@identifier.downcase}_set"].to_a.each {|s| block.call(self.new(s))}
  else
    @result["#{@identifier.downcase}_set"].to_a.map {|s| self.new(s)}
  end
end

Instance Method Details

#to_sObject



68
69
70
# File 'lib/qc.rb', line 68

def to_s
  @values.to_yaml
end