class Boxomojo
Public Class Methods
new(*names)
click to toggle source
# File lib/boxomojo.rb, line 61 def new *names kv = if names.last.is_a?(Hash) h = names.pop h[:names] = names h else {:names=>names} end c = Class.new { include Boxomojo::Mod kv.each { |k, sym_or_arr| arr = [sym_or_arr].flatten case k when :names arr.each { |name| eval <<-EOF, nil, __FILE__, __LINE__+1 def #{name} *args if block_given? new_box :#{name}, *args, &(Proc.new) else update :#{name}, args end # === if end EOF } when :block arr.each { |name| eval <<-EOF, nil, __FILE__, __LINE__ + 1 def #{name} *args, &blok new_box :#{name}, *args, blok end EOF } when :collect arr.each { |name| eval <<-EOF, nil, __FILE__, __LINE__+1 def #{name} *args collect :#{name}, args end EOF } else fail ArgumentError, "Unknow type: #{k.inspect}" end # === case k } } end