vote 0.0.1 → 0.2.0

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 (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: