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 ADDED
@@ -0,0 +1,10 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'mongoid', '>= 2.1.0'
4
+
5
+ group :development do
6
+ gem 'rake'
7
+ gem 'jeweler'
8
+ gem 'rspec', '>= 2.2.0'
9
+ gem 'mocha'
10
+ end
@@ -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,d| %>
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.6
1
+ 0.3.7
@@ -10,7 +10,7 @@ module Mongoid #:nodoc:
10
10
  base.class_eval do
11
11
  extend ClassMethods
12
12
 
13
- class_inheritable_accessor :aggregate_fields, :aggregate_klass
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
- raise Errors::ClassAlreadyDefined.new(internal_aggregates_name) if foreign_class_defined?
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
@@ -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._selector,
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._selector, { "$set" => update_hash(how_much, date) },
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._selector,
119
+ @owner.atomic_selector,
120
120
  { "$unset" => update_hash(1, date) },
121
121
  :upsert => true, :safe => false
122
122
  )
@@ -12,7 +12,7 @@ module Mongoid #:nodoc:
12
12
  include Aggregates
13
13
  extend ClassMethods
14
14
 
15
- class_inheritable_accessor :tracked_fields
15
+ class_attribute :tracked_fields
16
16
  self.tracked_fields = []
17
17
  delegate :tracked_fields, :internal_track_name, :to => "self.class"
18
18
  end
@@ -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::Criteria
100
- tm.send(tm.class.send(:internal_accessor_name, "referers")).class.should == Mongoid::Criteria
101
- tm.send(tm.class.send(:internal_accessor_name, "quarters")).class.should == Mongoid::Criteria
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
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{trackoid}
8
- s.version = "0.3.6"
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-01}
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
- - 6
9
- version: 0.3.6
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-01 00:00:00 +02:00
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: rspec
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
- version_requirements: *id001
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
- - spec/aggregates_spec.rb
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
+