Sha256: fc5373004681462054d9ce2e269cc621cbc944a131b8582d7db21e614dd88679

Contents?: true

Size: 636 Bytes

Versions: 1

Compression:

Stored size: 636 Bytes

Contents

module Leap
  class Committee
    attr_reader :name, :quorums
    
    def initialize(name)
      @name = name
      @quorums = []
    end
    
    def report(characteristics, considerations)
      quorums.detect do |quorum|
        next unless quorum.satisfied_by? characteristics
        if conclusion = quorum.acknowledge(characteristics, considerations)
          break conclusion
        end
      end
    end
    
    include ::Blockenspiel::DSL
    def quorum(name, options = {}, &blk)
      @quorums << ::Leap::Quorum.new(name, options, blk)
    end
    
    def default(&blk)
      quorum 'default', {}, &blk
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
leap-0.1.0 lib/leap/committee.rb