class UnitSoup::Mix
Attributes
name[R]
rules[R]
Public Class Methods
define(name, &block)
click to toggle source
# File lib/unit_soup/mix.rb, line 7 def self.define(name, &block) mix = Mix.new name if(block) block.arity < 1 ? mix.instance_eval(&block) : block.call(mix) end mix end
new(name, &block)
click to toggle source
# File lib/unit_soup/mix.rb, line 17 def initialize(name, &block) @name = name @rules = Set.new if(block) block.arity < 1 ? instance_eval(&block) : block.call(self) end end
Public Instance Methods
<<(arg)
click to toggle source
# File lib/unit_soup/mix.rb, line 25 def <<(arg) new_rules = [] if arg.is_a? Mix new_rules += arg.rules.to_a elsif arg.is_a? Rule new_rules << arg elsif arg.is_a? Enumerable new_rules += arg.map do |a| if a.is_a? Rule a else Rule.new(a) end end else new_rules << Rule.new(arg) end new_rules.each {|r| @rules.add r} end
Also aliased as: add
add_rules_from_file(file)
click to toggle source
# File lib/unit_soup/mix.rb, line 47 def add_rules_from_file(file) #TODO: parse rules from file end