Module: Funk
- Defined in:
- lib/funk.rb,
lib/funk/fn.rb,
lib/funk/graph.rb,
lib/funk/result.rb,
lib/funk/version.rb,
lib/funk/input_fn.rb,
lib/funk/evaluators/eager.rb,
lib/funk/instruments/timings.rb,
lib/funk/instruments/graph_viz.rb,
lib/funk/missing_dependencies_exception.rb
Defined Under Namespace
Modules: Evaluators, Instruments
Classes: Fn, Graph, InputFn, MissingDependenciesException, Result
Constant Summary
collapse
- VERSION =
"0.1.0"
- NO_INPUT_PROVIDED =
Object.new
Class Method Summary
collapse
Class Method Details
.compile(fns, strategy: Funk::Evaluators::Eager, instruments: []) ⇒ Object
7
8
9
10
|
# File 'lib/funk.rb', line 7
def self.compile(fns, strategy: Funk::Evaluators::Eager, instruments: [])
graph = Graph.new(fns)
strategy.new(graph, instruments: instruments)
end
|
.compile_module(mod, **args) ⇒ Object
12
13
14
15
16
17
18
19
|
# File 'lib/funk.rb', line 12
def self.compile_module(mod, **args)
dummy_receiver = Object.new
fn_hash = mod.instance_methods(false).each_with_object({}) do |meth, hash|
m = mod.instance_method(meth)
hash[meth] = m.bind(dummy_receiver)
end
compile(fn_hash, **args)
end
|