class Ciphr::FunctionRegistry
Public Class Methods
global()
click to toggle source
# File lib/ciphr/function_registry.rb, line 36 def self.global @@global end
new()
click to toggle source
# File lib/ciphr/function_registry.rb, line 3 def initialize() @function_classes = [] @functions = [] @function_aliases = {} end
Public Instance Methods
[](name)
click to toggle source
# File lib/ciphr/function_registry.rb, line 23 def [](name) @function_aliases[name] || (raise InvalidFunctionError.new(name)) end
function_aliases()
click to toggle source
# File lib/ciphr/function_registry.rb, line 19 def function_aliases @function_aliases end
functions()
click to toggle source
# File lib/ciphr/function_registry.rb, line 27 def functions @functions end
register(klass)
click to toggle source
# File lib/ciphr/function_registry.rb, line 9 def register(klass) @function_classes << klass end
setup(classes=@function_classes)
click to toggle source
# File lib/ciphr/function_registry.rb, line 13 def setup(classes=@function_classes) @functions = classes.map{|c| [c,c.variants]}.select{|a| a[1] && a[1].size > 0}.map{|a| [a[0], a[1].map{|v| [[v[0]].flatten.uniq, v[1]]}]} @function_aliases = Hash[@functions.map{|c,vs| vs.map{|v| [v[0]].flatten.map{|n| [n,[c, v[1]]]}}.flatten(1)}.flatten(1)] end