punching_bag 0.3.3 → 0.3.4

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2ad93dc4871a77426b80b0eb6803e7fef923aeb1
4
+ data.tar.gz: 665d375e9249f8323639059227faa647ba105097
5
+ SHA512:
6
+ metadata.gz: ac6a0df00b0af20ba4057b652d9aa9719fa28163d5a040186354ed06632fc6a3ba353d2df79649a805d7f02f8ec33487e7c315a23ae6c2c9d2e0bbe5576850e8
7
+ data.tar.gz: 6441dc791b6369cbcbf661002c3b77939820e3f37e30bcd3676182c0f1bb7a7af9ef54eddeed490f42f9df69980534739a79e7a8ec4080a942ba72e48315a7ca
data/app/models/punch.rb CHANGED
@@ -2,8 +2,6 @@ class Punch < ActiveRecord::Base
2
2
 
3
3
  belongs_to :punchable, :polymorphic => true
4
4
 
5
- attr_accessible # none
6
-
7
5
  before_validation :set_defaults
8
6
  validates :punchable_id, :punchable_type, :starts_at, :ends_at, :average_time, :hits, :presence => true
9
7
 
@@ -48,20 +46,20 @@ class Punch < ActiveRecord::Base
48
46
  def day_combo?
49
47
  timeframe == :day
50
48
  end
51
-
49
+
52
50
  def month_combo?
53
51
  timeframe == :month
54
52
  end
55
-
53
+
56
54
  def year_combo?
57
55
  timeframe == :year
58
56
  end
59
-
57
+
60
58
  def find_combo_for(timeframe)
61
59
  punches = punchable.punches.by_timeframe(timeframe, average_time)
62
60
  punches.combos.first || punches.first
63
61
  end
64
-
62
+
65
63
  def combine_with(combo)
66
64
  if combo != self
67
65
  combo.starts_at = starts_at if starts_at < combo.starts_at
@@ -72,19 +70,19 @@ class Punch < ActiveRecord::Base
72
70
  end
73
71
  combo
74
72
  end
75
-
73
+
76
74
  def combine_by_day
77
75
  unless day_combo? || month_combo? || year_combo?
78
76
  combine_with find_combo_for(:day)
79
77
  end
80
78
  end
81
-
79
+
82
80
  def combine_by_month
83
81
  unless month_combo? || year_combo?
84
82
  combine_with find_combo_for(:month)
85
83
  end
86
84
  end
87
-
85
+
88
86
  def combine_by_year
89
87
  unless year_combo?
90
88
  combine_with find_combo_for(:year)
@@ -100,11 +98,11 @@ class Punch < ActiveRecord::Base
100
98
 
101
99
  return 0 if sums.empty? # catch divide by zero
102
100
 
103
- sums.values.inject(:+).to_f / sums.length
101
+ sums.values.inject(:+).to_f / sums.length
104
102
  end
105
103
 
106
104
  private
107
-
105
+
108
106
  def set_defaults
109
107
  if date = (self.starts_at ||= DateTime.now)
110
108
  self.ends_at ||= date
@@ -17,4 +17,4 @@ class CreatePunchesTable < ActiveRecord::Migration
17
17
  remove_index :punches, :average_time
18
18
  drop_table :punches
19
19
  end
20
- end
20
+ end
data/lib/punching_bag.rb CHANGED
@@ -2,7 +2,7 @@ module PunchingBag
2
2
  require 'punching_bag/engine' if defined?(Rails)
3
3
  require 'punching_bag/acts_as_punchable'
4
4
  require 'voight_kampff'
5
-
5
+
6
6
  def self.punch(punchable, request=nil)
7
7
  if request.try(:bot?)
8
8
  false
@@ -12,7 +12,7 @@ module PunchingBag
12
12
  p.save ? p : false
13
13
  end
14
14
  end
15
-
15
+
16
16
  def self.average_time(*punches)
17
17
  total_time = 0
18
18
  hits = 0
@@ -22,5 +22,4 @@ module PunchingBag
22
22
  end
23
23
  Time.zone.at(total_time / hits)
24
24
  end
25
-
26
- end
25
+ end
@@ -1,6 +1,6 @@
1
1
  module PunchingBag
2
2
  module ActiveRecord
3
-
3
+
4
4
  module ClassMethods
5
5
 
6
6
  # Note: this method will only return items if they have 1 or more hits
@@ -17,17 +17,17 @@ module PunchingBag
17
17
  query.reorder("SUM(punches.hits) #{dir}")
18
18
  end
19
19
  end
20
-
20
+
21
21
  module InstanceMethods
22
22
  def hits(since=nil)
23
23
  self.punches.after(since).sum(:hits)
24
24
  end
25
-
25
+
26
26
  def punch(request=nil)
27
27
  PunchingBag.punch(self, request)
28
28
  end
29
29
  end
30
-
30
+
31
31
  end
32
32
  end
33
33
 
@@ -10,7 +10,7 @@ module ActsAsTaggableOn
10
10
  query = query.where('punches.average_time >= ?', since) if since
11
11
  query.map(&:tag)
12
12
  end
13
-
13
+
14
14
  def hits(since=nil)
15
15
  query = Tagging.scoped.
16
16
  joins('INNER JOIN punches ON (taggings.taggable_id = punches.punchable_id AND taggings.taggable_type = punches.punchable_type)').
@@ -1,3 +1,3 @@
1
1
  module PunchingBag
2
- VERSION = '0.3.3'
2
+ VERSION = '0.3.4'
3
3
  end
metadata CHANGED
@@ -1,47 +1,36 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: punching_bag
3
- version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease:
6
- segments:
7
- - 0
8
- - 3
9
- - 3
10
- version: 0.3.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.4
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Adam Crownoble
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-06-06 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2013-10-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: voight_kampff
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
26
17
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 25
29
- segments:
30
- - 0
31
- - 1
32
- - 1
18
+ - !ruby/object:Gem::Version
33
19
  version: 0.1.1
34
20
  type: :runtime
35
- version_requirements: *id001
36
- description: PunchingBag is a hit counting and simple trending engine for Ruby on Rails
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.1
27
+ description: PunchingBag is a hit counting and simple trending engine for Ruby on
28
+ Rails
37
29
  email: adam@obledesign.com
38
30
  executables: []
39
-
40
31
  extensions: []
41
-
42
32
  extra_rdoc_files: []
43
-
44
- files:
33
+ files:
45
34
  - app/models/punch.rb
46
35
  - lib/punching_bag/version.rb
47
36
  - lib/punching_bag/engine.rb
@@ -53,36 +42,25 @@ files:
53
42
  - lib/tasks/punching_bag.rake
54
43
  homepage: https://github.com/biola/punching_bag
55
44
  licenses: []
56
-
45
+ metadata: {}
57
46
  post_install_message:
58
47
  rdoc_options: []
59
-
60
- require_paths:
48
+ require_paths:
61
49
  - lib
62
- required_ruby_version: !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- hash: 3
68
- segments:
69
- - 0
70
- version: "0"
71
- required_rubygems_version: !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 0
79
- version: "0"
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - '>='
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
80
60
  requirements: []
81
-
82
61
  rubyforge_project:
83
- rubygems_version: 1.8.25
62
+ rubygems_version: 2.0.3
84
63
  signing_key:
85
- specification_version: 3
64
+ specification_version: 4
86
65
  summary: PunchingBag hit conter and trending plugin
87
66
  test_files: []
88
-