Sha256: 07fdb5c4f42d5f2c15c36bc6c9df5aa034f61a47df08387f3a8f653eec4405b4

Contents?: true

Size: 1.1 KB

Versions: 5

Compression:

Stored size: 1.1 KB

Contents

require 'ostruct'

require 'active_support'
require 'active_support/core_ext/string/inflections'

require 'passive_record/version'
require 'passive_record/core/identifier'
require 'passive_record/core/query'

require 'passive_record/class_inheritable_attrs'

require 'passive_record/associations'
require 'passive_record/hooks'

require 'passive_record/pretty_printing'

require 'passive_record/instance_methods'
require 'passive_record/class_methods'

module PassiveRecord
  def self.included(base)
    base.send :include, InstanceMethods
    base.send :include, ClassLevelInheritableAttributes

    base.class_eval do
      inheritable_attrs :hooks, :associations
    end

    base.extend(ClassMethods)

    model_classes << base
  end

  def self.model_classes
    @model_classes ||= []
  end

  def self.drop_all
    (model_classes + model_classes.flat_map(&:descendants)).each(&:destroy_all)
  end

  def self.configure
    yield configuration
  end

  def self.configuration
    @config ||= default_configuration
  end

  def self.default_configuration
    OpenStruct.new(
      :identify_using => Identifier
    )
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
passive_record-0.2.3 lib/passive_record.rb
passive_record-0.2.2 lib/passive_record.rb
passive_record-0.2.1 lib/passive_record.rb
passive_record-0.2.0 lib/passive_record.rb
passive_record-0.1.8 lib/passive_record.rb