class Fog::Compute::VcloudDirector::Model
Public Class Methods
new(attrs={})
click to toggle source
Calls superclass method
# File lib/fog/vcloud_director/compute.rb, line 273 def initialize(attrs={}) super(attrs) lazy_load_attrs.each do |attr| attributes[attr]= NonLoaded if attributes[attr].nil? make_lazy_load_method(attr) end self.class.attributes.each {|attr| make_attr_loaded_method(attr)} end
Public Instance Methods
inspect()
click to toggle source
Calls superclass method
# File lib/fog/vcloud_director/compute.rb, line 305 def inspect @inspecting = true out = super @inspecting = false out end
lazy_load_attrs()
click to toggle source
# File lib/fog/vcloud_director/compute.rb, line 282 def lazy_load_attrs @lazy_load_attrs ||= self.class.attributes - attributes.keys end
make_attr_loaded_method(attr)
click to toggle source
it adds an attr_loaded? method to know if the value has been loaded yet or not: ie description_loaded?
# File lib/fog/vcloud_director/compute.rb, line 297 def make_attr_loaded_method(attr) self.class.instance_eval do define_method("#{attr}_loaded?") do attributes[attr] != NonLoaded end end end
make_lazy_load_method(attr)
click to toggle source
# File lib/fog/vcloud_director/compute.rb, line 286 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 end