trackoid 0.3.6 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +10 -0
- data/README.rdoc +3 -1
- data/Rakefile +0 -3
- data/VERSION +1 -1
- data/lib/trackoid/aggregates.rb +4 -2
- data/lib/trackoid/tracker.rb +3 -3
- data/lib/trackoid/tracking.rb +1 -1
- data/spec/aggregates_spec.rb +3 -3
- data/trackoid.gemspec +15 -12
- metadata +63 -15
data/Gemfile
ADDED
data/README.rdoc
CHANGED
@@ -47,7 +47,7 @@ Of course, you can also show visits in a time range:
|
|
47
47
|
|
48
48
|
<h1>Visits on last 7 days</h1>
|
49
49
|
<ul>
|
50
|
-
<% @page.visits.last_days(7).reverse.each_with_index do |i
|
50
|
+
<% @page.visits.last_days(7).reverse.each_with_index do |d, i| %>
|
51
51
|
<li><%= (DateTime.now - i).to_s %> : <%= d %></li>
|
52
52
|
<% end %>
|
53
53
|
</ul>
|
@@ -315,6 +315,8 @@ 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.7 - Fixed support for Rails 3.1 and Mongoid 2.2
|
319
|
+
|
318
320
|
0.3.6 - Optimization for 'on' reader for ranges. Many times fold quicker.
|
319
321
|
|
320
322
|
0.3.5 - BUGFIX: ReaderExtender "+" acted like an accumulator. Problem more
|
data/Rakefile
CHANGED
@@ -10,7 +10,6 @@ begin
|
|
10
10
|
gem.email = "josemiguel@perezruiz.com"
|
11
11
|
gem.homepage = "http://github.com/twoixter/trackoid"
|
12
12
|
gem.authors = ["Jose Miguel Perez"]
|
13
|
-
gem.add_development_dependency "rspec", ">= 2.2.0"
|
14
13
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
14
|
end
|
16
15
|
Jeweler::GemcutterTasks.new
|
@@ -28,8 +27,6 @@ RSpec::Core::RakeTask.new(:rcov) do |spec|
|
|
28
27
|
spec.rcov = true
|
29
28
|
end
|
30
29
|
|
31
|
-
task :spec => :check_dependencies
|
32
|
-
|
33
30
|
task :default => :spec
|
34
31
|
|
35
32
|
require 'rake/rdoctask'
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.7
|
data/lib/trackoid/aggregates.rb
CHANGED
@@ -10,7 +10,7 @@ module Mongoid #:nodoc:
|
|
10
10
|
base.class_eval do
|
11
11
|
extend ClassMethods
|
12
12
|
|
13
|
-
|
13
|
+
class_attribute :aggregate_fields, :aggregate_klass
|
14
14
|
self.aggregate_fields = {}
|
15
15
|
self.aggregate_klass = nil
|
16
16
|
delegate :aggregate_fields, :aggregate_klass, :aggregated?,
|
@@ -85,7 +85,9 @@ module Mongoid #:nodoc:
|
|
85
85
|
|
86
86
|
# Defines the aggregation model. It checks for class name conflicts
|
87
87
|
def define_aggregate_model
|
88
|
-
|
88
|
+
unless defined?(Rails) && Rails.env.development?
|
89
|
+
raise Errors::ClassAlreadyDefined.new(internal_aggregates_name) if foreign_class_defined?
|
90
|
+
end
|
89
91
|
|
90
92
|
parent = self
|
91
93
|
define_klass do
|
data/lib/trackoid/tracker.rb
CHANGED
@@ -46,7 +46,7 @@ module Mongoid #:nodoc:
|
|
46
46
|
#
|
47
47
|
update_data(data_for(date) + how_much, date)
|
48
48
|
@owner.collection.update(
|
49
|
-
@owner.
|
49
|
+
@owner.atomic_selector,
|
50
50
|
{ (how_much > 0 ? "$inc" : "$dec") => update_hash(how_much.abs, date) },
|
51
51
|
:upsert => true, :safe => false
|
52
52
|
)
|
@@ -76,7 +76,7 @@ module Mongoid #:nodoc:
|
|
76
76
|
raise Errors::ModelNotSaved, "Can't update a new record" if @owner.new_record?
|
77
77
|
update_data(how_much, date)
|
78
78
|
@owner.collection.update(
|
79
|
-
@owner.
|
79
|
+
@owner.atomic_selector, { "$set" => update_hash(how_much, date) },
|
80
80
|
:upsert => true, :safe => false
|
81
81
|
)
|
82
82
|
return unless @owner.aggregated?
|
@@ -116,7 +116,7 @@ module Mongoid #:nodoc:
|
|
116
116
|
|
117
117
|
remove_data(date)
|
118
118
|
@owner.collection.update(
|
119
|
-
@owner.
|
119
|
+
@owner.atomic_selector,
|
120
120
|
{ "$unset" => update_hash(1, date) },
|
121
121
|
:upsert => true, :safe => false
|
122
122
|
)
|
data/lib/trackoid/tracking.rb
CHANGED
data/spec/aggregates_spec.rb
CHANGED
@@ -96,9 +96,9 @@ describe Mongoid::Tracking::Aggregates do
|
|
96
96
|
|
97
97
|
it "should have Mongoid accessors defined" do
|
98
98
|
tm = TestModel.create(:name => "Dummy")
|
99
|
-
tm.send(tm.class.send(:internal_accessor_name, "browsers")).class.should == Mongoid::
|
100
|
-
tm.send(tm.class.send(:internal_accessor_name, "referers")).class.should == Mongoid::
|
101
|
-
tm.send(tm.class.send(:internal_accessor_name, "quarters")).class.should == Mongoid::
|
99
|
+
tm.send(tm.class.send(:internal_accessor_name, "browsers")).class.should == Mongoid::Relations::Targets::Enumerable
|
100
|
+
tm.send(tm.class.send(:internal_accessor_name, "referers")).class.should == Mongoid::Relations::Targets::Enumerable
|
101
|
+
tm.send(tm.class.send(:internal_accessor_name, "quarters")).class.should == Mongoid::Relations::Targets::Enumerable
|
102
102
|
end
|
103
103
|
|
104
104
|
it "should indicate this is an aggregated traking object with aggregated?" do
|
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.
|
8
|
+
s.version = "0.3.7"
|
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-05
|
12
|
+
s.date = %q{2011-09-05}
|
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 = [
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".rspec",
|
22
|
+
"Gemfile",
|
22
23
|
"LICENSE",
|
23
24
|
"README.rdoc",
|
24
25
|
"Rakefile",
|
@@ -49,28 +50,30 @@ Gem::Specification.new do |s|
|
|
49
50
|
s.require_paths = ["lib"]
|
50
51
|
s.rubygems_version = %q{1.3.7}
|
51
52
|
s.summary = %q{Trackoid is an easy scalable analytics tracker using MongoDB and Mongoid}
|
52
|
-
s.test_files = [
|
53
|
-
"spec/aggregates_spec.rb",
|
54
|
-
"spec/ext/range_spec.rb",
|
55
|
-
"spec/ext/time_spec.rb",
|
56
|
-
"spec/reader_extender_spec.rb",
|
57
|
-
"spec/readers_spec.rb",
|
58
|
-
"spec/spec_helper.rb",
|
59
|
-
"spec/timezone_spec.rb",
|
60
|
-
"spec/trackoid_spec.rb"
|
61
|
-
]
|
62
53
|
|
63
54
|
if s.respond_to? :specification_version then
|
64
55
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
65
56
|
s.specification_version = 3
|
66
57
|
|
67
58
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
59
|
+
s.add_runtime_dependency(%q<mongoid>, [">= 2.1.0"])
|
60
|
+
s.add_development_dependency(%q<rake>, [">= 0"])
|
61
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
68
62
|
s.add_development_dependency(%q<rspec>, [">= 2.2.0"])
|
63
|
+
s.add_development_dependency(%q<mocha>, [">= 0"])
|
69
64
|
else
|
65
|
+
s.add_dependency(%q<mongoid>, [">= 2.1.0"])
|
66
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
67
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
70
68
|
s.add_dependency(%q<rspec>, [">= 2.2.0"])
|
69
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
71
70
|
end
|
72
71
|
else
|
72
|
+
s.add_dependency(%q<mongoid>, [">= 2.1.0"])
|
73
|
+
s.add_dependency(%q<rake>, [">= 0"])
|
74
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
73
75
|
s.add_dependency(%q<rspec>, [">= 2.2.0"])
|
76
|
+
s.add_dependency(%q<mocha>, [">= 0"])
|
74
77
|
end
|
75
78
|
end
|
76
79
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 7
|
9
|
+
version: 0.3.7
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jose Miguel Perez
|
@@ -14,13 +14,53 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-05
|
17
|
+
date: 2011-09-05 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
22
|
-
prerelease: false
|
21
|
+
name: mongoid
|
23
22
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 2
|
29
|
+
- 1
|
30
|
+
- 0
|
31
|
+
version: 2.1.0
|
32
|
+
type: :runtime
|
33
|
+
prerelease: false
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rake
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
segments:
|
43
|
+
- 0
|
44
|
+
version: "0"
|
45
|
+
type: :development
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: jeweler
|
50
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 0
|
57
|
+
version: "0"
|
58
|
+
type: :development
|
59
|
+
prerelease: false
|
60
|
+
version_requirements: *id003
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: rspec
|
63
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
24
64
|
none: false
|
25
65
|
requirements:
|
26
66
|
- - ">="
|
@@ -31,7 +71,21 @@ dependencies:
|
|
31
71
|
- 0
|
32
72
|
version: 2.2.0
|
33
73
|
type: :development
|
34
|
-
|
74
|
+
prerelease: false
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: mocha
|
78
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: *id005
|
35
89
|
description: Trackoid uses an embeddable approach to track analytics data using the poweful features of MongoDB for scalability
|
36
90
|
email: josemiguel@perezruiz.com
|
37
91
|
executables: []
|
@@ -44,6 +98,7 @@ extra_rdoc_files:
|
|
44
98
|
files:
|
45
99
|
- .document
|
46
100
|
- .rspec
|
101
|
+
- Gemfile
|
47
102
|
- LICENSE
|
48
103
|
- README.rdoc
|
49
104
|
- Rakefile
|
@@ -101,12 +156,5 @@ rubygems_version: 1.3.7
|
|
101
156
|
signing_key:
|
102
157
|
specification_version: 3
|
103
158
|
summary: Trackoid is an easy scalable analytics tracker using MongoDB and Mongoid
|
104
|
-
test_files:
|
105
|
-
|
106
|
-
- spec/ext/range_spec.rb
|
107
|
-
- spec/ext/time_spec.rb
|
108
|
-
- spec/reader_extender_spec.rb
|
109
|
-
- spec/readers_spec.rb
|
110
|
-
- spec/spec_helper.rb
|
111
|
-
- spec/timezone_spec.rb
|
112
|
-
- spec/trackoid_spec.rb
|
159
|
+
test_files: []
|
160
|
+
|