module Abid::PlayCore

Public Instance Methods

include(*mod) click to toggle source
Calls superclass method
# File lib/abid/play_core.rb, line 32
def include(*mod)
  ms = mod.map do |m|
    if m.is_a? Module
      m
    else
      mixin_task = task.application[m, task.scope]

      fail "#{m} is not a mixin" unless mixin_task.is_a? MixinTask

      mixin_task.mixin.tap do |mixin|
        # inherit params_spec
        mixin.params_spec.each do |k, v|
          params_spec[k] ||= v
        end
      end
    end
  end

  super(*ms)
end
param(name, **param_spec) click to toggle source
# File lib/abid/play_core.rb, line 22
def param(name, **param_spec)
  define_method(name) { task.params[name] }
  params_spec[name] = { significant: true }.merge(param_spec)
end
params_spec() click to toggle source
# File lib/abid/play_core.rb, line 18
def params_spec
  @params_spec ||= {}
end
set(name, value = nil, &block) click to toggle source
# File lib/abid/play_core.rb, line 3
def set(name, value = nil, &block)
  var = :"@#{name}"

  define_method(name) do
    unless instance_variable_defined?(var)
      if !value.nil?
        instance_variable_set(var, value)
      elsif block_given?
        instance_variable_set(var, instance_eval(&block))
      end
    end
    instance_variable_get(var)
  end
end
undef_param(name) click to toggle source
# File lib/abid/play_core.rb, line 27
def undef_param(name)
  params_spec.delete(name)
  undef_method(name) if method_defined?(name)
end