Sha256: 794892c40486064411cadac4ee9930ec10f23df5f1c95f4dcc71d9810eb30c00

Contents?: true

Size: 539 Bytes

Versions: 1

Compression:

Stored size: 539 Bytes

Contents

module Leap
  class Quorum
    attr_reader :name, :requirements, :supplements, :process
    def initialize(name, options, blk)
      @name = name
      @requirements = Array.wrap(options[:needs])
      @supplements = Array.wrap(options[:appreciates])
      @process = blk
    end
    
    def satisfied_by?(characteristics)
      (requirements - characteristics.keys).empty?
    end
    
    def acknowledge(characteristics, considerations)
      process.call(*considerations.unshift(characteristics)[0...process.arity])
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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