class Fog::Collection

Attributes

service[R]

Public Class Methods

model(new_model = nil) click to toggle source
# File lib/fog/core/collection.rb, line 35
def self.model(new_model = nil)
  if new_model.nil?
    @model
  else
    @model = new_model
  end
end
new(attributes = {}) click to toggle source

Creates a new Fog::Collection based around the passed service

@param [Hash] attributes @option attributes [Fog::Service] service Instance of a service

@return [Fog::Collection]

# File lib/fog/core/collection.rb, line 66
def initialize(attributes = {})
  @service = attributes.delete(:service)
  @loaded = false
  merge_attributes(attributes)
end

Public Instance Methods

clear() click to toggle source
Calls superclass method
# File lib/fog/core/collection.rb, line 43
def clear
  @loaded = true
  super
end
create(attributes = {}) click to toggle source
# File lib/fog/core/collection.rb, line 48
def create(attributes = {})
  object = new(attributes)
  object.save
  object
end
destroy(identity) click to toggle source
# File lib/fog/core/collection.rb, line 54
def destroy(identity)
  object = new(:identity => identity)
  object.destroy
end
inspect() click to toggle source
# File lib/fog/core/collection.rb, line 72
def inspect
  Thread.current[:formatador] ||= Formatador.new
  data = "#{Thread.current[:formatador].indentation}<#{self.class.name}\n"
  Thread.current[:formatador].indent do
    unless self.class.attributes.empty?
      data << "#{Thread.current[:formatador].indentation}"
      data << self.class.attributes.map { |attribute| "#{attribute}=#{send(attribute).inspect}" }.join(",\n#{Thread.current[:formatador].indentation}")
      data << "\n"
    end
    data << "#{Thread.current[:formatador].indentation}["
    unless self.empty?
      data << "\n"
      Thread.current[:formatador].indent do
        data << map(&:inspect).join(", \n")
        data << "\n"
      end
      data << Thread.current[:formatador].indentation
    end
    data << "]\n"
  end
  data << "#{Thread.current[:formatador].indentation}>"
  data
end
load(objects) click to toggle source
# File lib/fog/core/collection.rb, line 96
def load(objects)
  clear
  objects.each do |object|
    self << new(object)
  end
  self
end
model() click to toggle source
# File lib/fog/core/collection.rb, line 104
def model
  self.class.instance_variable_get("@model")
end
new(attributes = {}) click to toggle source
# File lib/fog/core/collection.rb, line 108
def new(attributes = {})
  unless attributes.is_a?(::Hash)
    raise ArgumentError, "Initialization parameters must be an attributes hash, got #{attributes.class} #{attributes.inspect}"
  end
  model.new(
    {
      :collection => self,
      :service => service
    }.merge(attributes)
  )
end
reload() click to toggle source
# File lib/fog/core/collection.rb, line 120
def reload
  clear
  lazy_load
  self
end
table(attributes = nil) click to toggle source
# File lib/fog/core/collection.rb, line 126
def table(attributes = nil)
  Formatador.display_table(map(&:attributes), attributes)
end
to_json(_options = {}) click to toggle source
# File lib/fog/core/collection.rb, line 130
def to_json(_options = {})
  Fog::JSON.encode(map(&:attributes))
end

Private Instance Methods

lazy_load() click to toggle source
# File lib/fog/core/collection.rb, line 136
def lazy_load
  all
end