Sha256: 0d9e7cfa7aaa72b2da0873353f15fe96fd230a38bcc893f9fc0d85a0c665d20d

Contents?: true

Size: 1.61 KB

Versions: 7

Compression:

Stored size: 1.61 KB

Contents

module Devise
  module Orm
    module DataMapper
      module Compatibility
        extend ActiveSupport::Concern

        module ClassMethods
          # Hooks for confirmable
          def before_create(*args)
            wrap_hook(:before, :create, *args)
          end

          def after_create(*args)
            wrap_hook(:after, :create, *args)
          end

          def before_save(*args)
            wrap_hook(:before, :save, *args)
          end

          def wrap_hook(action, method, *args)
            options = args.extract_options!

            args.each do |callback|
              callback_method = :"#{callback}_callback_wrap"
              send action, method, callback_method
              class_eval <<-METHOD, __FILE__, __LINE__ + 1
                def #{callback_method}
                  #{callback} if #{options[:if] || true}
                end
              METHOD
            end
          end

          # Add ActiveRecord like finder
          def find(*args)
            case args.first
            when :first, :all
              send(args.shift, *args)
            else
              get(*args)
            end
          end
        end

        def changed?
          dirty?
        end

        def save(options=nil)
          if options.is_a?(Hash) && options[:validate] == false
            save!
          else
            super()
          end
        end

        def update_attribute(name, value)
          update(name => value)
        end
        
        def update_attributes(*args)
          update(*args)
        end

        def invalid?
          !valid?
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
dm-devise-1.1.8 lib/devise/orm/data_mapper/compatibility.rb
dm-devise-1.1.6 lib/devise/orm/data_mapper/compatibility.rb
dm-devise-1.1.5 lib/devise/orm/data_mapper/compatibility.rb
dm-devise-1.1.4 lib/devise/orm/data_mapper/compatibility.rb
dm-devise-1.1.3 lib/devise/orm/data_mapper/compatibility.rb
dm-devise-1.1.2 lib/devise/orm/data_mapper/compatibility.rb
dm-devise-1.1.1 lib/devise/orm/data_mapper/compatibility.rb