Module: Lab42::Curry

Defined in:
lib/lab42/curry.rb,
lib/lab42/curry/errors.rb,
lib/lab42/curry/currier.rb,
lib/lab42/curry/version.rb,
lib/lab42/curry/runtime_arg.rb,
lib/lab42/curry/arg_compiler.rb,
lib/lab42/curry/computed_arg.rb,
lib/lab42/curry/compiletime_args.rb,
lib/lab42/curry/arg_compiler/phase2.rb,
lib/lab42/curry/arg_compiler/positionals.rb

Defined Under Namespace

Classes: ArgCompiler, CompiletimeArgs, ComputedArg, Currier, RuntimeArg

Constant Summary collapse

DuplicateBlock =
Class.new RuntimeError
DuplicateKeywordArgument =
Class.new RuntimeError
DuplicatePositionSpecification =
Class.new RuntimeError
MissingRuntimeArg =
Class.new RuntimeError
VERSION =
"0.2.0"

Instance Method Summary collapse

Instance Method Details

#compiletime_args(positions) ⇒ Object Also known as: ct_args



16
17
18
# File 'lib/lab42/curry.rb', line 16

def compiletime_args(positions)
  CompiletimeArgs.new(positions)
end

#compute_arg(position = nil, &blk) ⇒ Object Also known as: comp



21
22
23
# File 'lib/lab42/curry.rb', line 21

def compute_arg(position = nil, &blk)
  ComputedArg.new(position, blk)
end

#curry(method_or_name, *curry_time_args, **curry_time_kwds, &blk) ⇒ Object



8
9
10
# File 'lib/lab42/curry.rb', line 8

def curry(method_or_name, *curry_time_args, **curry_time_kwds, &blk)
  Currier.new(method_or_name, curry_time_args, curry_time_kwds, context: self, &blk)
end

#curry!(method_or_name, *curry_time_args, **curry_time_kwds, &blk) ⇒ Object



12
13
14
# File 'lib/lab42/curry.rb', line 12

def curry!(method_or_name, *curry_time_args, **curry_time_kwds, &blk)
  Currier.new(method_or_name, curry_time_args, curry_time_kwds, context: self, allow_override: true, &blk)
end

#runtime_arg(position = nil) ⇒ Object Also known as: rt_arg



26
27
28
# File 'lib/lab42/curry.rb', line 26

def runtime_arg position=nil
  RuntimeArg.new position
end