Sha256: f69ddcf3d8b9a70304598da583395609eaf89e8d7aea5e39d7de28565c4306dd

Contents?: true

Size: 640 Bytes

Versions: 1

Compression:

Stored size: 640 Bytes

Contents

module Kangaroo
  module Model
    module RemoteExecute
      def call name, *args
        return_value = remote.call! name, ids_for_execute, *args
        
        # TODO: handle warnings etc
        if Hash === return_value && return_value[:value]
          handle_updated_values return_value[:value] 
          self
        else
          return_value
        end
      end
      
      protected
      def handle_updated_values values
        values.each do |key, value|
          write_attribute key, value
        end
      end
      
      private
      def ids_for_execute
        new_record? ? [] : [id]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kangaroo-0.1.0.alpha1 lib/kangaroo/model/remote_execute.rb