class Ordinary::Unit

Attributes

arguments[R]
process[R]
requirements[R]

Public Class Methods

new(original_unit, requirements = nil, arguments = [], &process) click to toggle source
# File lib/ordinary/unit.rb, line 33
def initialize(original_unit, requirements = nil, arguments = [], &process)
  raise ArgumentError, 'block not supplied' unless block_given?
  @original_unit = original_unit
  @requirements  = requirements
  @arguments     = arguments
  @process       = process
end

Public Instance Methods

inspect() click to toggle source
# File lib/ordinary/unit.rb, line 57
def inspect
  original_owner = ''

  if @original_unit
    argument_list  = @arguments.map(&:inspect) * ', '
    original_owner = " (#{@original_unit.owner} with [#{argument_list}])"
  end

  "#<#{instance_id} #{owner}#{original_owner}>"
end
to_proc() click to toggle source
# File lib/ordinary/unit.rb, line 51
def to_proc
  @requirements.load if @requirements and !@requirements.loaded?
  args = @arguments + (@original_unit ? @original_unit.arguments : [])
  lambda { |value| @process.call(value, *args) }
end
with(*arguments) click to toggle source
# File lib/ordinary/unit.rb, line 47
def with(*arguments)
  self.class.new(self, @requirements, arguments, &@process)
end