Sha256: cc69f67d95a84a6331853e7cbdc52a940b20288bb2391db6ca0d06d8b9b113b5
Contents?: true
Size: 619 Bytes
Versions: 1
Compression:
Stored size: 619 Bytes
Contents
class Bastet::Group attr_accessor :name, :criteria def initialize name, &block raise ArgumentError.new("Need to pass a criteria") unless block_given? validate_name!(name.to_s) @name = name.to_s @criteria = block persist! end def contains? entity criteria.call(entity) end private def validate_name! name if Bastet.redis.sismember('bastet_groups', name) raise ArgumentError.new("#{name} is already initialized as a group.") else Bastet.redis.sadd('bastet_groups', name) end end def persist! Bastet.groups << self end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bastet-0.1.0 | lib/bastet/group.rb |