voteable_cullen 0.0.0 → 0.0.1

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.
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