class CarryOut::Unit
Public Class Methods
appending_parameter(method_name, var)
click to toggle source
# File lib/carry_out/unit.rb, line 24 def self.appending_parameter(method_name, var) instance_var = "@#{var}" define_method(method_name.to_sym) do |value| existing = if instance_variable_defined?(instance_var) [ instance_variable_get("@#{var}") ].flatten(1) else [] end instance_variable_set(instance_var, (existing || []) << value) self end end
call() { |unit| ... }
click to toggle source
# File lib/carry_out/unit.rb, line 14 def self.call(&block) unit = self.new yield unit if block unit.call end
has_parameter?(method)
click to toggle source
# File lib/carry_out/unit.rb, line 20 def self.has_parameter?(method) self.instance_methods.include?(method) end
new()
click to toggle source
# File lib/carry_out/unit.rb, line 8 def initialize self.class.parameter_defaults.each do |p, d| instance_variable_set("@#{p}", d) end end
parameter(method_name, var = nil, options = {})
click to toggle source
# File lib/carry_out/unit.rb, line 40 def self.parameter(method_name, var = nil, options = {}) if var.kind_of?(Hash) options = var var = nil end var ||= method_name define_method(method_name.to_sym) do |*args| instance_variable_set("@#{var}", args.length == 0 ? true : args.first) self end parameter_defaults[var] = options[:default] unless options[:default].nil? end
parameter_defaults()
click to toggle source
# File lib/carry_out/unit.rb, line 56 def self.parameter_defaults @parameter_defaults ||= {} end
Public Instance Methods
call()
click to toggle source
# File lib/carry_out/unit.rb, line 4 def call raise "Expected #{self.class} to define #{self.class}#call" unless self.class == Unit end