occurro 0.2.5 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 820dbd667977ad499b6e91e7b0d200d36dce82eb
4
- data.tar.gz: eaf179afff4b590d3e5990e6e2038ac2a3488228
3
+ metadata.gz: 69457548952e55cee15bbbdf3b78e0acd4173199
4
+ data.tar.gz: b4ec6b1156db2d9c956bd2ce5cc9935df88d11dc
5
5
  SHA512:
6
- metadata.gz: 764c8834ae8b34481ce0820e3018e8799d75a9a3482e75500902884c180c32f2bac1fb35d17ef21648306c7e6653a8b956bb9e6660155dafa2b9083c723dfef5
7
- data.tar.gz: e3df221a6302186694ae48a4eb7da9aa7e4f4f291be220c0f4072625f6e834dbfbeae6c3795d0e5f5815a17c6a701ab9a80d15a4db546f3cd192ea985adcc6a2
6
+ metadata.gz: 01ce6151574846a2a7914d9c1ed4f1fb3211f03775097e2a47902a339b08a9359c9af3870d508b8ea6d296f2485db0f18da2170ac5533d049931e68545162f88
7
+ data.tar.gz: 779de3d5bb3500346e4636b3caf6d5480a4b05802c48af8b6b56148a95d635f0f360e23789fe488a35178fa20ddbdaa4cae9359ed938aafab6ab552e7be62f8e
@@ -1,20 +1,20 @@
1
1
  module Occurro
2
2
  class CountersController < ApplicationController
3
3
  respond_to :js
4
- before_filter :get_countable
5
4
 
6
5
  def increment
7
- if Occurro::CachedSession.unique_visitor?(@countable, session)
8
- @countable.increment_counter
9
- Occurro::CachedSession.add_cache(@countable, session)
6
+ if Occurro::CachedSession.unique_visitor?(countable, session)
7
+ countable.increment_counter
8
+ Occurro::CachedSession.add_cache(countable, session)
10
9
  end
11
10
  render text: ""
12
11
  end
13
12
 
14
13
  private
15
14
 
16
- def get_countable
17
- @countable = params[:countable_type].constantize.find params[:countable_id]
15
+ def countable
16
+ @countable ||=
17
+ params[:countable_type].constantize.find params[:countable_id]
18
18
  end
19
19
 
20
20
  end
@@ -7,41 +7,53 @@ module Occurro
7
7
 
8
8
  # Public: Rotate the counter value for the period_type
9
9
  #
10
- # * period_type:
10
+ # * period_type:
11
11
  # :daily #=> daily rotation
12
12
  # :weekly #=> weekly rotation
13
13
  # :monthly #=> monthly rotation
14
14
  #
15
15
  def update_counter(period_type)
16
- column_from, column_to =
17
- case period_type.to_s
18
- when 'daily'
19
- ['today', 'yesterday']
20
- when 'weekly'
21
- ['this_week', 'last_week']
22
- when 'monthly'
23
- ['this_month', 'last_month']
24
- else
25
- return false
26
- end
27
-
28
- self.send("#{column_to}=", self.send(column_from))
29
- self.send("#{column_from}=", 0)
30
- self.save
16
+ column_from, column_to = self.class.columns_to_shift(period_type)
17
+ return unless column_from && column_to
18
+
19
+ self.update_attributes({
20
+ column_to => self[column_from],
21
+ column_from => 0
22
+ })
23
+ end
24
+
25
+ def self.update_counters(period_type)
26
+ column_from, column_to = columns_to_shift(period_type)
27
+ return unless column_from && column_to
28
+
29
+ update_all("#{column_to} = #{column_from}, #{column_from} = 0")
31
30
  end
32
31
 
33
32
  # Public: increments 'model' counters by a 'count' factor
34
33
  #
35
34
  def self.increment_counters(model, count = 1)
