Sha256: 98ece836ce825968e98e028ad9987e808cd51492aa885da589dcf04d98ec1dc7

Contents?: true

Size: 1.1 KB

Versions: 78

Compression:

Stored size: 1.1 KB

Contents

module CFoundry::V2::ModelMagic
  module HasSummary
    def has_summary(actions = {})
      #
      # def summary
      #
      define_method(:summary) do
        @client.base.get("v2", plural_object_name, @guid, "summary", :accept => :json)
      end

      #
      # def summarize!
      #
      define_method(:summarize!) do |*args|
        body, _ = args

        body ||= summary

        body.each do |key, val|
          if act = actions[key]
            instance_exec(val, &act)

          elsif self.class.attributes[key]
            self.send(:"#{key}=", val)

          elsif self.class.to_many_relations[key]
            singular = key.to_s.sub(/s$/, "").to_sym

            vals = val.collect do |sub|
              obj = @client.send(singular, sub[:guid], true)
              obj.summarize! sub
              obj
            end

            self.send(:"#{key}=", vals)

          elsif self.class.to_one_relations[key]
            obj = @client.send(key, val[:guid], true)
            obj.summarize! val

            self.send(:"#{key}=", obj)
          end
        end

        nil
      end
    end
  end
end

Version data entries

78 entries across 78 versions & 3 rubygems

Version Path
new_cfoundry-4.9.4 lib/cfoundry/v2/model_magic/has_summary.rb
new_cfoundry-4.9.3 lib/cfoundry/v2/model_magic/has_summary.rb
ncfoundry-4.9.4 lib/cfoundry/v2/model_magic/has_summary.rb
ncfoundry-4.9.3 lib/cfoundry/v2/model_magic/has_summary.rb
ncfoundry-4.9.2 lib/cfoundry/v2/model_magic/has_summary.rb
new_cfoundry-4.9.2 lib/cfoundry/v2/model_magic/has_summary.rb
new_cfoundry-4.9.1 lib/cfoundry/v2/model_magic/has_summary.rb
new_cfoundry-4.9.0 lib/cfoundry/v2/model_magic/has_summary.rb
new_cfoundry-4.8.3 lib/cfoundry/v2/model_magic/has_summary.rb
new_cfoundry-4.8.2 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.7.2.rc1 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.7.1 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.7.1.rc1 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.7.0 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.6.3.rc3 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.6.3.rc2 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.6.3.rc1 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.6.2 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.6.1 lib/cfoundry/v2/model_magic/has_summary.rb
cfoundry-4.6.0 lib/cfoundry/v2/model_magic/has_summary.rb