diff --git a/Gemfile.lock b/Gemfile.lock index 3e263ca..8e905de 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,7 +5,6 @@ PATH activesupport (>= 2.3.0) json (>= 1.4.0) redis (>= 2.1.0) - system_timer (>= 1.0.0) time_ext (>= 0.2.8) GEM @@ -24,7 +23,6 @@ GEM rspec-expectations (2.1.0) diff-lcs (~> 1.1.2) rspec-mocks (2.1.0) - system_timer (1.0) time_ext (0.2.8) activesupport (>= 2.3.0) i18n (>= 0.4.2) @@ -39,6 +37,5 @@ DEPENDENCIES redis (>= 2.1.0) redistat! rspec (>= 2.1.0) - system_timer (>= 1.0.0) time_ext (>= 0.2.8) yard (>= 0.6.3) diff --git a/README.md b/README.md index f920837..54665c5 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ Redis fits perfectly with all of these requirements. It has atomic operations li gem install redistat +If you are using Ruby 1.8.x, it's recommended you also install the `system_timer` gem, as the Redis gem will otherwise complain. + ## Usage The simplest way to use Redistat is through the model wrapper. diff --git a/lib/redistat.rb b/lib/redistat.rb index e18c076..57bd17c 100644 --- a/lib/redistat.rb +++ b/lib/redistat.rb @@ -26,6 +26,7 @@ require 'redistat/summary' require 'redistat/core_ext/date' require 'redistat/core_ext/time' require 'redistat/core_ext/fixnum' +require 'redistat/core_ext/bignum' module Redistat @@ -54,7 +55,7 @@ module Redistat end def flush - puts "WARNING: Redistat.flush is deprecated. Use Redistat.redis.flush instead." + puts "WARNING: Redistat.flush is deprecated. Use Redistat.redis.flushdb instead." connection.flushdb end diff --git a/lib/redistat/core_ext/bignum.rb b/lib/redistat/core_ext/bignum.rb new file mode 100755 index 0000000..20e08e2 --- /dev/null +++ b/lib/redistat/core_ext/bignum.rb @@ -0,0 +1,8 @@ +class Bignum + include Redistat::DateHelper + + def to_time + Time.at(self) + end + +end diff --git a/lib/redistat/date.rb b/lib/redistat/date.rb index 48fb65e..218a914 100644 --- a/lib/redistat/date.rb +++ b/lib/redistat/date.rb @@ -22,6 +22,8 @@ module Redistat from_string(input) elsif input.is_a?(::Fixnum) from_integer(input) + elsif input.is_a?(::Bignum) + from_integer(input) end end diff --git a/lib/redistat/finder/date_set.rb b/lib/redistat/finder/date_set.rb index 32c5a60..0bb805b 100644 --- a/lib/redistat/finder/date_set.rb +++ b/lib/redistat/finder/date_set.rb @@ -42,7 +42,7 @@ module Redistat return find_start_year_for(start_date, end_date, lowest_depth) if unit == :year index = Date::DEPTHS.index(unit) nunit = Date::DEPTHS[(index > 0) ? index-1 : index] - if start_date < start_date.round(nunit) || start_date.next(nunit).beginning_of(nunit) > end_date.beginning_of(nunit) + if start_date < start_date.beginning_of_closest(nunit) || start_date.next(nunit).beginning_of(nunit) > end_date.beginning_of(nunit) add = [] start_date.beginning_of_each(unit, :include_start => lowest_depth).until(start_date.end_of(nunit)) do |t| add << t.to_rs.to_s(unit) if t < end_date.beginning_of(unit) @@ -59,7 +59,7 @@ module Redistat index = Date::DEPTHS.index(unit) nunit = Date::DEPTHS[(index > 0) ? index-1 : index] has_nunit = end_date.prev(nunit).beginning_of(nunit) >= start_date.beginning_of(nunit) - nearest_nunit = end_date.round(nunit) + nearest_nunit = end_date.beginning_of_closest(nunit) if end_date >= nearest_nunit && has_nunit add = [] end_date.beginning_of(nunit).beginning_of_each(unit, :include_start => true, :include_end => lowest_depth).until(end_date) do |t| 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/lib/redistat/version.rb b/lib/redistat/version.rb index 9420013..68057e8 100644 --- a/lib/redistat/version.rb +++ b/lib/redistat/version.rb @@ -1,3 +1,3 @@ module Redistat - VERSION = "0.0.6" + VERSION = "0.0.7" end \ No newline at end of file diff --git a/redistat.gemspec b/redistat.gemspec index 3fef21e..83968ca 100644 --- a/redistat.gemspec +++ b/redistat.gemspec @@ -22,7 +22,6 @@ Gem::Specification.new do |s| s.add_runtime_dependency 'activesupport', '>= 2.3.0' s.add_runtime_dependency 'json', '>= 1.4.0' s.add_runtime_dependency 'redis', '>= 2.1.0' - s.add_runtime_dependency 'system_timer', '>= 1.0.0' s.add_runtime_dependency 'time_ext', '>= 0.2.8' s.add_development_dependency 'rspec', '>= 2.1.0' diff --git a/spec/event_spec.rb b/spec/event_spec.rb index 14fd9e5..3550c59 100644 --- a/spec/event_spec.rb +++ b/spec/event_spec.rb @@ -20,7 +20,7 @@ describe Redistat::Event do @event.scope.should == @scope @event.label.should == @label @event.label_hash.should == @label_hash - @event.date.to_time.should == @date + @event.date.to_time.to_s.should == @date.to_s @event.stats.should == @stats @event.meta.should == @meta @event.options.should == @event.default_options.merge(@options) @@ -28,10 +28,10 @@ describe Redistat::Event do it "should allow changing attributes" do # date - @event.date.to_time.should == @date + @event.date.to_time.to_s.should == @date.to_s @date = Time.now @event.date = @date - @event.date.to_time.should == @date + @event.date.to_time.to_s.should == @date.to_s # label @event.label.should == @label @event.label_hash.should == @label_hash diff --git a/spec/key_spec.rb b/spec/key_spec.rb index bb2cd20..9d8bec4 100644 --- a/spec/key_spec.rb +++ b/spec/key_spec.rb @@ -46,10 +46,10 @@ describe Redistat::Key do @key.scope = @scope @key.scope.should == @scope # date - @key.date.to_time.should == @date + @key.date.to_time.to_s.should == @date.to_s @date = Time.now @key.date = @date - @key.date.to_time.should == @date + @key.date.to_time.to_s.should == @date.to_s # label @key.label.should == @label @key.label_hash == @label_hash 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