Sha256: 61bda1ce37fa0e2416461f895d3f331c0c5a024d8f8c00a5081e1d4d8540a649

Contents?: true

Size: 601 Bytes

Versions: 10

Compression:

Stored size: 601 Bytes

Contents

module Startback
  class Operation
    include Errors

    attr_accessor :world

    protected :world=

    def bind(world)
      return self unless world
      dup.tap{|op|
        op.world = world
      }
    end

    def method_missing(name, *args, &bl)
      return super unless args.empty? and bl.nil?
      return super unless world
      world.fetch(name){ super }
    end

  protected

    def run(operation)
      operation.bind(self.world).call
    end

  end # class Operation
end # module Startback
require_relative 'operation/error_operation'
require_relative 'operation/multi_operation'

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
startback-0.4.5 lib/startback/operation.rb
startback-0.4.4 lib/startback/operation.rb
startback-0.4.3 lib/startback/operation.rb
startback-0.4.2 lib/startback/operation.rb
startback-0.4.1 lib/startback/operation.rb
startback-0.4.0 lib/startback/operation.rb
startback-0.3.2 lib/startback/operation.rb
startback-0.3.1 lib/startback/operation.rb
startback-0.3.0 lib/startback/operation.rb
startback-0.2.0 lib/startback/operation.rb