Module: Familia::RedisType::ClassMethods

Included in:
Familia::RedisType
Defined in:
lib/familia/redistype.rb

Instance Method Summary collapse

Instance Method Details

#db(val = nil) ⇒ Object



41
42
43
44
# File 'lib/familia/redistype.rb', line 41

def db(val = nil)
  @db = val unless val.nil?
  @db || parent&.db
end

#has_relations?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/familia/redistype.rb', line 64

def has_relations?
  @has_relations ||= false
end

#inherited(obj) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/familia/redistype.rb', line 51

def inherited(obj)
  Familia.trace :REDISTYPE, nil, "#{obj} is my kinda type", caller(1..1) if Familia.debug?
  obj.db = db
  obj.ttl = ttl # method added via Features::Expiration
  obj.uri = uri
  obj.parent = self
  super(obj)
end

#register(klass, methname) ⇒ Object

To be called inside every class that inherits RedisType methname is the term used for the class and instance methods that are created for the given klass (e.g. set, list, etc)



35
36
37
38
39
# File 'lib/familia/redistype.rb', line 35

def register(klass, methname)
  Familia.ld "[#{self}] Registering #{klass} as #{methname.inspect}"

  @registered_types[methname] = klass
end

#uri(val = nil) ⇒ Object



46
47
48
49
# File 'lib/familia/redistype.rb', line 46

def uri(val = nil)
  @uri = val unless val.nil?
  @uri || (parent ? parent.uri : Familia.uri)
end

#valid_keys_only(opts) ⇒ Object



60
61
62
# File 'lib/familia/redistype.rb', line 60

def valid_keys_only(opts)
  opts.select { |k, _| RedisType.valid_options.include? k }
end