voteable_kenn 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 +7 -0
  2. data/lib/voteable.rb +38 -0
  3. metadata +44 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: eae9047f1aec61d85d523eec1dbb059918d750fe
4
+ data.tar.gz: 11a9a94f8465ac11bae94e1a151766c81a1d2bb6
5
+ SHA512:
6
+ metadata.gz: 24911f5b4317b75de69451e78a39511f5b62357137a56fbbcc069d3245496764ddfd3876361e6fa58fca48721ea09df31d42d70d1f61fd319eb1b26d23720dd0
7
+ data.tar.gz: d27539704dba1744f077ff2e4c89157652b6308a487afd99a7106eeb9cb0c06d84b9247349fdbf515c0730d2c7de94566699ec5cb643f464fd5507ca424dde49
@@ -0,0 +1,38 @@
1
+ module Voteable
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ has_many :votes, as: :voteable
6
+ end
7
+
8
+ def total_votes_score
9
+ self.votes.inject(0){ |t, v| t + v.vote }
10
+ end
11
+
12
+ def up_votes_score
13
+ up_votes.count
14
+ end
15
+
16
+ def down_votes_score
17
+ down_votes.count
18
+ end
19
+
20
+ def up_votes
21
+ self.votes.where(vote: 1)
22
+ end
23
+
24
+ def down_votes
25
+ self.votes.where(vote: -1)
26
+ end
27
+
28
+ def create_vote(options={})
29
+ user = options[:creator]
30
+ if user.admin?
31
+ vote = self.votes.build(creator: user, vote: options[:vote])
32
+ vote.save(validate: false)
33
+ else
34
+ vote = self.votes.create(creator: user, vote: options[:vote])
35
+ end
36
+ vote
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: voteable_kenn
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Kenneth
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-23 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Much longer explanation of the example!
14
+ email: kennethlimjf@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/voteable.rb
20
+ homepage: https://google.com
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.2.2
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: This is a voteable gem to make ActiveRecord models voteable.
44
+ test_files: []