Sha256: 355c52ff71deb4c938b8a249aacf0459a5369377c0215e8f0f8e7f89a33ca5ca
Contents?: true
Size: 967 Bytes
Versions: 2
Compression:
Stored size: 967 Bytes
Contents
module Panda module Builders def self.included(base) base.extend(ClassMethods) end module ClassMethods def create(attributes={}) resource = build_resource(attributes) yield resource if block_given? resource.create resource end def create!(attributes={}) resource = build_resource(attributes) yield resource if block_given? resource.create! resource end private def build_resource(attributes) Panda::const_get("#{sti_name}").new(attributes.merge(:cloud_id => cloud.id)) end end def create raise "Can't create attribute. Already have an id=#{attributes['id']}" if attributes['id'] uri = replace_pattern_with_self_variables(self.class.many_path) response = connection.post(uri, attributes) load_and_reset(response) end def create! create || raise(errors.last) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
panda-1.4.1 | lib/panda/modules/builders.rb |
panda-1.4.0 | lib/panda/modules/builders.rb |