def to_redis v
return v unless @opts[:class]
ret = case @opts[:class]
when ::Symbol, ::String, ::Fixnum, ::Float, Gibbler::Digest
v
else
if ::String === v
v
elsif @opts[:reference] == true
unless v.respond_to? :index
raise Familia::Problem, "#{v.class} does not have an index method"
end
unless v.kind_of?(Familia)
raise Familia::Problem, "#{v.class} is not Familia (#{name})"
end
v.index
elsif v.respond_to? dump_method
v.send dump_method
else
raise Familia::Problem, "No such method: #{v.class}.#{dump_method}"
end
end
if ret.nil?
Familia.ld "[#{self.class}\#to_redis] nil returned for #{@opts[:class]}\##{name}"
end
ret
end