module Ordinary::Builder::Context
Attributes
current[R]
modules[R]
Public Class Methods
new(*args, &block)
click to toggle source
# File lib/ordinary/builder.rb, line 44 def self.new(*args, &block) @current.new(*args, &block) end
new(block = nil)
click to toggle source
# File lib/ordinary/builder.rb, line 48 def initialize(block = nil) @block = block ? Unit.new(nil, &block) : nil end
register(*modules)
click to toggle source
# File lib/ordinary/builder.rb, line 36 def self.register(*modules) update(@modules | modules) end
unregister(*modules)
click to toggle source
# File lib/ordinary/builder.rb, line 40 def self.unregister(*modules) update(@modules - modules) end
Private Class Methods
update(modules)
click to toggle source
# File lib/ordinary/builder.rb, line 28 def self.update(modules) @current = Class.new { include *[*modules, Context] }.freeze @modules = modules.freeze end
Public Instance Methods
block()
click to toggle source
# File lib/ordinary/builder.rb, line 52 def block unless @block e = BlockNotGiven.new("`block' unit cannot use if a block is not given") e.set_backtrace(caller) raise e end @block end
inspect()
click to toggle source
# File lib/ordinary/builder.rb, line 68 def inspect header = "#{Context.name}:0x%014x" % (object_id << 1) module_list = Context.modules.map(&:name).sort * ', ' with_block = @block ? ' with a block' : '' "#<#{header} [#{module_list}]#{with_block}>" end
method_missing(method_name, *args, &block)
click to toggle source
# File lib/ordinary/builder.rb, line 62 def method_missing(method_name, *args, &block) e = UnitNotDefined.new("`#{method_name}' unit is not defined") e.set_backtrace(caller) raise e end