Module: Qswarm::DSL::ClassMethods

Defined in:
lib/qswarm/dsl.rb

Instance Method Summary collapse

Instance Method Details

#dsl(*symbols) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/qswarm/dsl.rb', line 52

def dsl(*symbols)
  symbols.each do |sym|
    Qswarm::DSL::Config.module_eval "def #{sym}(*args, &block) @@caller.send(#{sym.inspect}, *args, &block); end"
    #Qswarm::DSL::Config.module_eval "def #{sym}(name, args = nil, &block) @@caller.send(#{sym.inspect}, name, args, &block); end"
    #Qswarm::DSL::Config.module_eval { define_method(sym, -> (name, args = nil, &block) { @@caller.send(sym.inspect, name, args, &block) } ) }
  end
end

#dsl_accessor(*symbols) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/qswarm/dsl.rb', line 38

def dsl_accessor(*symbols)
  symbols.each do |sym|
    Qswarm::DSL::Config.module_eval %{
      def #{sym}
        @@#{sym}
      end

      def #{sym}=(*val)
        @@#{sym} = val.size == 1 ? val[0] : val
      end
    }
  end
end