Sha256: df3f6c400518cf7343a8641dcfdcd9c7191137fc3a23888142da553fc3ec0dad

Contents?: true

Size: 980 Bytes

Versions: 1

Compression:

Stored size: 980 Bytes

Contents

module RailsAdmin
  module Adapters
    module ActiveRecord
      class AbstractObject
        # undef almost all of this class's methods so it will pass almost
        # everything through to its delegate using method_missing (below).
        instance_methods.each { |m| undef_method m unless m.to_s =~ /(^__|^send$|^object_id$)/ }
        #                                                  ^^^^^
        # the unnecessary "to_s" above is a workaround for meta_where, see
        # https://github.com/sferik/rails_admin/issues/374

        attr_accessor :object

        def initialize(object)
          self.object = object
        end

        def set_attributes(attributes, role = nil)
          object.assign_attributes(attributes)
        end

        def save(options = { :validate => true })
          object.save(options)
        end

        def method_missing(name, *args, &block)
          self.object.send(name, *args, &block)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_admin-0.5.0 lib/rails_admin/adapters/active_record/abstract_object.rb