36
- counter = Occurro::Counter.find_or_create_by_countable_type_and_countable_id(model.class.base_class.name, model.id)
35
+ counter = Occurro::Counter.find_or_create_by(countable_type: model.class.base_class.name, countable_id: model.id)
37
36
  counter.update_attributes({
38
37
  :today => counter.today + count,
39
38
  :this_week => counter.this_week + count,
40
39
  :this_month => counter.this_month + count,
41
40
  :total => counter.total + count
42
- })
41
+ })
43
42
  Occurro::DailyCounter.increment_counters(model, count) if model.class.use_daily_counters?
44
43
  end
45
44
 
45
+ def self.columns_to_shift(period_type)
46
+ case period_type.to_s
47
+ when 'daily'
48
+ ['today', 'yesterday']
49
+ when 'weekly'
50
+ ['this_week', 'last_week']
51
+ when 'monthly'
52
+ ['this_month', 'last_month']
53
+ else
54
+ [false, false]
55
+ end
56
+ end
57
+
46
58
  end
47
59
  end
@@ -6,7 +6,12 @@ module Occurro
6
6
  belongs_to :countable, polymorphic: true
7
7
 
8
8
  def self.increment_counters(model, count = 1)
9
- counter = Occurro::DailyCounter.find_or_create_by_countable_type_and_countable_id_and_created_on(model.class.base_class.name, model.id, Date.today)
9
+ counter =
10
+ Occurro::DailyCounter.find_or_create_by({
11
+ countable_type: model.class.base_class.name,
12
+ countable_id: model.id,
13
+ created_on: Date.today
14
+ })
10
15
  counter.increment!(:total, count)
11
16
  end
12
17
  end
@@ -1,3 +1,3 @@
1
1
  module Occurro
2
- VERSION = "0.2.5"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,97 +1,97 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: occurro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tiago Scolari
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-11 00:00:00.000000000 Z
11
+ date: 2014-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec-rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: database_cleaner
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: factory_girl_rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: resque
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: delayed_job_active_record
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  description: Tasks and models for counting model visualizations.
@@ -101,6 +101,9 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
+ - MIT-LICENSE
105
+ - README.rdoc
106
+ - Rakefile
104
107
  - app/assets/javascripts/occurro/application.js
105
108
  - app/assets/stylesheets/occurro/application.css
106
109
  - app/controllers/occurro/application_controller.rb
@@ -112,8 +115,9 @@ files:
112
115
  - config/routes.rb
113
116
  - db/migrate/create_occurro_counters.rb
114
117
  - db/migrate/create_occurro_daily_counters.rb
115
- - lib/generators/occurro/migrations/migrations_generator.rb
116
118
  - lib/generators/occurro/migrations/USAGE
119
+ - lib/generators/occurro/migrations/migrations_generator.rb
120
+ - lib/occurro.rb
117
121
  - lib/occurro/cached_counter.rb
118
122
  - lib/occurro/cached_session.rb
119
123
  - lib/occurro/engine.rb
@@ -123,11 +127,7 @@ files:
123
127
  - lib/occurro/jobs/sender.rb
124
128
  - lib/occurro/tasks.rb
125
129
  - lib/occurro/version.rb
126
- - lib/occurro.rb
127
130
  - lib/tasks/occurro_tasks.rake
128
- - MIT-LICENSE
129
- - Rakefile
130
- - README.rdoc
131
131
  homepage: https://github.com/tscolari/occurro
132
132
  licenses: []
133
133
  metadata: {}
@@ -137,17 +137,17 @@ require_paths:
137
137
  - lib
138
138
  required_ruby_version: !ruby/object:Gem::Requirement
139
139
  requirements:
140
- - - '>='
140
+ - - ">="
141
141
  - !ruby/object:Gem::Version
142
142
  version: '0'
143
143
  required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  requirements:
145
- - - '>='
145
+ - - ">="
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
148
  requirements: []
149
149
  rubyforge_project:
150
- rubygems_version: 2.0.0
150
+ rubygems_version: 2.2.2
151
151
  signing_key:
152
152
  specification_version: 4
153
153
  summary: Simple counters for ActiveRecord visualizations.