Module: Utusemi

Defined in:
lib/utusemi.rb,
lib/utusemi/core.rb,
lib/utusemi/railtie.rb,
lib/utusemi/version.rb,
lib/utusemi/definition.rb,
lib/utusemi/configuration.rb

Defined Under Namespace

Modules: Core Classes: AttributeDefinitionError, Configuration, Definition, Railtie

Constant Summary collapse

VERSION =
'0.0.1'

Class Method Summary collapse

Class Method Details

.configObject



23
24
25
# File 'lib/utusemi.rb', line 23

def config
  @configuration ||= Configuration.new
end

.configure(&block) ⇒ Object



27
28
29
# File 'lib/utusemi.rb', line 27

def configure(&block)
  config.instance_eval(&block)
end

.enableObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/utusemi.rb', line 9

def enable
  this = self
  ActiveSupport.on_load(:active_record) do
    require 'utusemi/core'
    # for instance
    this.include_to_activerecord_base
    # for model and relation
    this.prepend_to_activerecord_base
    this.prepend_to_activerecord_relation
    this.prepend_to_activerecord_eigenclass
    this.prepend_to_activerecord_associations_hasmanyassociation
  end
end

.include_to_activerecord_baseObject



31
32
33
# File 'lib/utusemi.rb', line 31

def include_to_activerecord_base
  ActiveRecord::Base.send(:include, Core::InstanceMethods)
end

.prepend_to_activerecord_associations_hasmanyassociationObject



52
53
54
# File 'lib/utusemi.rb', line 52

def prepend_to_activerecord_associations_hasmanyassociation
  ActiveRecord::Associations::HasManyAssociation.send(:prepend, Core::ActiveRecord::Associations)
end

.prepend_to_activerecord_baseObject



35
36
37
# File 'lib/utusemi.rb', line 35

def prepend_to_activerecord_base
  ActiveRecord::Base.send(:prepend, Core::ActiveRecord::Base)
end

.prepend_to_activerecord_eigenclassObject



44
45
46
47
48
49
50
# File 'lib/utusemi.rb', line 44

def prepend_to_activerecord_eigenclass
  activerecord_eigenclass.send(:prepend, Core::ActiveRecord::Querying)
  # for rails 3.x
  activerecord_eigenclass.send(:prepend, Core::ActiveRecord::RelationMethod) if Rails::VERSION::MAJOR == 3
  # for association
  activerecord_eigenclass.send(:prepend, Core::ActiveRecord::AssociationMethods)
end

.prepend_to_activerecord_relationObject



39
40
41
42
# File 'lib/utusemi.rb', line 39

def prepend_to_activerecord_relation
  ActiveRecord::Relation.send(:prepend, Core::ActiveRecord::QueryMethods)
  ActiveRecord::Relation.send(:prepend, Core::ActiveRecord::Relation)
end