Sha256: 7807a2b8c805f0ea3456c263e4ec9b5350a5fea8b45202b555f07a3b7f0e9626

Contents?: true

Size: 580 Bytes

Versions: 1

Compression:

Stored size: 580 Bytes

Contents

module Leap
  module Subject
    def self.extended(base)
      base.instance_variable_set :@decisions, {}
      base.send :attr_reader, :minutes
    end
    attr_reader :decisions
    def decide(goal, options = {}, &blk)
      decisions[goal] = ::Leap::Decision.new goal, options
      Blockenspiel.invoke(blk, decisions[goal])
      define_method goal do |*considerations|
        @minutes ||= {}
        @minutes[goal] = self.class.decisions[goal].make(send(self.class.decisions[goal].signature_method), *considerations)
        @minutes[goal][goal]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
leap-0.2.6 lib/leap/subject.rb