class Nodus::Nodes::Generator
Given: enumerator or something that can be to_enum’ed Given: lambda or proc or block - params are gathered by reflection Given: class - assumed to be enumerable (or perhaps have a wrappable loop function?) params gathered via
reflection on initialize.
see stackoverflow.com/questions/4982630/trouble-yielding-inside-a-block-lambda when we get to lambdas etc.
Attributes
kernel[R]
Public Class Methods
on_compose(title, kernel=nil, &block)
click to toggle source
Calls superclass method
Nodus::Nodes::Node::on_compose
# File lib/nodus/nodes.rb, line 120 def on_compose(title, kernel=nil, &block) super(title) @kernel = kernel || block case @kernel when Enumerator then @kernel = @kernel.lazy # No parameters when Class init_params = @kernel.instance_method(:initialize).parameters init_params.each{|kind,pname| param(pname, (kind == :req ? :required : :optional))} when Node # TODO: Simply verify that the kernel has no input ports and create this thin wrapper around it... # Although it still might make sense to warn that this is a senseless act? (unless it becomes # necessary for some sorts of renaming etc.?) error NotImplementedError else error ArgumentError, "Generator Nodes don't support #{kernel.inspect} as a kernel" end end