Module: Redstruct::Utils::Scriptable::ClassMethods

Defined in:
lib/redstruct/utils/scriptable.rb

Instance Method Summary collapse

Instance Method Details

#defscript(id, source) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/redstruct/utils/scriptable.rb', line 9

def defscript(id, source)
  constant = "SCRIPT_SOURCE_#{id.upcase}"
  class_eval <<~METHOD, __FILE__, __LINE__ + 1
  #{constant} = { id: '#{id}'.freeze, source: %(#{source}).freeze }.freeze
    def #{id}(keys: [], argv: [])
      return @factory.script(#{constant}[:id], #{constant}[:source]).eval(keys: keys, argv: argv)
    end
  METHOD
end