lib/kredis/attributes.rb in kredis-0.1.0 vs lib/kredis/attributes.rb in kredis-0.1.1
- old
+ new
@@ -23,9 +23,25 @@
else
instance_variable_set(ivar_symbol, Kredis.unique_list(kredis_key_for_attribute(name), limit: limit, config: config))
end
end
end
+
+ def kredis_flag(name, config: :shared)
+ ivar_symbol = :"@#{name}_kredis_flag"
+
+ define_method(name) do
+ if instance_variable_defined?(ivar_symbol)
+ instance_variable_get(ivar_symbol)
+ else
+ instance_variable_set(ivar_symbol, Kredis.flag(kredis_key_for_attribute(name), config: config))
+ end
+ end
+
+ define_method("#{name}?") do
+ instance_variable_defined?(ivar_symbol) && instance_variable_get(ivar_symbol).marked?
+ end
+ end
end
private
def kredis_key_for_attribute(name)
"#{self.class.name.tableize.gsub("/", ":")}:#{id}:#{name}"