Sha256: 8498e41a7b8e34724ebba80bc95ecaf2f6d91734397f16915bfc81b10aafef7a

Contents?: true

Size: 690 Bytes

Versions: 4

Compression:

Stored size: 690 Bytes

Contents

module Micronaut

  class World
  
    def self.reset
      @behaviour_groups = []
    end

    reset
  
    def self.behaviour_groups
      @behaviour_groups
    end
    
    def self.find(conditions={})
      return [] if conditions.empty?
      
      behaviour_groups.select do |group|
        conditions.all? do |key, value|
          case value
          when Hash
            value.all? { |k, v| group.metadata[key][k] == v }
          when Regexp
            group.metadata[key] =~ value
          when Proc
            value.call(group.metadata[key]) rescue false
          else
            group.metadata[key] == value
          end
        end
      end
    end
    
  end
  
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
spicycode-micronaut-0.0.7 lib/micronaut/world.rb
spicycode-micronaut-0.0.9 lib/micronaut/world.rb
spicycode-micronaut-0.1.0 lib/micronaut/world.rb
spicycode-micronaut-0.1.1 lib/micronaut/world.rb