class Alki::Dsl::Base

Attributes

ctx[R]

Public Class Methods

dsl_info() click to toggle source
# File lib/alki/dsl/base.rb, line 42
def self.dsl_info
  {}
end
generate(evaluator,ctx) click to toggle source
# File lib/alki/dsl/base.rb, line 9
def self.generate(evaluator,ctx)
  obj = new(ctx,evaluator)
  result = {methods: {}}
  info = self.dsl_info

  result[:init] = obj.method(info[:init]) if info[:init]
  result[:finish] = obj.method(info[:finish]) if info[:finish]
  result[:requires] = info[:requires] if info[:requires]

  if info[:methods]
    info[:methods].each do |method|
      if method.is_a?(Array)
        name, method = method
      else
        name = method
      end
      result[:methods][name] = obj.method method
    end
  end

  if info[:helpers]
    info[:helpers].each do |method|
      if method.is_a?(Array)
        name, method = method
      else
        name = method
      end
      result[:helpers][name] = obj.method method
    end
  end
  evaluator.update result
end
helpers() click to toggle source
# File lib/alki/dsl/base.rb, line 46
def self.helpers
  []
end
new(ctx,evaluator) click to toggle source
# File lib/alki/dsl/base.rb, line 50
def initialize(ctx,evaluator)
  @ctx = ctx
  @evaluator = evaluator
end