From 115b223d7cf996b13c619a06176d74b9308e191b Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Wed, 29 Dec 2010 17:26:22 +0000 Subject: [PATCH] added class_name option to Model warpper for customizing the scope used in Redis keys --- lib/redistat/model.rb | 11 ++++++++++- spec/model_helper.rb | 7 +++++++ spec/model_spec.rb | 5 +++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/redistat/model.rb b/lib/redistat/model.rb index aea5308..8d9059b 100644 --- a/lib/redistat/model.rb +++ b/lib/redistat/model.rb @@ -39,6 +39,15 @@ module Redistat end end + def class_name(class_name = nil) + if !class_name.nil? + options[:class_name] = class_name + else + options[:class_name] || nil + end + end + alias :scope :class_name + def depth(depth = nil) if !depth.nil? options[:depth] = depth @@ -62,7 +71,7 @@ module Redistat private def name - @name ||= self.to_s + options[:class_name] || (@name ||= self.to_s) end end diff --git a/spec/model_helper.rb b/spec/model_helper.rb index 6b5489c..b0cfb24 100644 --- a/spec/model_helper.rb +++ b/spec/model_helper.rb @@ -20,4 +20,11 @@ class ModelHelper3 connect_to :port => 8379, :db => 14 +end + +class ModelHelper4 + include Redistat::Model + + class_name "FancyHelper" + end \ No newline at end of file diff --git a/spec/model_spec.rb b/spec/model_spec.rb index 8773bd1..f0000bf 100644 --- a/spec/model_spec.rb +++ b/spec/model_spec.rb @@ -8,6 +8,7 @@ describe Redistat::Model do ModelHelper1.redis.flushdb ModelHelper2.redis.flushdb ModelHelper3.redis.flushdb + ModelHelper4.redis.flushdb end it "should should name itself correctly" do @@ -19,6 +20,7 @@ describe Redistat::Model do ModelHelper2.depth.should == :day ModelHelper2.store_event.should == true ModelHelper2.hashed_label.should == true + ModelHelper2.class_name.should be_nil ModelHelper1.depth.should == nil ModelHelper1.store_event.should == nil @@ -35,6 +37,9 @@ describe Redistat::Model do ModelHelper1.depth.should == nil ModelHelper1.store_event.should == nil ModelHelper1.hashed_label.should == nil + + ModelHelper4.class_name.should == "FancyHelper" + ModelHelper4.send(:name).should == "FancyHelper" end it "should store and fetch stats" do