Sha256: 6a041e36080ad02359959c1696af163978e1cfa427a349af7c9043f52bcb323a

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

require "active_support/core_ext/string/inflections"
require "active_support/core_ext/array/extract_options"
require 'active_support/core_ext/module/attribute_accessors'
require "active_support/lazy_load_hooks"

require 'guise/version'
require "guise/errors"
require "guise/registry"
require "guise/options"
require "guise/builders"
require "guise/scopes"
require 'guise/callbacks'
require "guise/introspection"
require "guise/syntax"

module Guise
  mattr_reader :registry
  @@registry = Registry.new

  DEFAULT_ASSOCIATION_NAME = "guises"
  DEFAULT_ATTRIBUTE_NAME = "value"

  def self.register_source(source_class, *guises)
    options = Options.new(source_class, *guises)
    registry[source_class.name] = options

    HasGuisesBuilder.new(options).build!
  end

  def self.register_association(association_class, source_class_name, association_options)
    options = registry[source_class_name]

    GuiseForBuilder.new(association_class, options, association_options).build!
  end
end

ActiveSupport.on_load(:active_record) do
  extend Guise::Syntax
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
guise-0.9.0 lib/guise.rb
guise-0.8.0 lib/guise.rb
guise-0.7.0 lib/guise.rb
guise-0.6.1 lib/guise.rb