voteable_cullen 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/voteable_cullen.rb +72 -0
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9dd4faad116a09cce2723040391b677f7be33622
4
- data.tar.gz: 0f3fe5e6172758c04289cce4a56e7fb2a0bf7a38
3
+ metadata.gz: eddff11c0fd28df3f89b3c95fe12046d97a27e9f
4
+ data.tar.gz: 571f52f279444f451ebfaa031fbea8f44d4b49d1
5
5
  SHA512:
6
- metadata.gz: f3879aa4f25d295a5248ea9f277322664a515a1d80dc2ef3bf9320ae96e4a61a8d8289deb942115676f4a6aa3952a7d829c061e420bedb67c4f604dd5dd48592
7
- data.tar.gz: 3dbabab4499f12c2301e4ba020fdd3dde32eaf95f345202c7eb515a91e8af3f875b02beddb992d40e1826eabdeb044fc688af23936efa6611f8b22337529cf76
6
+ metadata.gz: 6c1b4a8927c5e62124842f834efb08b781c87c808b78ca61201b0dc66fab72b35392ba29c8a764601e4c5cba70fc301324ab93fe050cc408495a5fa8b87d141b
7
+ data.tar.gz: 6e091c0dec319a253ae9fc68d2c7dbcfaa64248370789dc3dae1e89df6e91f8706f6349c664684da63dab87467bb2b6f4a1e9426cf332587608925325d46e7b8
@@ -0,0 +1,72 @@
1
+ ###################
2
+ # Using 'Concern' #
3
+ ###################
4
+
5
+ module Voteable
6
+ extend ActiveSupport::Concern
7
+
8
+
9
+ included do
10
+ has_many :votes, as: :voteable
11
+ end
12
+
13
+
14
+ def total_votes
15
+ self.up_votes - self.down_votes
16
+ end
17
+
18
+
19
+ def up_votes
20
+ self.votes.where(vote: true).size
21
+ end
22
+
23
+
24
+ def down_votes
25
+ self.votes.where(vote: false).size
26
+ end
27
+
28
+ end #Voteable
29
+
30
+
31
+
32
+ ############################
33
+ # Classic Meta-Programming #
34
+ ############################
35
+
36
+ =begin
37
+ module Voteable
38
+
39
+ def self.included(base)
40
+ base.send(:include, InstanceMethods)
41
+ base.extend(ClassMethods)
42
+
43
+ base.class_eval do
44
+ add_vote_relationship
45
+ end
46
+ end
47
+
48
+
49
+ module InstanceMethods
50
+ def total_votes
51
+ self.up_votes - self.down_votes
52
+ end
53
+
54
+
55
+ def up_votes
56
+ self.votes.where(vote: true).size
57
+ end
58
+
59
+
60
+ def down_votes
61
+ self.votes.where(vote: false).size
62
+ end
63
+ end # InstanceMethods
64
+
65
+
66
+ module ClassMethods
67
+ def add_vote_relationship
68
+ has_many :votes, as: :voteable
69
+ end
70
+ end #ClassMethods
71
+ end #Voteable
72
+ =end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: voteable_cullen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cullen Jett