Sha256: 96c31430a0af0a3a8ed1a361944c35a98e8225ef79e3e88bdcc9aa5ef6b30462
Contents?: true
Size: 777 Bytes
Versions: 1
Compression:
Stored size: 777 Bytes
Contents
module FleetAPI::Attributes def assoc_reader(name, options={}) assoc_key = options[:key] || "#{name}_id" collection = options[:collection] || "#{name}s" define_method(name) do if assoc_id = self.send(assoc_key) self.connection.send(collection).get(assoc_id) else self.instance_variable_get("@#{name}") end end end def assoc_writer(name, options={}) assoc_key = options[:key] || "#{name}_id" define_method("#{name}=") do |assoc| if assoc.is_a?(Cistern::Model) self.send("#{assoc_key}=", assoc.identity) else self.instance_variable_set("@#{name}", assoc) end end end def assoc_accessor(name, options={}) assoc_reader(name, options) assoc_writer(name, options) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
coreos-fleet-api-0.1.0 | lib/fleet_api/attributes.rb |