Sha256: 59421f077399b5f83cea4f61ba98d88edc775d373c06a64809df0dc6426e173d

Contents?: true

Size: 936 Bytes

Versions: 4

Compression:

Stored size: 936 Bytes

Contents

module ActiveType

  module NoTable

    extend ActiveSupport::Concern


    module ClassMethods

      def columns
        []
      end

      def destroy(*)
        new
      end

      def destroy_all(*)
        []
      end


      def find_by_sql(*)
        []
      end

    end

    def id
      nil
    end

    def attribute_names
      []
    end

    def transaction(&block)
      @_current_transaction_records ||= []
      yield
    end

    def destroy
      @destroyed = true
      freeze
    end

    def reload
      self
    end


    private

    def create(*)
      true
    end

    def update(*)
      true
    end

    if ActiveRecord::Base.private_method_defined?(:create_record)
      def create_record(*)
        true
      end

      def update_record(*)
        true
      end
    else
      def _create_record(*)
        true
      end

      def _update_record(*)
        true
      end
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
active_type-0.3.1 lib/active_type/no_table.rb
active_type-0.3.0 lib/active_type/no_table.rb
active_type-0.2.1 lib/active_type/no_table.rb
active_type-0.2.0 lib/active_type/no_table.rb