Sha256: 4169fd5254da551108d52e02d91e66c8f03123d6fc88a6b432663b030779e23d
Contents?: true
Size: 946 Bytes
Versions: 15
Compression:
Stored size: 946 Bytes
Contents
#!/usr/bin/env ruby require 'set' require 'redis' module Flapjack module Data class Tag < ::Set attr_accessor :name def initialize(opts) @name = opts[:name] @redis = opts[:redis] preset = @redis.smembers(@name) enum = opts[:create] || [] @redis.sadd(@name, enum) unless enum.empty? super(enum | preset) end def self.find(name, opts) self.new(:name => name, :redis => opts[:redis]) end def self.create(name, enum = [], opts) self.new(:name => name, :create => enum, :redis => opts[:redis]) end def add(o) @redis.sadd(@name, o) unless o.empty? super(o) end def delete(o) @redis.srem(@name, o) super(o) end def merge(o) @redis.sadd(@name, o) unless o.empty? super(o) end end end end
Version data entries
15 entries across 15 versions & 1 rubygems