trackoid 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
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
+