like_dislike 2.0 → 2.2
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 +4 -4
- data/app/assets/images/thumbs.png +0 -0
- data/app/assets/javascripts/like_dislike.js +26 -25
- data/app/controllers/like_dislike/votes_controller.rb +29 -0
- data/config/routes.rb +4 -0
- data/lib/generators/like_dislike/migration/migration_generator.rb +25 -0
- data/lib/generators/like_dislike/migration/templates/migration_cache_vote.rb +11 -0
- data/lib/generators/like_dislike/migration/templates/migration_vote_table.rb +27 -0
- data/lib/like_dislike/engine.rb +2 -3
- data/lib/like_dislike/helper.rb +19 -17
- data/lib/like_dislike/version.rb +1 -1
- metadata +9 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5a7a60d81f4400e3a111e6bf71b136428c9a20ef
|
|
4
|
+
data.tar.gz: dd8066e46f97e0512ea7bda3401e23169fa21a18
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 83b0bc792da3f322295a6494511a33554cca3205e6af3aa18b8d469fecbed2012295906b14542db9b8aaff93c5d45f4489a3cc8a762486e8ad0c02c73a697789
|
|
7
|
+
data.tar.gz: 474aa6e74999e1b136f77355eec87a57d8544c7a8e5ae9576a153321f98601cbd84f9d54f7de0165471c4add88cf849dcc663d187a7c5bba897533dd8efb175c
|
|
Binary file
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
//= require jquery.turbolinks
|
|
2
2
|
$(document).on('ready page:load', function () {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
3
|
+
$(".voting_wrapper .voting_btn").click(function (e) {
|
|
4
|
+
var clicked_button = $(this).children().attr('class');
|
|
5
|
+
var unique_id = $(this).parent().attr("id");
|
|
6
|
+
var likeable_type = $(this).parent().attr("data-info");
|
|
7
|
+
var like_state,msg;
|
|
8
|
+
if(clicked_button==='down_button')
|
|
9
|
+
{
|
|
10
|
+
msg = 'Please login to UnLike';
|
|
11
|
+
action = 'downvote'
|
|
12
|
+
}
|
|
13
|
+
else if(clicked_button==='up_button')
|
|
14
|
+
{
|
|
15
|
+
msg = 'Please login to Like';
|
|
16
|
+
action = 'upvote'
|
|
17
|
+
}
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
19
|
+
post_data = {'likeable_id':unique_id, 'likeable_type':likeable_type};
|
|
20
|
+
$.post(action, post_data, function(data) {
|
|
21
|
+
getData = data.toString().split(",")
|
|
22
|
+
$('#'+unique_id+' .up_votes').text(getData[0]);
|
|
23
|
+
$('#'+unique_id+' .down_votes').text(getData[1]);
|
|
24
|
+
}).fail(function(err) {
|
|
25
|
+
if (err.statusText == "Unauthorized"){
|
|
26
|
+
alert(msg)
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
29
30
|
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module LikeDislike
|
|
2
|
+
class VotesController < ActionController::Base
|
|
3
|
+
before_action :find_likeable
|
|
4
|
+
before_action :authenticate_user!
|
|
5
|
+
respond_to :js
|
|
6
|
+
|
|
7
|
+
def create
|
|
8
|
+
@likeable.liked_by current_user
|
|
9
|
+
render json: render_votes
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def destroy
|
|
13
|
+
@likeable.disliked_by current_user
|
|
14
|
+
render json: render_votes
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def render_votes
|
|
20
|
+
[@likeable.cached_votes_up, @likeable.cached_votes_down]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def find_likeable
|
|
24
|
+
@likeable_type = params[:likeable_type].classify
|
|
25
|
+
@likeable = @likeable_type.constantize.find(params[:likeable_id])
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
end
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
require 'rails/generators/active_record'
|
|
2
|
+
|
|
3
|
+
module LikeDislike
|
|
4
|
+
module Generators
|
|
5
|
+
# Migration generator that creates migration file from template
|
|
6
|
+
class MigrationGenerator < ActiveRecord::Generators::Base
|
|
7
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
8
|
+
|
|
9
|
+
argument :name, :type => :string, :default => 'create_votes'
|
|
10
|
+
|
|
11
|
+
def copy_cache_vote_migration
|
|
12
|
+
if name == "create_votes"
|
|
13
|
+
migration_template "migration_vote_table.rb", "db/migrate/create_votes.rb"
|
|
14
|
+
else
|
|
15
|
+
migration_template "migration_cache_vote.rb", "db/migrate/add_column_to_#{name.downcase}.rb"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def add_like_dislike_routes
|
|
20
|
+
route "mount LikeDislike::Engine, at: '/'"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class AddColumnTo<%= name %> < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
<% table_name = name.downcase.pluralize.to_sym %>
|
|
4
|
+
add_column :<%= table_name %>, :cached_votes_up, :integer, :default => 0
|
|
5
|
+
add_column :<%= table_name %>, :cached_votes_down, :integer, :default => 0
|
|
6
|
+
add_column :<%= table_name %>, :cached_votes_score, :integer, :default => 0
|
|
7
|
+
add_index :<%= table_name %>, :cached_votes_up
|
|
8
|
+
add_index :<%= table_name %>, :cached_votes_down
|
|
9
|
+
add_index :<%= table_name %>, :cached_votes_score
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
class CreateVotes < ActiveRecord::Migration
|
|
2
|
+
def self.up
|
|
3
|
+
create_table :votes do |t|
|
|
4
|
+
|
|
5
|
+
t.references :votable, :polymorphic => true
|
|
6
|
+
t.references :voter, :polymorphic => true
|
|
7
|
+
|
|
8
|
+
t.boolean :vote_flag
|
|
9
|
+
t.string :vote_scope
|
|
10
|
+
t.integer :vote_weight
|
|
11
|
+
|
|
12
|
+
t.timestamps
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
if ActiveRecord::VERSION::MAJOR < 4
|
|
16
|
+
add_index :votes, [:votable_id, :votable_type]
|
|
17
|
+
add_index :votes, [:voter_id, :voter_type]
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
add_index :votes, [:voter_id, :voter_type, :vote_scope]
|
|
21
|
+
add_index :votes, [:votable_id, :votable_type, :vote_scope]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.down
|
|
25
|
+
drop_table :votes
|
|
26
|
+
end
|
|
27
|
+
end
|
data/lib/like_dislike/engine.rb
CHANGED
data/lib/like_dislike/helper.rb
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
module LikeDislike
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
module Helper
|
|
3
|
+
def like_unlike_button(votable_object)
|
|
4
|
+
if current_user
|
|
5
|
+
html = []
|
|
6
|
+
html << "<div class='voting_wrapper' id=#{votable_object.id} >
|
|
7
|
+
<div class='voting_wrapper' data-info=#{votable_object.class.to_s} id=#{votable_object.id} >
|
|
8
|
+
<div class='voting_btn'>
|
|
9
|
+
<div class='up_button'></div>
|
|
10
|
+
<span class='up_votes'>#{votable_object.get_upvotes.size}</span>
|
|
11
|
+
</div>
|
|
12
|
+
<div class='voting_btn'>
|
|
13
|
+
<div class='down_button'></div>
|
|
14
|
+
<span class='down_votes'>#{votable_object.get_downvotes.size}</span>
|
|
15
|
+
</div>
|
|
16
|
+
</div>"
|
|
17
|
+
raw html.join("\n")
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
19
21
|
end
|
data/lib/like_dislike/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: like_dislike
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: '2.
|
|
4
|
+
version: '2.2'
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- kishore-mohan
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2015-09-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: acts_as_votable
|
|
@@ -45,8 +45,14 @@ executables: []
|
|
|
45
45
|
extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
|
47
47
|
files:
|
|
48
|
+
- app/assets/images/thumbs.png
|
|
48
49
|
- app/assets/javascripts/like_dislike.js
|
|
49
50
|
- app/assets/stylesheets/like_dislike.css.erb
|
|
51
|
+
- app/controllers/like_dislike/votes_controller.rb
|
|
52
|
+
- config/routes.rb
|
|
53
|
+
- lib/generators/like_dislike/migration/migration_generator.rb
|
|
54
|
+
- lib/generators/like_dislike/migration/templates/migration_cache_vote.rb
|
|
55
|
+
- lib/generators/like_dislike/migration/templates/migration_vote_table.rb
|
|
50
56
|
- lib/like_dislike.rb
|
|
51
57
|
- lib/like_dislike/engine.rb
|
|
52
58
|
- lib/like_dislike/helper.rb
|
|
@@ -72,9 +78,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
72
78
|
version: '0'
|
|
73
79
|
requirements: []
|
|
74
80
|
rubyforge_project:
|
|
75
|
-
rubygems_version: 2.
|
|
81
|
+
rubygems_version: 2.4.8
|
|
76
82
|
signing_key:
|
|
77
83
|
specification_version: 4
|
|
78
84
|
summary: Like Dislike by user and Vote and Unvote by user
|
|
79
85
|
test_files: []
|
|
80
|
-
has_rdoc:
|