vote 0.0.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +2 -5
  3. data/app/assets/images/votable/down.png +0 -0
  4. data/app/assets/images/votable/up.png +0 -0
  5. data/app/assets/javascripts/vote.js +74 -0
  6. data/app/assets/stylesheets/vote.css.erb +39 -0
  7. data/app/controllers/vote_controller.rb +12 -0
  8. data/app/helpers/vote_helper.rb +2 -0
  9. data/app/models/concerns/voter.rb +8 -0
  10. data/app/models/concerns/voting.rb +60 -0
  11. data/app/models/vote.rb +34 -0
  12. data/app/views/application/_vote.html.erb +11 -0
  13. data/app/views/vote/create.jbuilder +3 -0
  14. data/config/routes.rb +1 -0
  15. data/db/migrate/20141211124855_create_votes.rb +11 -0
  16. data/lib/tasks/{vote_tasks.rake → votable_tasks.rake} +1 -1
  17. data/lib/votable.rb +40 -0
  18. data/lib/votable/engine.rb +23 -0
  19. data/lib/votable/version.rb +3 -0
  20. data/test/controllers/vote_controller_test.rb +42 -0
  21. data/test/dummy/app/assets/javascripts/application.js +1 -0
  22. data/test/dummy/app/assets/stylesheets/application.css +1 -0
  23. data/test/dummy/app/controllers/application_controller.rb +7 -0
  24. data/test/dummy/app/helpers/application_helper.rb +3 -0
  25. data/test/dummy/app/models/user.rb +3 -0
  26. data/test/dummy/app/models/votable_element.rb +3 -0
  27. data/test/dummy/app/views/application/index.html.erb +4 -0
  28. data/test/dummy/app/views/layouts/application.html.erb +2 -4
  29. data/test/dummy/bin/rails +1 -1
  30. data/test/dummy/config.ru +1 -1
  31. data/test/dummy/config/application.rb +1 -2
  32. data/test/dummy/config/environments/development.rb +2 -0
  33. data/test/dummy/config/environments/production.rb +13 -12
  34. data/test/dummy/config/environments/test.rb +5 -2
  35. data/test/dummy/config/initializers/cookies_serializer.rb +1 -1
  36. data/test/dummy/config/initializers/vote.rb +8 -0
  37. data/test/dummy/config/routes.rb +1 -54
  38. data/test/dummy/config/secrets.yml +2 -2
  39. data/test/dummy/db/migrate/20141213010752_create_votable_elements.rb +12 -0
  40. data/test/dummy/db/migrate/20141215044136_create_users.rb +7 -0
  41. data/test/dummy/db/schema.rb +37 -0
  42. data/test/dummy/db/test.sqlite3 +0 -0
  43. data/test/dummy/log/test.log +103348 -0
  44. data/test/dummy/test/controllers/application_controller_test.rb +8 -0
  45. data/test/dummy/test/models/user_test.rb +19 -0
  46. data/test/dummy/test/models/votable_element_test.rb +45 -0
  47. data/test/dummy/tmp/cache/AA2/F51/votable_elements%2F1-20121211044855000000000%2Fupvote_status%2Fusers%2F1-20160405081953000000000 +1 -0
  48. data/test/dummy/tmp/cache/B75/FD1/votable_elements%2F1-20121211044855000000000%2Fdownvote_status%2Fusers%2F1-20160405081953000000000 +1 -0
  49. data/test/dummy/tmp/cache/E62/CB0/votable_elements%2F1-20121211044855000000000%2Frank +1 -0
  50. data/test/dummy/tmp/cache/ED2/B00/votable_elements%2F1-20121211044855000000000%2Fscore +0 -0
  51. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-El-FN8jCFI2MGZVBIAI7IXXoa6FMof2jAZ8pmFTnvc.cache +2 -0
  52. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0PTD3CT8q_GeqdproBnHSznOl0RAc5XsWJRNXUZlhKk.cache +1 -0
  53. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0cNj-urje0NIW6l9-XzOZ3MZFk8IW3IS3Aqmu2KO9uM.cache +1 -0
  54. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2BUd5YwUcwnCma29onQK5ngTHf4L8LTm_-_yF59Ihvk.cache +1 -0
  55. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3QDmR4itzqXeTwXzP2mthzdMkIUJlCmukDDwRJkWX08.cache +0 -0
  56. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5F-Dvi8UFsPxupWA-vmvs4_LwrzSlUINfRa_sOh0qWQ.cache +2 -0
  57. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ax3LCzomcKayBxHqxe31l2IJwZoW4nuQxKQUEqrfJ_U.cache +0 -0
  58. data/test/dummy/tmp/cache/assets/sprockets/v3.0/B1TtiKillm1zDiVtSssFTC8RJ_Vz8lT6NVf5DVdXS6U.cache +2 -0
  59. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BniTfFx9DFvpDq1GbWUh0UNc5s-h9Li2ChlvkHY9L1U.cache +2 -0
  60. data/test/dummy/tmp/cache/assets/sprockets/v3.0/C3KeicVpYPPCXwzyknMhr-TZA0MEe7ESvxM0TwIjnnk.cache +3 -0
  61. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CLpvZ2bZ_21aWGn2ZxT4G9yizskQygHYnwmHhh1kx6s.cache +0 -0
  62. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CgRpeuDhfS36mxhVvQ1WW8tu04zq1UiPPrMbDId0M1A.cache +1 -0
  63. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DbduVB5B2EGTotBVD_NmdLP5bmcR_Fmzd6gvxTjej6g.cache +1 -0
  64. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GO8J-ex_JAVxHP3tAE9z3IqCSk_5TM-g57Lj0TxHxZI.cache +0 -0
  65. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ISNcxbpHMEavSkcmlLsk_jyi77vzsYZvtfD_9KZ5mXs.cache +1 -0
  66. data/test/dummy/tmp/cache/assets/sprockets/v3.0/K6BH-neaelwjs6igeryeJdVcIKyFD-MVThotsSw1_lk.cache +1 -0
  67. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KBws9RFVZfk7GKM9zx1o6y_CnZd67UUu5prC4yjNjMY.cache +0 -0
  68. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PFGYJMQpvdoSny5yVe7DkBsD4syJWncluaACPMySG8U.cache +1 -0
  69. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PPHah0f_950rDPIcgdZdrPG5mWCDMQHh2FXQweMpROo.cache +1 -0
  70. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PxC7DH90XyhNTBlNYTvhfCGZH4_0CpTt-sMdvk4p9p8.cache +3 -0
  71. data/test/dummy/tmp/cache/assets/sprockets/v3.0/SRCZC-AxKnmzBBH0YsaAgrKNPgBaUA3ZVf0176wZIco.cache +4 -0
  72. data/test/dummy/tmp/cache/assets/sprockets/v3.0/UEUIg4LMdLy9aVXNi6rEZxbz6vKDG6UXb-77GYPqp5g.cache +1 -0
  73. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WdavtqaV1L7kWEMgm7u2IJkLB90lAAInW3gfgpmmHJE.cache +1 -0
  74. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YoGhfupdxiennx6ywdf4x6wZ6BKonR8Bj9D3ox4lB7I.cache +1 -0
  75. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zz-TNS30yi0kfNbbOy-ZOSNtRVrGwQ8SMRN0lAmDy6s.cache +1 -0
  76. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_AbDOrmJPRR-S07op411AFFEfecRcUSSMSFxYxLR4xo.cache +1 -0
  77. data/test/dummy/tmp/cache/assets/sprockets/v3.0/a3Pjrd87T2nqEtGLz6In4Iu6oLYwPuJLSE94i6mW3Ck.cache +0 -0
  78. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bh2dbqBpnMmczJOa3eVntNbRIt8YM04aOIyUCpgR1gA.cache +4 -0
  79. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dMlY4p7rRb_1fw3vfaGEcOJi4SXJGXsvoT_U44tvmWI.cache +0 -0
  80. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eJjawTfEdbNH8xgCPPd8On11oZn40fhBCwo9bGN5TX8.cache +3 -0
  81. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ex4XwuMzvixZ4giNEjUZ8wL2k7ZulQ5dNe3N4tKK10A.cache +0 -0
  82. data/test/dummy/tmp/cache/assets/sprockets/v3.0/g4wJFnucd8DQd0XvI58w3-incEUHgMg1e7XUWUKLm1M.cache +0 -0
  83. data/test/dummy/tmp/cache/assets/sprockets/v3.0/i9Xav1zGItoosb4Uez1_nmEtI4JCbhS6gopxCL3d-L0.cache +0 -0
  84. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iDvGPQQhkaKSTxHP6wx8e-kPLAynWb11FGEIVbT_nQM.cache +1 -0
  85. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iHAmk9HoMqCnuIHexHa_hNeCtQeLF7kGwl_kDrMiBEo.cache +1 -0
  86. data/test/dummy/tmp/cache/assets/sprockets/v3.0/m7s4E3k9E_72VrHkjaxcSTXRanKL5vBMabG9tmRy6rk.cache +0 -0
  87. data/test/dummy/tmp/cache/assets/sprockets/v3.0/piEIzZ9NNm29Zi6xtGNty7KEv4YTNagsTYeEbQat_dc.cache +1 -0
  88. data/test/dummy/tmp/cache/assets/sprockets/v3.0/q20dDzc7Fj9zVO9zcXN-BKyGjDcb0O1lA0Vw1rjdibA.cache +1 -0
  89. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qSwhfxs3qwfNAdqtVhXpsGYQhTtv005jgxepgGmiknk.cache +0 -0
  90. data/test/dummy/tmp/cache/assets/sprockets/v3.0/r4RUnbdoTR15L2hseR5YzdO1k1wYv459i9ZZdhXYnQ4.cache +2 -0
  91. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sFQXxhpurv7b4zdluUTH4uVkavZMPuMWP6XXVxlfOO0.cache +1 -0
  92. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sHVyX31KKYvBELSzYnhHb8do4H7LGpFrFdfLflit64o.cache +3 -0
  93. data/test/dummy/tmp/cache/assets/sprockets/v3.0/u0xKjvsn83XKhAaZKn63CKyhnTtlsakjTkKFnI4ZhU4.cache +0 -0
  94. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ujpQUvM3t6mL2Kp9EXlasLYk8s5dzS0KM584wg7DIns.cache +0 -0
  95. data/test/dummy/tmp/cache/assets/sprockets/v3.0/w4VvG1yL_2f1uZpy1BI2RdSZTac9VRDRR87geqHO8mY.cache +0 -0
  96. data/test/fixtures/users.yml +11 -0
  97. data/test/fixtures/votable_elements.yml +14 -0
  98. data/test/fixtures/votes.yml +35 -0
  99. data/test/helpers/vote_helper_test.rb +4 -0
  100. data/test/integration/navigation_test.rb +0 -1
  101. data/test/models/vote_test.rb +86 -0
  102. data/test/test_helper.rb +13 -6
  103. data/test/votable_test.rb +7 -0
  104. metadata +182 -22
  105. data/README.rdoc +0 -3
  106. data/lib/vote.rb +0 -4
  107. data/lib/vote/engine.rb +0 -4
  108. data/lib/vote/version.rb +0 -3
  109. data/test/vote_test.rb +0 -7
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class ApplicationControllerTest < ActionController::TestCase
4
+ test 'can render vote partial' do
5
+ get :index
6
+ assert_response :success
7
+ end
8
+ end
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+
3
+ class UserTest < ActiveSupport::TestCase
4
+ def setup
5
+ @user = users(:one)
6
+ end
7
+
8
+ test 'existing' do
9
+ assert_equal 4, User.count
10
+ end
11
+
12
+ test 'has votes association' do
13
+ assert_kind_of Vote::ActiveRecord_Associations_CollectionProxy, @user.votes
14
+ end
15
+
16
+ test 'has votes' do
17
+ assert_equal 1, @user.votes.count
18
+ end
19
+ end
@@ -0,0 +1,45 @@
1
+ require 'test_helper'
2
+
3
+ class VotableElementTest < ActiveSupport::TestCase
4
+ test 'existing' do
5
+ assert_equal 3, VotableElement.count
6
+ end
7
+
8
+ test 'has votes association' do
9
+ assert_kind_of Vote::ActiveRecord_Associations_CollectionProxy, votable_elements(:one).votes
10
+ assert_kind_of Vote::ActiveRecord_Associations_CollectionProxy, votable_elements(:two).votes
11
+ end
12
+
13
+ test 'has votes' do
14
+ assert_equal 2, votable_elements(:one).votes.count
15
+ assert_equal 2, votable_elements(:two).votes.count
16
+ end
17
+
18
+ test 'has up votes' do
19
+ assert_equal 1, votable_elements(:one).upvotes.count
20
+ assert_equal 2, votable_elements(:two).upvotes.count
21
+ end
22
+
23
+ test 'has down votes' do
24
+ assert_equal 1, votable_elements(:one).downvotes.count
25
+ assert_equal 0, votable_elements(:two).downvotes.count
26
+ end
27
+
28
+ test 'has score' do
29
+ assert_equal votable_elements(:one).upvotes.count - votable_elements(:one).downvotes.count, votable_elements(:one).score
30
+ assert_equal votable_elements(:two).upvotes.count - votable_elements(:two).downvotes.count, votable_elements(:two).score
31
+ end
32
+
33
+ test 'has rank' do
34
+ assert_equal 0.0, votable_elements(:one).rank
35
+ assert_equal 1_355_201_335.30103, votable_elements(:two).rank
36
+ end
37
+
38
+ test 'has status' do
39
+ assert_equal true, votable_elements(:one).downvote_status(users(:one))
40
+ assert_equal false, votable_elements(:one).upvote_status(users(:one))
41
+
42
+ assert_equal false, votable_elements(:one).downvote_status(users(:two))
43
+ assert_equal true, votable_elements(:one).upvote_status(users(:two))
44
+ end
45
+ end
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @valueF:@created_atf1459844397.095385:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @valueT:@created_atf1459844398.591487:@expires_in0
@@ -0,0 +1 @@
1
+ o: ActiveSupport::Cache::Entry: @valuef0:@created_atf1459844396.028846:@expires_in0
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"9file-digest://app/assets/stylesheets/application.css;TTI")file-digest://app/assets/stylesheets;TTI"$file-digest://app/assets/images;TTI")file-digest://app/assets/images/vote;TTI")file-digest://app/assets/javascripts;TTI".file-digest://app/assets/javascripts/vote;TTI".file-digest://app/assets/stylesheets/vote;TTI":file-digest:///Users/lukeheuer/vote/app/assets/images;TTI"?file-digest:///Users/lukeheuer/vote/app/assets/images/vote;TTI"?file-digest:///Users/lukeheuer/vote/app/assets/javascripts;TTI"Dfile-digest:///Users/lukeheuer/vote/app/assets/javascripts/vote;TTI"?file-digest:///Users/lukeheuer/vote/app/assets/stylesheets;TTI"Dfile-digest:///Users/lukeheuer/vote/app/assets/stylesheets/vote;TTI"Lfile-digest:///Users/lukeheuer/vote/app/assets/stylesheets/vote.css.erb;TT
@@ -0,0 +1 @@
1
+ "%aSC譴t|�I�Լ��I�n h���ξ����
@@ -0,0 +1 @@
1
+ I"�/Users/lukeheuer/vote/app/assets/javascripts/vote.js?type=application/javascript&pipeline=self&id=4a77f63cf938448b9004bc00ce30e9c3e7ac87349489b28b690fe68d3d25dee5:ET
@@ -0,0 +1 @@
1
+ "%�l�+ Y�@�~R~Lew5�v���)��C�(љ
@@ -0,0 +1,2 @@
1
+ "%1��}{�L�ǫ�H&�oT
2
+ 1d�N�-�׊
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{)I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"0processors:type=text/css&file_type=text/css;TTI"9file-digest://app/assets/stylesheets/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI")file-digest://app/assets/stylesheets;TTI"$file-digest://app/assets/images;TTI")file-digest://app/assets/images/vote;TTI")file-digest://app/assets/javascripts;TTI".file-digest://app/assets/javascripts/vote;TTI".file-digest://app/assets/stylesheets/vote;TTI":file-digest:///Users/lukeheuer/vote/app/assets/images;TTI"?file-digest:///Users/lukeheuer/vote/app/assets/images/vote;TTI"?file-digest:///Users/lukeheuer/vote/app/assets/javascripts;TTI"Dfile-digest:///Users/lukeheuer/vote/app/assets/javascripts/vote;TTI"?file-digest:///Users/lukeheuer/vote/app/assets/stylesheets;TTI"Dfile-digest:///Users/lukeheuer/vote/app/assets/stylesheets/vote;TTI"Lfile-digest:///Users/lukeheuer/vote/app/assets/stylesheets/vote.css.erb;TTI"Kprocessors:type=text/css&file_type=text/css&engines=.erb&pipeline=self;TTI"&actioncontroller-asset-url-config;TTI",file-digest://app/assets/images/votable;TTI"/file-digest://app/assets/images/votable/up;TTI"1file-digest://app/assets/javascripts/votable;TTI"4file-digest://app/assets/javascripts/votable/up;TTI"1file-digest://app/assets/stylesheets/votable;TTI"4file-digest://app/assets/stylesheets/votable/up;TTI"Bfile-digest:///Users/lukeheuer/vote/app/assets/images/votable;TTI"Efile-digest:///Users/lukeheuer/vote/app/assets/images/votable/up;TTI"Ifile-digest:///Users/lukeheuer/vote/app/assets/images/votable/up.png;TTI"2processors:type=image/png&file_type=image/png;TTI"1file-digest://app/assets/images/votable/down;TTI"6file-digest://app/assets/javascripts/votable/down;TTI"6file-digest://app/assets/stylesheets/votable/down;TTI"Gfile-digest:///Users/lukeheuer/vote/app/assets/images/votable/down;TTI"Kfile-digest:///Users/lukeheuer/vote/app/assets/images/votable/down.png;TT
@@ -0,0 +1,2 @@
1
+ "%�5�E�3�\��he�_� a�*��
2
+ Y�R#�
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash}
3
+ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"Gfile-digest:///Users/lukeheuer/vote/app/assets/javascripts/vote.js;TTF
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=c7ff53211597358eea58c85b053e439e732c19d27360dd07d159fd727d88768b:ET
@@ -0,0 +1 @@
1
+ I"�/Users/lukeheuer/vote/app/assets/stylesheets/vote.css.erb?type=text/css&pipeline=self&id=2aebba2e7e743aa9fe7fa554256422007da016bbf479f1bddcc5c11090da0d3b:ET
@@ -0,0 +1 @@
1
+ I"}app/assets/stylesheets/application.css?type=text/css&id=58df226950546a4e97c5f91c3937bf7b85707f551abcbe247f32b632b30bac8e:ET
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&pipeline=self&id=60a5036d0532011108c2fae688af05fe22b129c890c90aaa4aef58bae2f765fa:ET
@@ -0,0 +1 @@
1
+ "%.ɽ�l̐�W��G�J���&�<���Y
@@ -0,0 +1 @@
1
+ I"�app/assets/stylesheets/application.css?type=text/css&pipeline=self&id=979790235026ba4021b0618fa9472aed884db99435df8bfd87cd8aeaa62cbfb5:ET
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"Gfile-digest:///Users/lukeheuer/vote/app/assets/javascripts/vote.js;TT
@@ -0,0 +1,4 @@
1
+ {:uriI"�file:///Users/lukeheuer/vote/app/assets/images/votable/up.png?type=image/png&id=9eed527303c8db957eea86d5f12833bdbe44f8b750296cb7dbf2b8449cb292d9:ET:load_pathI",/Users/lukeheuer/vote/app/assets/images;T:
2
+ @hash{
3
+ I"environment-version;TTI"environment-paths;TTI"rails-env;TTI"2processors:type=image/png&file_type=image/png;TTI"Ifile-digest:///Users/lukeheuer/vote/app/assets/images/votable/up.png;TT:dependencies_digest"%���rfO�U4Gx�g��P�O��d¦��V�;IR:idI"E9eed527303c8db957eea86d5f12833bdbe44f8b750296cb7dbf2b8449cb292d9;F:
4
+ mtimel+�gW
@@ -0,0 +1 @@
1
+ "%��B�����șo�$'�A�d��L���xR�U
@@ -0,0 +1 @@
1
+ I"�/Users/lukeheuer/vote/app/assets/images/votable/up.png?type=image/png&id=9eed527303c8db957eea86d5f12833bdbe44f8b750296cb7dbf2b8449cb292d9:ET
@@ -0,0 +1 @@
1
+ "%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
@@ -0,0 +1 @@
1
+ I"�/Users/lukeheuer/vote/app/assets/javascripts/vote.js?type=application/javascript&pipeline=self&id=5a53c93756ba31533045b2fadb9d0b244c11f7f384b5ee3e85eea1b23015b12e:ET
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&id=1295ed3d9af3bc03daef0fdfa1f84b1eec3d932c85d54ac509a8e0ac6edfb475:ET
@@ -0,0 +1,4 @@
1
+ {:uriI"�file:///Users/lukeheuer/vote/app/assets/images/votable/down.png?type=image/png&id=bf8f6f9b74c2a708d205b74dd3dab6f6f64e2773950ac9313e1c06cfec60c121:ET:load_pathI",/Users/lukeheuer/vote/app/assets/images;T:
2
+ @hash{
3
+ I"environment-version;TTI"environment-paths;TTI"rails-env;TTI"2processors:type=image/png&file_type=image/png;TTI"Kfile-digest:///Users/lukeheuer/vote/app/assets/images/votable/down.png;TT:dependencies_digest"% �}>�B7BK5��lb�P67�&\%E;:idI"Ebf8f6f9b74c2a708d205b74dd3dab6f6f64e2773950ac9313e1c06cfec60c121;F:
4
+ mtimel+�gW
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"2processors:type=image/png&file_type=image/png;TTI"Ifile-digest:///Users/lukeheuer/vote/app/assets/images/votable/up.png;TT
@@ -0,0 +1 @@
1
+ "%��g���D)�߂��N�zқ>I>F�k� �
@@ -0,0 +1 @@
1
+ I"�/Users/lukeheuer/vote/app/assets/images/votable/down.png?type=image/png&id=bf8f6f9b74c2a708d205b74dd3dab6f6f64e2773950ac9313e1c06cfec60c121:ET
@@ -0,0 +1 @@
1
+ "%/�vH�;�Mj>�Q�[A��|�uV<����AA
@@ -0,0 +1 @@
1
+ I"�app/assets/javascripts/application.js?type=application/javascript&id=3d9f812276c609f7d4304afb57e14defbe23fae2e36fe08249166f096f4fb75c:ET
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"Kprocessors:type=text/css&file_type=text/css&engines=.erb&pipeline=self;TTI"Lfile-digest:///Users/lukeheuer/vote/app/assets/stylesheets/vote.css.erb;TTI"&actioncontroller-asset-url-config;TTI",file-digest://app/assets/images/votable;TTI"/file-digest://app/assets/images/votable/up;TTI"1file-digest://app/assets/javascripts/votable;TTI"4file-digest://app/assets/javascripts/votable/up;TTI"1file-digest://app/assets/stylesheets/votable;TTI"4file-digest://app/assets/stylesheets/votable/up;TTI"Bfile-digest:///Users/lukeheuer/vote/app/assets/images/votable;TTI"Efile-digest:///Users/lukeheuer/vote/app/assets/images/votable/up;TTI"Ifile-digest:///Users/lukeheuer/vote/app/assets/images/votable/up.png;TTI"2processors:type=image/png&file_type=image/png;TTI"1file-digest://app/assets/images/votable/down;TTI"6file-digest://app/assets/javascripts/votable/down;TTI"6file-digest://app/assets/stylesheets/votable/down;TTI"Gfile-digest:///Users/lukeheuer/vote/app/assets/images/votable/down;TTI"Kfile-digest:///Users/lukeheuer/vote/app/assets/images/votable/down.png;TT
@@ -0,0 +1 @@
1
+ "% ����� �#�Rܪ�|��$�ɶ�=xlǮR�
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"rails-env;TTI"2processors:type=image/png&file_type=image/png;TTI"Kfile-digest:///Users/lukeheuer/vote/app/assets/images/votable/down.png;TT
@@ -0,0 +1,11 @@
1
+ one:
2
+ id: 1
3
+
4
+ two:
5
+ id: 2
6
+
7
+ three:
8
+ id: 3
9
+
10
+ four:
11
+ id: 4
@@ -0,0 +1,14 @@
1
+ one:
2
+ id: 1
3
+ created_at: '2012-12-11 04:48:55'
4
+ updated_at: '2012-12-11 04:48:55'
5
+
6
+ two:
7
+ id: 2
8
+ created_at: '2012-12-11 04:48:55'
9
+ updated_at: '2012-12-11 04:48:55'
10
+
11
+ three:
12
+ id: 3
13
+ created_at: '2012-12-11 04:48:55'
14
+ updated_at: '2012-12-11 04:48:55'
@@ -0,0 +1,35 @@
1
+ one:
2
+ id: 1
3
+ user_id: 1
4
+ direction: false
5
+ vote_type: 'VotableElement'
6
+ vote_id: 1
7
+ created_at: '2014-12-11 04:48:55'
8
+ updated_at: '2014-12-11 04:48:55'
9
+
10
+ two:
11
+ id: 2
12
+ user_id: 2
13
+ direction: true
14
+ vote_type: 'VotableElement'
15
+ vote_id: 1
16
+ created_at: '2014-12-11 04:48:55'
17
+ updated_at: '2014-12-11 04:48:55'
18
+
19
+ three:
20
+ id: 3
21
+ user_id: 3
22
+ direction: true
23
+ vote_type: 'VotableElement'
24
+ vote_id: 2
25
+ created_at: '2014-12-11 04:48:55'
26
+ updated_at: '2014-12-11 04:48:55'
27
+
28
+ four:
29
+ id: 4
30
+ user_id: 4
31
+ direction: true
32
+ vote_type: 'VotableElement'
33
+ vote_id: 2
34
+ created_at: '2014-12-11 04:48:55'
35
+ updated_at: '2014-12-11 04:48:55'
@@ -0,0 +1,4 @@
1
+ require 'test_helper'
2
+
3
+ class VoteHelperTest < ActionView::TestCase
4
+ end
@@ -7,4 +7,3 @@ class NavigationTest < ActionDispatch::IntegrationTest
7
7
  # assert true
8
8
  # end
9
9
  end
10
-
@@ -0,0 +1,86 @@
1
+ require 'test_helper'
2
+
3
+ class VoteTest < ActiveSupport::TestCase
4
+ setup do
5
+ Votable.enable_downvotes = true
6
+ Votable.enable_upvotes = true
7
+ Votable.enable_cache_columns = false
8
+ end
9
+
10
+ test "can't create blank votes" do
11
+ assert_not Vote.new.save
12
+ end
13
+
14
+ test "can't create votes missing vote_type" do
15
+ assert_not Vote.new(direction: true, vote_id: 1).save
16
+ end
17
+
18
+ test "can't create votes missing vote_id" do
19
+ assert_not Vote.new(direction: true, vote_type: 'VotableElement').save
20
+ end
21
+
22
+ test "can't create votes missing direction" do
23
+ assert_no_difference 'VotableElement.where(id: 1).count' do
24
+ Vote.create(vote_type: 'VotableElement', vote_id: 1)
25
+ end
26
+ end
27
+
28
+ test "can't create out of range [true] votes" do
29
+ Votable.enable_downvotes = false
30
+
31
+ assert_no_difference 'VotableElement.where(id: 1).count' do
32
+ Vote.create(direction: false, vote_type: 'VotableElement', vote_id: 1)
33
+ end
34
+ end
35
+
36
+ test "can't create out of range [false] votes" do
37
+ Votable.enable_upvotes = false
38
+
39
+ assert_no_difference 'VotableElement.where(id: 1).count' do
40
+ Vote.create(direction: true, vote_type: 'VotableElement', vote_id: 1)
41
+ end
42
+ end
43
+
44
+ test 'can create upvotes' do
45
+ assert_difference 'VotableElement.find_by(id: 1).upvotes.count' do
46
+ Vote.create(direction: true, vote_type: 'VotableElement', vote_id: 1)
47
+ end
48
+ end
49
+
50
+ test 'can create downvotes' do
51
+ assert_difference 'VotableElement.find_by(id: 1).downvotes.count' do
52
+ Vote.create(direction: false, vote_type: 'VotableElement', vote_id: 1)
53
+ end
54
+ end
55
+
56
+ test 'cache columns' do
57
+ Votable.enable_cache_columns = true
58
+
59
+ VotableElement.take.votes.create(direction: true)
60
+
61
+ @element = VotableElement.take
62
+ assert_equal @element.upvotes.count, @element.upvotes_count
63
+ assert_equal @element.downvotes.count, @element.downvotes_count
64
+ end
65
+
66
+ test 'cache columns clear' do
67
+ Votable.enable_cache_columns = true
68
+
69
+ VotableElement.take.votes.destroy_all
70
+
71
+ VotableElement.take.votes.create(direction: true)
72
+ VotableElement.take.votes.create(direction: true)
73
+
74
+ @element = VotableElement.take
75
+ assert_equal 0, @element.upvotes_count
76
+ assert_equal 0, @element.downvotes_count
77
+ end
78
+
79
+ test "don't cache columns when disabled" do
80
+ VotableElement.take.votes.create(direction: true)
81
+
82
+ @element = VotableElement.take
83
+ assert_equal nil, @element.upvotes_count
84
+ assert_equal nil, @element.downvotes_count
85
+ end
86
+ end
@@ -1,9 +1,12 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
1
4
  # Configure Rails Environment
2
- ENV["RAILS_ENV"] = "test"
5
+ ENV['RAILS_ENV'] = 'test'
3
6
 
4
- require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
- ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
6
- require "rails/test_help"
7
+ require File.expand_path('../../test/dummy/config/environment.rb', __FILE__)
8
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path('../../test/dummy/db/migrate', __FILE__)]
9
+ require 'rails/test_help'
7
10
 
8
11
  Rails.backtrace_cleaner.remove_silencers!
9
12
 
@@ -11,6 +14,10 @@ Rails.backtrace_cleaner.remove_silencers!
11
14
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
12
15
 
13
16
  # Load fixtures from the engine
14
- if ActiveSupport::TestCase.method_defined?(:fixture_path=)
15
- ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
17
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
18
+ ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
19
+ end
20
+
21
+ class ActiveSupport::TestCase
22
+ fixtures :all
16
23
  end
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class VotableTest < ActiveSupport::TestCase
4
+ test 'truth' do
5
+ assert_kind_of Module, Votable
6
+ end
7
+ end
metadata CHANGED
@@ -1,44 +1,58 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vote
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Heuer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-10 00:00:00.000000000 Z
11
+ date: 2016-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.1.8
19
+ version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.1.8
26
+ version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: sqlite3
28
+ name: jbuilder
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: simplecov
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
47
  version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - '>='
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
- description: Add voting to your app, sortable ranking by trending.
55
+ description: Polymorphic user voting system for Rails.
42
56
  email:
43
57
  - Luke@HeuerLabs.com
44
58
  executables: []
@@ -46,19 +60,34 @@ extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
48
62
  - MIT-LICENSE
49
- - README.rdoc
50
63
  - Rakefile
64
+ - app/assets/images/votable/down.png
65
+ - app/assets/images/votable/up.png
66
+ - app/assets/javascripts/vote.js
67
+ - app/assets/stylesheets/vote.css.erb
68
+ - app/controllers/vote_controller.rb
69
+ - app/helpers/vote_helper.rb
70
+ - app/models/concerns/voter.rb
71
+ - app/models/concerns/voting.rb
72
+ - app/models/vote.rb
73
+ - app/views/application/_vote.html.erb
74
+ - app/views/vote/create.jbuilder
51
75
  - config/routes.rb
52
- - lib/tasks/vote_tasks.rake
53
- - lib/vote.rb
54
- - lib/vote/engine.rb
55
- - lib/vote/version.rb
76
+ - db/migrate/20141211124855_create_votes.rb
77
+ - lib/tasks/votable_tasks.rake
78
+ - lib/votable.rb
79
+ - lib/votable/engine.rb
80
+ - lib/votable/version.rb
81
+ - test/controllers/vote_controller_test.rb
56
82
  - test/dummy/README.rdoc
57
83
  - test/dummy/Rakefile
58
84
  - test/dummy/app/assets/javascripts/application.js
59
85
  - test/dummy/app/assets/stylesheets/application.css
60
86
  - test/dummy/app/controllers/application_controller.rb
61
87
  - test/dummy/app/helpers/application_helper.rb
88
+ - test/dummy/app/models/user.rb
89
+ - test/dummy/app/models/votable_element.rb
90
+ - test/dummy/app/views/application/index.html.erb
62
91
  - test/dummy/app/views/layouts/application.html.erb
63
92
  - test/dummy/bin/bundle
64
93
  - test/dummy/bin/rails
@@ -78,17 +107,80 @@ files:
78
107
  - test/dummy/config/initializers/inflections.rb
79
108
  - test/dummy/config/initializers/mime_types.rb
80
109
  - test/dummy/config/initializers/session_store.rb
110
+ - test/dummy/config/initializers/vote.rb
81
111
  - test/dummy/config/initializers/wrap_parameters.rb
82
112
  - test/dummy/config/locales/en.yml
83
113
  - test/dummy/config/routes.rb
84
114
  - test/dummy/config/secrets.yml
115
+ - test/dummy/db/migrate/20141213010752_create_votable_elements.rb
116
+ - test/dummy/db/migrate/20141215044136_create_users.rb
117
+ - test/dummy/db/schema.rb
118
+ - test/dummy/db/test.sqlite3
119
+ - test/dummy/log/test.log
85
120
  - test/dummy/public/404.html
86
121
  - test/dummy/public/422.html
87
122
  - test/dummy/public/500.html
88
123
  - test/dummy/public/favicon.ico
124
+ - test/dummy/test/controllers/application_controller_test.rb
125
+ - test/dummy/test/models/user_test.rb
126
+ - test/dummy/test/models/votable_element_test.rb
127
+ - test/dummy/tmp/cache/AA2/F51/votable_elements%2F1-20121211044855000000000%2Fupvote_status%2Fusers%2F1-20160405081953000000000
128
+ - test/dummy/tmp/cache/B75/FD1/votable_elements%2F1-20121211044855000000000%2Fdownvote_status%2Fusers%2F1-20160405081953000000000
129
+ - test/dummy/tmp/cache/E62/CB0/votable_elements%2F1-20121211044855000000000%2Frank
130
+ - test/dummy/tmp/cache/ED2/B00/votable_elements%2F1-20121211044855000000000%2Fscore
131
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/-El-FN8jCFI2MGZVBIAI7IXXoa6FMof2jAZ8pmFTnvc.cache
132
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/0PTD3CT8q_GeqdproBnHSznOl0RAc5XsWJRNXUZlhKk.cache
133
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/0cNj-urje0NIW6l9-XzOZ3MZFk8IW3IS3Aqmu2KO9uM.cache
134
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/2BUd5YwUcwnCma29onQK5ngTHf4L8LTm_-_yF59Ihvk.cache
135
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/3QDmR4itzqXeTwXzP2mthzdMkIUJlCmukDDwRJkWX08.cache
136
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/5F-Dvi8UFsPxupWA-vmvs4_LwrzSlUINfRa_sOh0qWQ.cache
137
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/Ax3LCzomcKayBxHqxe31l2IJwZoW4nuQxKQUEqrfJ_U.cache
138
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/B1TtiKillm1zDiVtSssFTC8RJ_Vz8lT6NVf5DVdXS6U.cache
139
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/BniTfFx9DFvpDq1GbWUh0UNc5s-h9Li2ChlvkHY9L1U.cache
140
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/C3KeicVpYPPCXwzyknMhr-TZA0MEe7ESvxM0TwIjnnk.cache
141
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/CLpvZ2bZ_21aWGn2ZxT4G9yizskQygHYnwmHhh1kx6s.cache
142
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/CgRpeuDhfS36mxhVvQ1WW8tu04zq1UiPPrMbDId0M1A.cache
143
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/DbduVB5B2EGTotBVD_NmdLP5bmcR_Fmzd6gvxTjej6g.cache
144
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/GO8J-ex_JAVxHP3tAE9z3IqCSk_5TM-g57Lj0TxHxZI.cache
145
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/ISNcxbpHMEavSkcmlLsk_jyi77vzsYZvtfD_9KZ5mXs.cache
146
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/K6BH-neaelwjs6igeryeJdVcIKyFD-MVThotsSw1_lk.cache
147
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/KBws9RFVZfk7GKM9zx1o6y_CnZd67UUu5prC4yjNjMY.cache
148
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/PFGYJMQpvdoSny5yVe7DkBsD4syJWncluaACPMySG8U.cache
149
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/PPHah0f_950rDPIcgdZdrPG5mWCDMQHh2FXQweMpROo.cache
150
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/PxC7DH90XyhNTBlNYTvhfCGZH4_0CpTt-sMdvk4p9p8.cache
151
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/SRCZC-AxKnmzBBH0YsaAgrKNPgBaUA3ZVf0176wZIco.cache
152
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/UEUIg4LMdLy9aVXNi6rEZxbz6vKDG6UXb-77GYPqp5g.cache
153
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/WdavtqaV1L7kWEMgm7u2IJkLB90lAAInW3gfgpmmHJE.cache
154
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/YoGhfupdxiennx6ywdf4x6wZ6BKonR8Bj9D3ox4lB7I.cache
155
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/Zz-TNS30yi0kfNbbOy-ZOSNtRVrGwQ8SMRN0lAmDy6s.cache
156
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/_AbDOrmJPRR-S07op411AFFEfecRcUSSMSFxYxLR4xo.cache
157
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/a3Pjrd87T2nqEtGLz6In4Iu6oLYwPuJLSE94i6mW3Ck.cache
158
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/bh2dbqBpnMmczJOa3eVntNbRIt8YM04aOIyUCpgR1gA.cache
159
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/dMlY4p7rRb_1fw3vfaGEcOJi4SXJGXsvoT_U44tvmWI.cache
160
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/eJjawTfEdbNH8xgCPPd8On11oZn40fhBCwo9bGN5TX8.cache
161
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/ex4XwuMzvixZ4giNEjUZ8wL2k7ZulQ5dNe3N4tKK10A.cache
162
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/g4wJFnucd8DQd0XvI58w3-incEUHgMg1e7XUWUKLm1M.cache
163
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/i9Xav1zGItoosb4Uez1_nmEtI4JCbhS6gopxCL3d-L0.cache
164
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/iDvGPQQhkaKSTxHP6wx8e-kPLAynWb11FGEIVbT_nQM.cache
165
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/iHAmk9HoMqCnuIHexHa_hNeCtQeLF7kGwl_kDrMiBEo.cache
166
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/m7s4E3k9E_72VrHkjaxcSTXRanKL5vBMabG9tmRy6rk.cache
167
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/piEIzZ9NNm29Zi6xtGNty7KEv4YTNagsTYeEbQat_dc.cache
168
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/q20dDzc7Fj9zVO9zcXN-BKyGjDcb0O1lA0Vw1rjdibA.cache
169
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/qSwhfxs3qwfNAdqtVhXpsGYQhTtv005jgxepgGmiknk.cache
170
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/r4RUnbdoTR15L2hseR5YzdO1k1wYv459i9ZZdhXYnQ4.cache
171
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/sFQXxhpurv7b4zdluUTH4uVkavZMPuMWP6XXVxlfOO0.cache
172
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/sHVyX31KKYvBELSzYnhHb8do4H7LGpFrFdfLflit64o.cache
173
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/u0xKjvsn83XKhAaZKn63CKyhnTtlsakjTkKFnI4ZhU4.cache
174
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/ujpQUvM3t6mL2Kp9EXlasLYk8s5dzS0KM584wg7DIns.cache
175
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/w4VvG1yL_2f1uZpy1BI2RdSZTac9VRDRR87geqHO8mY.cache
176
+ - test/fixtures/users.yml
177
+ - test/fixtures/votable_elements.yml
178
+ - test/fixtures/votes.yml
179
+ - test/helpers/vote_helper_test.rb
89
180
  - test/integration/navigation_test.rb
181
+ - test/models/vote_test.rb
90
182
  - test/test_helper.rb
91
- - test/vote_test.rb
183
+ - test/votable_test.rb
92
184
  homepage: https://github.com/lukeheuer/vote
93
185
  licenses:
94
186
  - MIT
@@ -99,25 +191,29 @@ require_paths:
99
191
  - lib
100
192
  required_ruby_version: !ruby/object:Gem::Requirement
101
193
  requirements:
102
- - - '>='
194
+ - - ">="
103
195
  - !ruby/object:Gem::Version
104
- version: '0'
196
+ version: 1.9.3
105
197
  required_rubygems_version: !ruby/object:Gem::Requirement
106
198
  requirements:
107
- - - '>='
199
+ - - ">="
108
200
  - !ruby/object:Gem::Version
109
201
  version: '0'
110
202
  requirements: []
111
203
  rubyforge_project:
112
- rubygems_version: 2.4.5
204
+ rubygems_version: 2.5.1
113
205
  signing_key:
114
206
  specification_version: 4
115
- summary: Polymorphic, ranked voting.
207
+ summary: Polymorphic user voting system for Rails.
116
208
  test_files:
209
+ - test/controllers/vote_controller_test.rb
117
210
  - test/dummy/app/assets/javascripts/application.js
118
211
  - test/dummy/app/assets/stylesheets/application.css
119
212
  - test/dummy/app/controllers/application_controller.rb
120
213
  - test/dummy/app/helpers/application_helper.rb
214
+ - test/dummy/app/models/user.rb
215
+ - test/dummy/app/models/votable_element.rb
216
+ - test/dummy/app/views/application/index.html.erb
121
217
  - test/dummy/app/views/layouts/application.html.erb
122
218
  - test/dummy/bin/bundle
123
219
  - test/dummy/bin/rails
@@ -136,17 +232,81 @@ test_files:
136
232
  - test/dummy/config/initializers/inflections.rb
137
233
  - test/dummy/config/initializers/mime_types.rb
138
234
  - test/dummy/config/initializers/session_store.rb
235
+ - test/dummy/config/initializers/vote.rb
139
236
  - test/dummy/config/initializers/wrap_parameters.rb
140
237
  - test/dummy/config/locales/en.yml
141
238
  - test/dummy/config/routes.rb
142
239
  - test/dummy/config/secrets.yml
143
240
  - test/dummy/config.ru
241
+ - test/dummy/db/migrate/20141213010752_create_votable_elements.rb
242
+ - test/dummy/db/migrate/20141215044136_create_users.rb
243
+ - test/dummy/db/schema.rb
244
+ - test/dummy/db/test.sqlite3
245
+ - test/dummy/log/test.log
144
246
  - test/dummy/public/404.html
145
247
  - test/dummy/public/422.html
146
248
  - test/dummy/public/500.html
147
249
  - test/dummy/public/favicon.ico
148
250
  - test/dummy/Rakefile
149
251
  - test/dummy/README.rdoc
252
+ - test/dummy/test/controllers/application_controller_test.rb
253
+ - test/dummy/test/models/user_test.rb
254
+ - test/dummy/test/models/votable_element_test.rb
255
+ - test/dummy/tmp/cache/AA2/F51/votable_elements%2F1-20121211044855000000000%2Fupvote_status%2Fusers%2F1-20160405081953000000000
256
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/-El-FN8jCFI2MGZVBIAI7IXXoa6FMof2jAZ8pmFTnvc.cache
257
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/0cNj-urje0NIW6l9-XzOZ3MZFk8IW3IS3Aqmu2KO9uM.cache
258
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/0PTD3CT8q_GeqdproBnHSznOl0RAc5XsWJRNXUZlhKk.cache
259
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/2BUd5YwUcwnCma29onQK5ngTHf4L8LTm_-_yF59Ihvk.cache
260
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/3QDmR4itzqXeTwXzP2mthzdMkIUJlCmukDDwRJkWX08.cache
261
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/5F-Dvi8UFsPxupWA-vmvs4_LwrzSlUINfRa_sOh0qWQ.cache
262
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/_AbDOrmJPRR-S07op411AFFEfecRcUSSMSFxYxLR4xo.cache
263
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/a3Pjrd87T2nqEtGLz6In4Iu6oLYwPuJLSE94i6mW3Ck.cache
264
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/Ax3LCzomcKayBxHqxe31l2IJwZoW4nuQxKQUEqrfJ_U.cache
265
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/B1TtiKillm1zDiVtSssFTC8RJ_Vz8lT6NVf5DVdXS6U.cache
266
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/bh2dbqBpnMmczJOa3eVntNbRIt8YM04aOIyUCpgR1gA.cache
267
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/BniTfFx9DFvpDq1GbWUh0UNc5s-h9Li2ChlvkHY9L1U.cache
268
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/C3KeicVpYPPCXwzyknMhr-TZA0MEe7ESvxM0TwIjnnk.cache
269
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/CgRpeuDhfS36mxhVvQ1WW8tu04zq1UiPPrMbDId0M1A.cache
270
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/CLpvZ2bZ_21aWGn2ZxT4G9yizskQygHYnwmHhh1kx6s.cache
271
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/DbduVB5B2EGTotBVD_NmdLP5bmcR_Fmzd6gvxTjej6g.cache
272
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/dMlY4p7rRb_1fw3vfaGEcOJi4SXJGXsvoT_U44tvmWI.cache
273
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/eJjawTfEdbNH8xgCPPd8On11oZn40fhBCwo9bGN5TX8.cache
274
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/ex4XwuMzvixZ4giNEjUZ8wL2k7ZulQ5dNe3N4tKK10A.cache
275
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/g4wJFnucd8DQd0XvI58w3-incEUHgMg1e7XUWUKLm1M.cache
276
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/GO8J-ex_JAVxHP3tAE9z3IqCSk_5TM-g57Lj0TxHxZI.cache
277
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/i9Xav1zGItoosb4Uez1_nmEtI4JCbhS6gopxCL3d-L0.cache
278
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/iDvGPQQhkaKSTxHP6wx8e-kPLAynWb11FGEIVbT_nQM.cache
279
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/iHAmk9HoMqCnuIHexHa_hNeCtQeLF7kGwl_kDrMiBEo.cache
280
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/ISNcxbpHMEavSkcmlLsk_jyi77vzsYZvtfD_9KZ5mXs.cache
281
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/K6BH-neaelwjs6igeryeJdVcIKyFD-MVThotsSw1_lk.cache
282
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/KBws9RFVZfk7GKM9zx1o6y_CnZd67UUu5prC4yjNjMY.cache
283
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/m7s4E3k9E_72VrHkjaxcSTXRanKL5vBMabG9tmRy6rk.cache
284
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/PFGYJMQpvdoSny5yVe7DkBsD4syJWncluaACPMySG8U.cache
285
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/piEIzZ9NNm29Zi6xtGNty7KEv4YTNagsTYeEbQat_dc.cache
286
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/PPHah0f_950rDPIcgdZdrPG5mWCDMQHh2FXQweMpROo.cache
287
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/PxC7DH90XyhNTBlNYTvhfCGZH4_0CpTt-sMdvk4p9p8.cache
288
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/q20dDzc7Fj9zVO9zcXN-BKyGjDcb0O1lA0Vw1rjdibA.cache
289
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/qSwhfxs3qwfNAdqtVhXpsGYQhTtv005jgxepgGmiknk.cache
290
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/r4RUnbdoTR15L2hseR5YzdO1k1wYv459i9ZZdhXYnQ4.cache
291
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/sFQXxhpurv7b4zdluUTH4uVkavZMPuMWP6XXVxlfOO0.cache
292
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/sHVyX31KKYvBELSzYnhHb8do4H7LGpFrFdfLflit64o.cache
293
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/SRCZC-AxKnmzBBH0YsaAgrKNPgBaUA3ZVf0176wZIco.cache
294
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/u0xKjvsn83XKhAaZKn63CKyhnTtlsakjTkKFnI4ZhU4.cache
295
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/UEUIg4LMdLy9aVXNi6rEZxbz6vKDG6UXb-77GYPqp5g.cache
296
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/ujpQUvM3t6mL2Kp9EXlasLYk8s5dzS0KM584wg7DIns.cache
297
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/w4VvG1yL_2f1uZpy1BI2RdSZTac9VRDRR87geqHO8mY.cache
298
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/WdavtqaV1L7kWEMgm7u2IJkLB90lAAInW3gfgpmmHJE.cache
299
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/YoGhfupdxiennx6ywdf4x6wZ6BKonR8Bj9D3ox4lB7I.cache
300
+ - test/dummy/tmp/cache/assets/sprockets/v3.0/Zz-TNS30yi0kfNbbOy-ZOSNtRVrGwQ8SMRN0lAmDy6s.cache
301
+ - test/dummy/tmp/cache/B75/FD1/votable_elements%2F1-20121211044855000000000%2Fdownvote_status%2Fusers%2F1-20160405081953000000000
302
+ - test/dummy/tmp/cache/E62/CB0/votable_elements%2F1-20121211044855000000000%2Frank
303
+ - test/dummy/tmp/cache/ED2/B00/votable_elements%2F1-20121211044855000000000%2Fscore
304
+ - test/fixtures/users.yml
305
+ - test/fixtures/votable_elements.yml
306
+ - test/fixtures/votes.yml
307
+ - test/helpers/vote_helper_test.rb
150
308
  - test/integration/navigation_test.rb
309
+ - test/models/vote_test.rb
151
310
  - test/test_helper.rb
152
- - test/vote_test.rb
311
+ - test/votable_test.rb
312
+ has_rdoc: