trackoid 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -315,9 +315,23 @@ Trackoid will correctly translate dates for you (hopefully) if you pass a date t
315
315
 
316
316
  = Revision History
317
317
 
318
+ 0.3.1 - Implemented 'to_f' into ReaderExtender to be compatible with
319
+ ActionView::Template
320
+ Using "%.1f" % number gave "Can't convert to float"
321
+
322
+ - Renamed the internal field of ReaderExtender to "total" so that
323
+ converting to json automatically gives you:
324
+
325
+ {
326
+ "total": <total value>
327
+ "hours": [<hours array>]
328
+ }
329
+
318
330
  0.3.0 - Biggest change ever. Read <b>Changes for TZ support</b> above.
319
331
  <b>YOU WILL NEED A MIGRATION FOR EXISTING DATA</b>
320
332
 
333
+ ------
334
+
321
335
  0.2.0 - Added 'reset' and 'erase' methods to tracker fields:
322
336
  * Reset does the same as "set" but also sets aggregate fields.
323
337
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.0
1
+ 0.3.1
@@ -20,7 +20,7 @@ module Mongoid #:nodoc:
20
20
  #
21
21
  class ReaderExtender
22
22
  def initialize(number, hours)
23
- @number = number
23
+ @total = number
24
24
  @hours = hours
25
25
  end
26
26
 
@@ -29,21 +29,25 @@ module Mongoid #:nodoc:
29
29
  end
30
30
 
31
31
  def to_s
32
- @number.to_s
32
+ @total.to_s
33
+ end
34
+
35
+ def to_f
36
+ @total.to_f
33
37
  end
34
38
 
35
39
  def ==(other)
36
- @number == other
40
+ @total == other
37
41
  end
38
42
 
39
43
  def <=>(other)
40
- @number <=> other
44
+ @total <=> other
41
45
  end
42
46
 
43
47
  def +(other)
44
- return @number + other unless other.is_a?(ReaderExtender)
48
+ return @total + other unless other.is_a?(ReaderExtender)
45
49
 
46
- @number = @number + other
50
+ @total = @total + other
47
51
  @hours = @hours.zip(other.hourly).map!(&:sum)
48
52
  self
49
53
  end
@@ -55,7 +59,7 @@ module Mongoid #:nodoc:
55
59
  # to the underliying FixNum
56
60
  #
57
61
  def method_missing(name, *args, &blk)
58
- ret = @number.send(name, *args, &blk)
62
+ ret = @total.send(name, *args, &blk)
59
63
  ret.is_a?(Numeric) ? ReaderExtender.new(ret, @hours) : ret
60
64
  end
61
65
  end
@@ -8,6 +8,25 @@ describe Mongoid::Tracking::ReaderExtender do
8
8
  (num * 10).should == 50
9
9
  end
10
10
 
11
+ it "should behave like a float" do
12
+ num = Mongoid::Tracking::ReaderExtender.new(5, [])
13
+ num.should == 5.0
14
+ num.should < 10.0
15
+ (num * 10.0).should == 50.0
16
+ end
17
+
18
+ it "to_f should return a Float (for ActionView::Template compat.)" do
19
+ num = Mongoid::Tracking::ReaderExtender.new(5, [])
20
+ num.to_f.should == 5.0
21
+ num.to_f.should be_kind_of(Float)
22
+ end
23
+
24
+ it "as_json should return a 'total' and a 'hours' member" do
25
+ json = Mongoid::Tracking::ReaderExtender.new(5, []).as_json
26
+ json.should have_key("total")
27
+ json.should have_key("hours")
28
+ end
29
+
11
30
  it "should be able to add additional data to it" do
12
31
  num = Mongoid::Tracking::ReaderExtender.new(5, [1, 2, 3, 4])
13
32
  num.hourly.should == [1, 2, 3, 4]
data/trackoid.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{trackoid}
8
- s.version = "0.3.0"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jose Miguel Perez"]
12
- s.date = %q{2011-04-15}
12
+ s.date = %q{2011-04-16}
13
13
  s.description = %q{Trackoid uses an embeddable approach to track analytics data using the poweful features of MongoDB for scalability}
14
14
  s.email = %q{josemiguel@perezruiz.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 0
9
- version: 0.3.0
8
+ - 1
9
+ version: 0.3.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jose Miguel Perez
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-04-15 00:00:00 +02:00
17
+ date: 2011-04-16 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency