1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/vcloudng/models/compute/catalog.rb

50 lines
1.2 KiB
Ruby
Raw Normal View History

2013-06-18 12:56:19 -04:00
require 'fog/core/model'
module Fog
module Compute
class Vcloudng
class Catalog < Fog::Model
2013-06-18 12:56:19 -04:00
identity :id
attribute :name
attribute :type
attribute :href
2013-06-19 11:06:24 -04:00
attribute :description, :aliases => :Description
2013-07-08 14:54:54 -04:00
attribute :is_published, :aliases => :IsPublished, :type => :boolean
2013-06-18 12:56:19 -04:00
def catalog_items
2013-06-18 14:51:12 -04:00
requires :id
service.catalog_items(:catalog => self)
2013-06-18 12:56:19 -04:00
end
2013-07-08 14:54:54 -04:00
def initialize(attrs={})
super(attrs)
lazy_load_attrs = self.class.attributes - attributes.keys
lazy_load_attrs.each do |attr|
attributes[attr]= NonLoaded if attributes[attr].nil?
make_lazy_load_method(attr)
end
2013-07-08 14:54:54 -04:00
end
def make_lazy_load_method(attr)
self.class.instance_eval do
define_method(attr) do
reload if attributes[attr] == NonLoaded and !@inspecting
attributes[attr]
end
end
2013-07-08 14:54:54 -04:00
end
def inspect
@inspecting = true
out = super
@inspecting = false
out
end
2013-06-18 12:56:19 -04:00
end
end
end
end