Module: Danica::DSL

Included in:
Builder, Expression, Function, VariablesHolder::VariablesBuilder
Defined in:
lib/danica/dsl.rb,
lib/danica/dsl/builder.rb

Defined Under Namespace

Classes: Builder

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build(&block) ⇒ Object



26
27
28
# File 'lib/danica/dsl.rb', line 26

def build(&block)
  builder.instance_eval(&block)
end

.register(method, clazz = nil, base = nil) ⇒ Object



16
17
18
# File 'lib/danica/dsl.rb', line 16

def register(method, clazz = nil, base = nil)
  Builder.new(method, clazz, base).build
end

.register_class(method, clazz) ⇒ Object



20
21
22
23
24
# File 'lib/danica/dsl.rb', line 20

def register_class(method, clazz)
  define_method(method) do |*args|
    clazz.new(*args)
  end
end

.register_operator(method, clazz = nil) ⇒ Object



8
9
10
# File 'lib/danica/dsl.rb', line 8

def register_operator(method, clazz = nil)
  register(method, clazz, 'Danica::Operator')
end

.register_wrapper(method, clazz = nil) ⇒ Object



12
13
14
# File 'lib/danica/dsl.rb', line 12

def register_wrapper(method, clazz = nil)
  register(method, clazz, 'Danica::Wrapper')
end

Instance Method Details

#function(*variables, &block) ⇒ Object



39
40
41
# File 'lib/danica/dsl.rb', line 39

def function(*variables, &block)
  Function.build(*variables, &block).new
end