module Flatter::Extension

Public Instance Methods

dependencies() click to toggle source
# File lib/flatter/extension.rb, line 21
def dependencies
  @dependencies ||= []
end
hook!() click to toggle source
# File lib/flatter/extension.rb, line 25
def hook!
  return false if hooked?

  use_dependencies

  mapping.extend!
  mapper.extend!
  factory.extend!

  hook_callback!

  @hooked = true
end
hooked?() click to toggle source
# File lib/flatter/extension.rb, line 54
def hooked?
  !!@hooked
end

Private Instance Methods

depends_on(*extensions) click to toggle source
# File lib/flatter/extension.rb, line 16
def depends_on(*extensions)
  dependencies.concat extensions
end
factory() click to toggle source
# File lib/flatter/extension.rb, line 68
def factory
  @factory ||= Factory.new(self)
end
hook_callback!() click to toggle source
# File lib/flatter/extension.rb, line 44
def hook_callback!
  instance_exec(&@hook_callback) if @hook_callback.present?
end
hooked(&block) click to toggle source
# File lib/flatter/extension.rb, line 39
def hooked(&block)
  @hook_callback = block
end
mapper() click to toggle source
# File lib/flatter/extension.rb, line 63
def mapper
  @mapper ||= Mapper.new(self)
end
mapping() click to toggle source
# File lib/flatter/extension.rb, line 58
def mapping
  @mapping ||= Mapping.new(self)
end
register_as(name) click to toggle source
# File lib/flatter/extension.rb, line 11
def register_as(name)
  ::Flatter.extensions[name] = self
end
use_dependencies() click to toggle source
# File lib/flatter/extension.rb, line 49
def use_dependencies
  dependencies.each{ |extension| ::Flatter.use extension }
end