rails_tracker 0.3.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 (206) hide show
  1. checksums.yaml +7 -0
  2. data/.yardoc/checksums +13 -0
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/.yardoc/proxy_types +0 -0
  6. data/Gemfile +31 -0
  7. data/Gemfile.lock +207 -0
  8. data/MIT-LICENSE +20 -0
  9. data/README.rdoc +88 -0
  10. data/Rakefile +113 -0
  11. data/app/assets/javascripts/rails_tracker/application.js +15 -0
  12. data/app/assets/javascripts/rails_tracker/issues.js +2 -0
  13. data/app/assets/stylesheets/rails_tracker/application.css +14 -0
  14. data/app/assets/stylesheets/rails_tracker/bootstrap.css +6805 -0
  15. data/app/assets/stylesheets/rails_tracker/issues.css +4 -0
  16. data/app/controllers/rails_tracker/application_controller.rb +12 -0
  17. data/app/controllers/rails_tracker/issues_controller.rb +81 -0
  18. data/app/helpers/rails_tracker/application_helper.rb +4 -0
  19. data/app/helpers/rails_tracker/issues_helper.rb +4 -0
  20. data/app/mailers/rails_tracker/issue_mailer.rb +12 -0
  21. data/app/models/rails_tracker/issue.rb +7 -0
  22. data/app/models/rails_tracker/users_issues.rb +12 -0
  23. data/app/views/layouts/rails_tracker/_header.html.slim +28 -0
  24. data/app/views/layouts/rails_tracker/application.html.slim +10 -0
  25. data/app/views/rails_tracker/issue_mailer/resolved_alert.html.slim +6 -0
  26. data/app/views/rails_tracker/issues/currently_tracking.html.slim +19 -0
  27. data/app/views/rails_tracker/issues/index.html.slim +18 -0
  28. data/app/views/rails_tracker/issues/listen.html.slim +1 -0
  29. data/app/views/rails_tracker/issues/resolved.html.slim +14 -0
  30. data/config/config.ru +0 -0
  31. data/config/routes.rb +16 -0
  32. data/db/migrate/20130924202020_create_tracker_issues.rb +10 -0
  33. data/db/migrate/20130924233027_create_tracker_users_issues.rb +13 -0
  34. data/db/migrate/20130924233149_add_relation_users_issues.rb +5 -0
  35. data/db/migrate/20130928221922_add_issue_id_issues.rb +5 -0
  36. data/db/migrate/20130930233849_add_default_active_column.rb +6 -0
  37. data/db/seeds.rb +1 -0
  38. data/issues} +4 -0
  39. data/lib/generators/rails_tracker/install_generator.rb +16 -0
  40. data/lib/generators/rails_tracker/templates/install.rb +15 -0
  41. data/lib/generators/rails_tracker/templates/rails_tracker.en.yml +5 -0
  42. data/lib/rails_tracker/engine.rb +17 -0
  43. data/lib/rails_tracker/version.rb +3 -0
  44. data/lib/rails_tracker.rb +16 -0
  45. data/lib/tasks/rails_tracker_tasks.rake +4 -0
  46. data/lib/tasks/test_seed.rb +7 -0
  47. data/rails_tracker.gemspec +40 -0
  48. data/screenshot1.png +0 -0
  49. data/spec/controllers/issues_controller_spec.rb +56 -0
  50. data/spec/dummy/README.rdoc +261 -0
  51. data/spec/dummy/Rakefile +7 -0
  52. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  53. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  54. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  55. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  56. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  57. data/spec/dummy/config/application.rb +65 -0
  58. data/spec/dummy/config/boot.rb +10 -0
  59. data/spec/dummy/config/database.yml +25 -0
  60. data/spec/dummy/config/environment.rb +5 -0
  61. data/spec/dummy/config/environments/development.rb +37 -0
  62. data/spec/dummy/config/environments/production.rb +67 -0
  63. data/spec/dummy/config/environments/test.rb +37 -0
  64. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  65. data/spec/dummy/config/initializers/inflections.rb +15 -0
  66. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  67. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  68. data/spec/dummy/config/initializers/session_store.rb +8 -0
  69. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  70. data/spec/dummy/config/locales/en.yml +5 -0
  71. data/spec/dummy/config/routes.rb +4 -0
  72. data/spec/dummy/config.ru +4 -0
  73. data/spec/dummy/db/development.sqlite3 +0 -0
  74. data/spec/dummy/db/schema.rb +34 -0
  75. data/spec/dummy/db/test.sqlite3 +0 -0
  76. data/spec/dummy/log/development.log +4388 -0
  77. data/spec/dummy/log/test.log +750 -0
  78. data/spec/dummy/public/404.html +26 -0
  79. data/spec/dummy/public/422.html +26 -0
  80. data/spec/dummy/public/500.html +25 -0
  81. data/spec/dummy/public/favicon.ico +0 -0
  82. data/spec/dummy/script/rails +6 -0
  83. data/spec/dummy/tmp/cache/assets/BF2/BA0/sprockets%2Fc465f617006f371a570048816c344586 +0 -0
  84. data/spec/dummy/tmp/cache/assets/BF4/290/sprockets%2Fb4800880231a9ee7462085473e967133 +0 -0
  85. data/spec/dummy/tmp/cache/assets/BF4/F70/sprockets%2F7675401393a98310b35195d82832ef15 +0 -0
  86. data/spec/dummy/tmp/cache/assets/C7A/FD0/sprockets%2Fc32979f5e0331ec91531338d8ca43024 +0 -0
  87. data/spec/dummy/tmp/cache/assets/C82/940/sprockets%2F71fd0d5860b491074a85f02db6849227 +0 -0
  88. data/spec/dummy/tmp/cache/assets/C99/CE0/sprockets%2Fa9e3bce034e4511d161e1944200455d3 +0 -0
  89. data/spec/dummy/tmp/cache/assets/CB0/0F0/sprockets%2Fb94cb7750c4a13028836a17f82c5946b +0 -0
  90. data/spec/dummy/tmp/cache/assets/CB5/BF0/sprockets%2F34b1fb9a3b2f3e930436f5856e727129 +0 -0
  91. data/spec/dummy/tmp/cache/assets/CBA/DA0/sprockets%2F37124a7a569a43b3739b926cc9da6397 +0 -0
  92. data/spec/dummy/tmp/cache/assets/CBB/350/sprockets%2F63b5d7323752f0afb24ff82484e68592 +0 -0
  93. data/spec/dummy/tmp/cache/assets/CBF/450/sprockets%2Fd906fd2492c5676acdb0f31766975842 +0 -0
  94. data/spec/dummy/tmp/cache/assets/CC7/9D0/sprockets%2F04258d58abf44498e2be2088df594399 +0 -0
  95. data/spec/dummy/tmp/cache/assets/CCE/A50/sprockets%2F95f552879446108bb23884b9fc8de47f +0 -0
  96. data/spec/dummy/tmp/cache/assets/CD1/C90/sprockets%2F8ac4011e2f834d38565fb0295af0034b +0 -0
  97. data/spec/dummy/tmp/cache/assets/CD7/0A0/sprockets%2F5150feb2b84a78567c7185c5231a1b2e +0 -0
  98. data/spec/dummy/tmp/cache/assets/CDF/C70/sprockets%2F944209069b3190d36ab1a6c687c4c8be +0 -0
  99. data/spec/dummy/tmp/cache/assets/CE3/EE0/sprockets%2F2ce7c81c2bd8280698c3787300b2c29e +0 -0
  100. data/spec/dummy/tmp/cache/assets/CE6/C40/sprockets%2Fc818bee730438348a68efd92bf139220 +0 -0
  101. data/spec/dummy/tmp/cache/assets/CF6/460/sprockets%2Fd6d44319821067fc932ded86d5e9d837 +0 -0
  102. data/spec/dummy/tmp/cache/assets/CFD/4E0/sprockets%2Fc40691e60cdd254c0fc47867a0a018a1 +0 -0
  103. data/spec/dummy/tmp/cache/assets/D1E/700/sprockets%2F992faf3337c4ef8711e5522ff6706cf3 +0 -0
  104. data/spec/dummy/tmp/cache/assets/D34/D60/sprockets%2Ff95ce452cd15cfe3c62a22505520f1b9 +0 -0
  105. data/spec/dummy/tmp/cache/assets/D36/0C0/sprockets%2Fab4634b46625f2a59f2c81fca25b29b2 +0 -0
  106. data/spec/dummy/tmp/cache/assets/D36/580/sprockets%2Fd4cac000971b2a139e658ee1d57cc177 +0 -0
  107. data/spec/dummy/tmp/cache/assets/D38/370/sprockets%2F3f2e6c3a2fdaae7eac19245860891151 +0 -0
  108. data/spec/dummy/tmp/cache/assets/D38/BC0/sprockets%2F50f7a7f0253d401d08bac8f46537e6cb +0 -0
  109. data/spec/dummy/tmp/cache/assets/D39/1E0/sprockets%2Fb461de82da868310001d0886fc0fd5ef +0 -0
  110. data/spec/dummy/tmp/cache/assets/D39/C00/sprockets%2F422361ebe4a842fa89dc3b99a43ce114 +0 -0
  111. data/spec/dummy/tmp/cache/assets/D40/5F0/sprockets%2F06b15a4371a6f969ff7d0b7ef237ca06 +0 -0
  112. data/spec/dummy/tmp/cache/assets/D42/440/sprockets%2F20d8433a8526ab798ef3cc9c0d608d5b +0 -0
  113. data/spec/dummy/tmp/cache/assets/D42/900/sprockets%2Fa82f43357557dbec4918e295c1b6fa1a +0 -0
  114. data/spec/dummy/tmp/cache/assets/D46/7A0/sprockets%2Ff58dbdfbe51f1e65b669f4531676c111 +0 -0
  115. data/spec/dummy/tmp/cache/assets/D4A/B40/sprockets%2Ff40ad1859c7f01f99f019b46b9a4aa89 +0 -0
  116. data/spec/dummy/tmp/cache/assets/D4A/FC0/sprockets%2F8239c23794e8598c2fbc0dbdf7214a6d +0 -0
  117. data/spec/dummy/tmp/cache/assets/D53/6B0/sprockets%2Fd8ec39b3b5a1510cefa113328e030ab7 +0 -0
  118. data/spec/dummy/tmp/cache/assets/D5E/B40/sprockets%2F08c7b37c12104347d6f0dd3a2ac96dbd +0 -0
  119. data/spec/dummy/tmp/cache/assets/D6D/5F0/sprockets%2F6aaa47a79107eeac3b80345b95eed528 +0 -0
  120. data/spec/dummy/tmp/cache/assets/D70/330/sprockets%2F5f9f172aec541c9e4265aea3d2a416f9 +0 -0
  121. data/spec/dummy/tmp/cache/assets/D8F/DA0/sprockets%2F9e434efa471e31eea1da933f0ac3e322 +0 -0
  122. data/spec/dummy/tmp/cache/assets/D90/C80/sprockets%2Fd04fc70f145ec63ad43007a5e2cea9b7 +0 -0
  123. data/spec/dummy/tmp/cache/assets/DA2/9D0/sprockets%2F17df2df8c3aae2af98a9d325815325ed +0 -0
  124. data/spec/dummy/tmp/cache/assets/DA3/A50/sprockets%2F8c32df8c2b685b1b2d5f88bb15f9bc70 +0 -0
  125. data/spec/dummy/tmp/cache/assets/DB9/790/sprockets%2F6c968e2895d7a81cfe44addf3d57c7d5 +0 -0
  126. data/spec/dummy/tmp/cache/assets/DCE/930/sprockets%2Fea724572bf99bab5f2019c2fdfba92c5 +0 -0
  127. data/spec/dummy/tmp/cache/assets/DD1/F90/sprockets%2Fd924f5c7b0cf8d008dd8fea4e00d438f +0 -0
  128. data/spec/dummy/tmp/cache/assets/DD9/510/sprockets%2F544220563a5adf97ea8b5ff7ebe8ff3b +0 -0
  129. data/spec/dummy/tmp/cache/assets/DEF/B20/sprockets%2F3e8a1eac029ed92bee842e2abfea2232 +0 -0
  130. data/spec/dummy/tmp/cache/assets/DF4/6A0/sprockets%2F4af9b5050ffa96b2e2d3bebad85a06c5 +0 -0
  131. data/spec/dummy/tmp/cache/assets/DF6/DF0/sprockets%2Fed28cfcc773b333e5eea0aae655115cf +0 -0
  132. data/spec/dummy/tmp/cache/assets/E61/210/sprockets%2F57168c3ab6088aaf76cee4deaebeac7d +0 -0
  133. data/spec/dummy/tmp/cache/assets/EB7/D90/sprockets%2F5179abd7ac7cdbcea3e43fbbeb1fed64 +0 -0
  134. data/spec/dummy/tmp/cache/sass/1497ad7d973056507928cc72b57246640fe98320/bootstrap.scssc +0 -0
  135. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_accordion.scssc +0 -0
  136. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_alerts.scssc +0 -0
  137. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_breadcrumbs.scssc +0 -0
  138. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_button-groups.scssc +0 -0
  139. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_buttons.scssc +0 -0
  140. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_carousel.scssc +0 -0
  141. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_close.scssc +0 -0
  142. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_code.scssc +0 -0
  143. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_component-animations.scssc +0 -0
  144. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_dropdowns.scssc +0 -0
  145. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_forms.scssc +0 -0
  146. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_grid.scssc +0 -0
  147. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_hero-unit.scssc +0 -0
  148. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_labels-badges.scssc +0 -0
  149. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_layouts.scssc +0 -0
  150. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_media.scssc +0 -0
  151. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_mixins.scssc +0 -0
  152. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_modals.scssc +0 -0
  153. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_navbar.scssc +0 -0
  154. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_navs.scssc +0 -0
  155. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_pager.scssc +0 -0
  156. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_pagination.scssc +0 -0
  157. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_popovers.scssc +0 -0
  158. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_progress-bars.scssc +0 -0
  159. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_reset.scssc +0 -0
  160. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_scaffolding.scssc +0 -0
  161. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_sprites.scssc +0 -0
  162. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_tables.scssc +0 -0
  163. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_thumbnails.scssc +0 -0
  164. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_tooltip.scssc +0 -0
  165. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_type.scssc +0 -0
  166. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_utilities.scssc +0 -0
  167. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_variables.scssc +0 -0
  168. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/_wells.scssc +0 -0
  169. data/spec/dummy/tmp/cache/sass/400fd17e133835848700b2f4e2f02dbad9b80a92/bootstrap.scssc +0 -0
  170. data/spec/dummy/tmp/cache/sass/40d71a06abb9e71575f253dcb1f6b85c8b3156e2/_config.sassc +0 -0
  171. data/spec/dummy/tmp/cache/sass/40d71a06abb9e71575f253dcb1f6b85c8b3156e2/_icon-font-24.sassc +0 -0
  172. data/spec/dummy/tmp/cache/sass/40d71a06abb9e71575f253dcb1f6b85c8b3156e2/_icon-font.sassc +0 -0
  173. data/spec/dummy/tmp/cache/sass/40d71a06abb9e71575f253dcb1f6b85c8b3156e2/_mixins.sassc +0 -0
  174. data/spec/dummy/tmp/cache/sass/40d71a06abb9e71575f253dcb1f6b85c8b3156e2/_spaces.sassc +0 -0
  175. data/spec/dummy/tmp/cache/sass/803365d1c8cc163df0ae50688e30dcee22f1632b/flat-ui.sassc +0 -0
  176. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_btn.sassc +0 -0
  177. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_checkbox-and-radio.sassc +0 -0
  178. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_demo.sassc +0 -0
  179. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_footer.sassc +0 -0
  180. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_input.sassc +0 -0
  181. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_login.sassc +0 -0
  182. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_navbar.sassc +0 -0
  183. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_pager.sassc +0 -0
  184. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_pagination.sassc +0 -0
  185. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_palette.sassc +0 -0
  186. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_progress.sassc +0 -0
  187. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_select.sassc +0 -0
  188. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_share.sassc +0 -0
  189. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_tagsinput.sassc +0 -0
  190. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_tile.sassc +0 -0
  191. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_todo.sassc +0 -0
  192. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_toggle.sassc +0 -0
  193. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_tooltip.sassc +0 -0
  194. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_type.sassc +0 -0
  195. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_ui-slider.sassc +0 -0
  196. data/spec/dummy/tmp/cache/sass/bc846aea9bb0b60505398d8c47551cb8d064e9e7/_video.sassc +0 -0
  197. data/spec/factories/user.rb +8 -0
  198. data/spec/spec_helper.rb +51 -0
  199. data/test/fixtures/tracker/issues.yml +9 -0
  200. data/test/fixtures/tracker/users_issues.yml +15 -0
  201. data/test/functional/tracker/issue_mailer_test.rb +9 -0
  202. data/test/functional/tracker/issues_controller_test.rb +9 -0
  203. data/test/unit/helpers/tracker/issues_helper_test.rb +6 -0
  204. data/test/unit/tracker/issue_test.rb +9 -0
  205. data/test/unit/tracker/users_issues_test.rb +9 -0
  206. metadata +305 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f389e145f8a5aa19620763f32f5227fce63acff0
4
+ data.tar.gz: 77d4c1b3ee06cfdd563e2646c08d25a03fc7a285
5
+ SHA512:
6
+ metadata.gz: e0636f371052cfa90a505945a6318ca25060812335c3afb3389115972f751ca939a97751c7196d960b9d77f906c0ba22a78959b867d63c16b50085eccef7e872
7
+ data.tar.gz: e7e4928f5660c8b16a165d77068b5c43832afad01cee75ae0931af475704b10fe2271d8fd5ed76c96319d3ab27dc66da9db467304e638aa8bc933f1dba23d408
data/.yardoc/checksums ADDED
@@ -0,0 +1,13 @@
1
+ lib/rails_tracker.rb b7508ca84f1c16d035c7a0f05e11e0db4b27ef32
2
+ lib/tasks/test_seed.rb 51cb934d156ae8f564767811cf3d432065090131
3
+ lib/rails_tracker/engine.rb 6234433545fbd2425895431cad46cc0392b37139
4
+ lib/rails_tracker/version.rb e94502d96a1aa530fc10a1a18391fcafc201babf
5
+ app/models/rails_tracker/issue.rb 9e51ec99eb2e325facef9b717fa45cc53428a60c
6
+ app/models/rails_tracker/users_issues.rb 1bd6704c6c22ab7547685a62ac3264c93903d7e0
7
+ app/mailers/rails_tracker/issue_mailer.rb 5ffd1e0666cb9cf4dd082dcc73629958ab0af595
8
+ app/helpers/rails_tracker/issues_helper.rb 1c28434d60fe39d77e19f93079b295e3fc0052a9
9
+ app/helpers/rails_tracker/application_helper.rb 604b9f8e62dd868fec43604e8abd20c7692b1f7d
10
+ lib/generators/rails_tracker/templates/install.rb 1fed48fbcb5415a6f86a3ef94e8d4f7f91e71401
11
+ lib/generators/rails_tracker/install_generator.rb 3081b4cc5329fe9c84ea7f64a2e698068c7eb140
12
+ app/controllers/rails_tracker/issues_controller.rb 4ad2f7284fb02c62744a62a6e86dc664d6a176a4
13
+ app/controllers/rails_tracker/application_controller.rb 66a549bbc507159d217319a2b553049e481e2de8
Binary file
Binary file
Binary file
data/Gemfile ADDED
@@ -0,0 +1,31 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ gem "jquery-rails"
6
+ gem "rails"
7
+ gem "github_api"
8
+ gem "faraday-http-cache"
9
+ gem 'delayed_job_active_record'
10
+ gem 'gem-this'
11
+
12
+ group :development do
13
+ gem "better_errors", "~> 0.9.0" # Web UI to debug exceptions. Go to /__better_errors to access the latest one
14
+ gem "binding_of_caller", "~> 0.7.1" # Retrieve the binding of a method's caller in MRI Ruby >= 1.9.2
15
+ gem "debugger"
16
+ gem "sextant" # Web UI to display application route paths
17
+ gem "i18n"
18
+ end
19
+
20
+ group :test do
21
+ gem "factory_girl_rails", "~> 4.0"
22
+ gem "sqlite3"
23
+ gem "faker"
24
+ gem "devise"
25
+ end
26
+
27
+ group :development, :test do
28
+ gem "rspec-rails", "~> 2.12.2"
29
+ gem "slim"
30
+ end
31
+
data/Gemfile.lock ADDED
@@ -0,0 +1,207 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rails_tracker (0.3.0)
5
+ delayed_job_active_record
6
+ faraday-http-cache
7
+ github_api
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actionmailer (3.2.14)
13
+ actionpack (= 3.2.14)
14
+ mail (~> 2.5.4)
15
+ actionpack (3.2.14)
16
+ activemodel (= 3.2.14)
17
+ activesupport (= 3.2.14)
18
+ builder (~> 3.0.0)
19
+ erubis (~> 2.7.0)
20
+ journey (~> 1.0.4)
21
+ rack (~> 1.4.5)
22
+ rack-cache (~> 1.2)
23
+ rack-test (~> 0.6.1)
24
+ sprockets (~> 2.2.1)
25
+ activemodel (3.2.14)
26
+ activesupport (= 3.2.14)
27
+ builder (~> 3.0.0)
28
+ activerecord (3.2.14)
29
+ activemodel (= 3.2.14)
30
+ activesupport (= 3.2.14)
31
+ arel (~> 3.0.2)
32
+ tzinfo (~> 0.3.29)
33
+ activeresource (3.2.14)
34
+ activemodel (= 3.2.14)
35
+ activesupport (= 3.2.14)
36
+ activesupport (3.2.14)
37
+ i18n (~> 0.6, >= 0.6.4)
38
+ multi_json (~> 1.0)
39
+ addressable (2.3.5)
40
+ arel (3.0.2)
41
+ atomic (1.1.14)
42
+ bcrypt-ruby (3.1.2)
43
+ better_errors (0.9.0)
44
+ coderay (>= 1.0.0)
45
+ erubis (>= 2.6.6)
46
+ binding_of_caller (0.7.2)
47
+ debug_inspector (>= 0.0.1)
48
+ builder (3.0.4)
49
+ coderay (1.1.0)
50
+ columnize (0.3.6)
51
+ debug_inspector (0.0.2)
52
+ debugger (1.6.1)
53
+ columnize (>= 0.3.1)
54
+ debugger-linecache (~> 1.2.0)
55
+ debugger-ruby_core_source (~> 1.2.3)
56
+ debugger-linecache (1.2.0)
57
+ debugger-ruby_core_source (1.2.3)
58
+ delayed_job (4.0.0)
59
+ activesupport (>= 3.0, < 4.1)
60
+ delayed_job_active_record (4.0.0)
61
+ activerecord (>= 3.0, < 4.1)
62
+ delayed_job (>= 3.0, < 4.1)
63
+ devise (3.1.1)
64
+ bcrypt-ruby (~> 3.0)
65
+ orm_adapter (~> 0.1)
66
+ railties (>= 3.2.6, < 5)
67
+ thread_safe (~> 0.1)
68
+ warden (~> 1.2.3)
69
+ diff-lcs (1.1.3)
70
+ erubis (2.7.0)
71
+ factory_girl (4.2.0)
72
+ activesupport (>= 3.0.0)
73
+ factory_girl_rails (4.2.1)
74
+ factory_girl (~> 4.2.0)
75
+ railties (>= 3.0.0)
76
+ faker (1.2.0)
77
+ i18n (~> 0.5)
78
+ faraday (0.8.8)
79
+ multipart-post (~> 1.2.0)
80
+ faraday-http-cache (0.2.1)
81
+ activesupport (>= 3.0)
82
+ faraday (~> 0.8)
83
+ multi_json (~> 1.3)
84
+ gem-this (0.3.7)
85
+ github_api (0.10.2)
86
+ addressable
87
+ faraday (~> 0.8.7)
88
+ hashie (>= 1.2)
89
+ multi_json (~> 1.4)
90
+ nokogiri (~> 1.6.0)
91
+ oauth2
92
+ hashie (2.0.5)
93
+ hike (1.2.3)
94
+ httpauth (0.2.0)
95
+ i18n (0.6.5)
96
+ journey (1.0.4)
97
+ jquery-rails (3.0.4)
98
+ railties (>= 3.0, < 5.0)
99
+ thor (>= 0.14, < 2.0)
100
+ json (1.8.0)
101
+ jwt (0.1.8)
102
+ multi_json (>= 1.5)
103
+ mail (2.5.4)
104
+ mime-types (~> 1.16)
105
+ treetop (~> 1.4.8)
106
+ mime-types (1.25)
107
+ mini_portile (0.5.1)
108
+ multi_json (1.8.0)
109
+ multi_xml (0.5.5)
110
+ multipart-post (1.2.0)
111
+ nokogiri (1.6.0)
112
+ mini_portile (~> 0.5.0)
113
+ oauth2 (0.9.2)
114
+ faraday (~> 0.8)
115
+ httpauth (~> 0.2)
116
+ jwt (~> 0.1.4)
117
+ multi_json (~> 1.0)
118
+ multi_xml (~> 0.5)
119
+ rack (~> 1.2)
120
+ orm_adapter (0.4.0)
121
+ polyglot (0.3.3)
122
+ rack (1.4.5)
123
+ rack-cache (1.2)
124
+ rack (>= 0.4)
125
+ rack-ssl (1.3.3)
126
+ rack
127
+ rack-test (0.6.2)
128
+ rack (>= 1.0)
129
+ rails (3.2.14)
130
+ actionmailer (= 3.2.14)
131
+ actionpack (= 3.2.14)
132
+ activerecord (= 3.2.14)
133
+ activeresource (= 3.2.14)
134
+ activesupport (= 3.2.14)
135
+ bundler (~> 1.0)
136
+ railties (= 3.2.14)
137
+ railties (3.2.14)
138
+ actionpack (= 3.2.14)
139
+ activesupport (= 3.2.14)
140
+ rack-ssl (~> 1.3.2)
141
+ rake (>= 0.8.7)
142
+ rdoc (~> 3.4)
143
+ thor (>= 0.14.6, < 2.0)
144
+ rake (10.1.0)
145
+ rdoc (3.12.2)
146
+ json (~> 1.4)
147
+ rspec (2.12.0)
148
+ rspec-core (~> 2.12.0)
149
+ rspec-expectations (~> 2.12.0)
150
+ rspec-mocks (~> 2.12.0)
151
+ rspec-core (2.12.2)
152
+ rspec-expectations (2.12.1)
153
+ diff-lcs (~> 1.1.3)
154
+ rspec-mocks (2.12.2)
155
+ rspec-rails (2.12.2)
156
+ actionpack (>= 3.0)
157
+ activesupport (>= 3.0)
158
+ railties (>= 3.0)
159
+ rspec-core (~> 2.12.0)
160
+ rspec-expectations (~> 2.12.0)
161
+ rspec-mocks (~> 2.12.0)
162
+ sextant (0.2.4)
163
+ rails (>= 3.2)
164
+ slim (2.0.1)
165
+ temple (~> 0.6.6)
166
+ tilt (>= 1.3.3, < 2.1)
167
+ sprockets (2.2.2)
168
+ hike (~> 1.2)
169
+ multi_json (~> 1.0)
170
+ rack (~> 1.0)
171
+ tilt (~> 1.1, != 1.3.0)
172
+ sqlite3 (1.3.8)
173
+ temple (0.6.6)
174
+ thor (0.18.1)
175
+ thread_safe (0.1.3)
176
+ atomic
177
+ tilt (1.4.1)
178
+ treetop (1.4.15)
179
+ polyglot
180
+ polyglot (>= 0.3.1)
181
+ tzinfo (0.3.37)
182
+ warden (1.2.3)
183
+ rack (>= 1.0)
184
+
185
+ PLATFORMS
186
+ ruby
187
+
188
+ DEPENDENCIES
189
+ better_errors (~> 0.9.0)
190
+ binding_of_caller (~> 0.7.1)
191
+ debugger
192
+ delayed_job_active_record
193
+ devise
194
+ factory_girl_rails (~> 4.0)
195
+ faker
196
+ faraday-http-cache
197
+ gem-this
198
+ github_api
199
+ i18n
200
+ jquery-rails
201
+ rails
202
+ rails_tracker!
203
+ rspec
204
+ rspec-rails (~> 2.12.2)
205
+ sextant
206
+ slim
207
+ sqlite3
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2013 YOURNAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,88 @@
1
+ = Rails Tracker
2
+ Rails Tracker is a mountable Rails engine that enables your users with a web UI
3
+ to track development progress through Github Issues.
4
+
5
+ Rails Tracker is a valuable tool for services/products that see value in providing transparency with
6
+ their bug/issue progress directly to the end user.
7
+
8
+ ![ScreenShot](https://raw.github.com/mcifani/active_progress/master/screenshot1.png)
9
+
10
+ == Current Requirements(important)
11
+ Rails Tracker currently requires Active Record and will only work on applications which use Devise
12
+ as their user authentication system. Rails Tracker utitlizes various Devise helpers to faciliate
13
+ the interactions for your users to track development tickets & issues.
14
+
15
+ == Getting Started
16
+ Add Rails Tracker as a Ruby Gem.
17
+
18
+ gem 'rails_tracker'
19
+
20
+ After you install Rails Tracker and add it to your Gemfile, you need to run the generator:
21
+
22
+ rails generate rails_tracker:install
23
+
24
+ The generator will install an initializer which describes ALL Active Progress's configuration options and you MUST take a look at it.
25
+
26
+ Copy the migrations which will create tables to store issue/user associations. Make sure to run your migrations after.
27
+
28
+ rake rails_tracker:install:migrations
29
+
30
+ You will need to mount the engine and set the namespace you want to your routes.rb.
31
+
32
+ mount ActiveProgress::Engine => "/rails_tracker"
33
+
34
+ "/rails_tracker" can be anything you like. This is where you can now direct users to track your Github issues.
35
+
36
+ You will need to extend Rails Tracker in your particular User Model. You need to do this by including the module
37
+ directly in your User Model class.
38
+
39
+ class User < ActiveRecord::Base
40
+ include RailsTracker
41
+ # The rest of your User Model
42
+ end
43
+
44
+ == Set a hook in your GitHub Repo to handle closed issues
45
+
46
+ These next steps will help incorporate your repo hooks and configure the hook to trigger on issues. Rails Tracker has mailers built in that will
47
+ alert your users when issues have been closed.
48
+
49
+ Github webhooks for a URL by default only fire on repo pushes. There is currently no way in the web UI to set up webhooks for other events.
50
+ You must set your repo to the issue event via the API directly. Follow this example to create a new hook and set the event support with issues
51
+
52
+ Make sure to pass this URL when you are creating the hook. By default Rails Tracker uses the listen namespace to respond to post updates sent from github.
53
+ Be sure to name the new hook "web".
54
+
55
+ curl -u 'username' -v -H "Content-Type: application/json" \
56
+ -X POST -d '{"name": "web", "active": true, "events": ["issues"], \
57
+ "config": {"url": "example.com/tracker/listen", "content_type": "json"}}' \
58
+ https://api.github.com/repos/:username/:repo/hooks
59
+
60
+ example.com/rails_tracker/listen
61
+
62
+ You can confirm the hook was created correctly by either viewing directly in the admin section of the repo or with a get request
63
+
64
+ curl -u 'username' https://api.github.com/repos/:username/:repo/hooks
65
+
66
+ == Configure delayed job for Rails Tracker closed status emails
67
+
68
+ Rails Tracker utitlizes delayed job to help process your alert emails. When a callback from Github is sent
69
+ to the listener that a issue has been closed, Rails Tracker marks the issue as closed for your user and also
70
+ sends an email to update the user of the status. Since you could potentially have thousands of users to send a
71
+ status update we move this into a background process.
72
+
73
+ If you already have delayed job working jobs you won't need to follow this setup. Otherwise make sure to run
74
+ the installation with
75
+
76
+ rails generate delayed_job:active_record
77
+
78
+ Delayed job is a dependency of Rails Tracker so it is already made available for your project. Next run your migrations
79
+
80
+ rake db:migrate
81
+
82
+ You can familiarize yourself with delayed job and insuring your workers are running by reading more at
83
+
84
+ https://github.com/collectiveidea/delayed_job
85
+
86
+
87
+ == License
88
+ This project rocks and uses MIT-LICENSE.
data/Rakefile ADDED
@@ -0,0 +1,113 @@
1
+ #!/usr/bin/env rake
2
+ begin
3
+ require 'bundler/setup'
4
+ rescue LoadError
5
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
6
+ end
7
+ begin
8
+ require 'rdoc/task'
9
+ rescue LoadError
10
+ require 'rdoc/rdoc'
11
+ require 'rake/rdoctask'
12
+ RDoc::Task = Rake::RDocTask
13
+ end
14
+
15
+ RDoc::Task.new(:rdoc) do |rdoc|
16
+ rdoc.rdoc_dir = 'rdoc'
17
+ rdoc.title = 'Active Progress'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
24
+ load 'rails/tasks/engine.rake'
25
+
26
+
27
+
28
+ Bundler::GemHelper.install_tasks
29
+
30
+
31
+ require "rubygems"
32
+ require "rubygems/package_task"
33
+ require "rdoc/task"
34
+
35
+ require "rspec-rails"
36
+ require "rspec/core/rake_task"
37
+ RSpec::Core::RakeTask.new do |t|
38
+ t.rspec_opts = %w(--format documentation --colour)
39
+ end
40
+
41
+
42
+ task :default => ["test", "spec"]
43
+
44
+ # This builds the actual gem. For details of what all these options
45
+ # mean, and other ones you can add, check the documentation here:
46
+ #
47
+ # http://rubygems.org/read/chapter/20
48
+ #
49
+ spec = Gem::Specification.new do |s|
50
+
51
+ # Change these as appropriate
52
+ s.name = "rails_tracker"
53
+ s.version = "0.3.0"
54
+ s.summary = "An elegant Rails solution for issue tracking"
55
+ s.description = "An elegant Rails solution for issue tracking"
56
+ s.author = "Mike Cifani"
57
+ s.email = "mike@railstracker.com"
58
+ s.homepage = "http://www.railstracker.com"
59
+
60
+ s.has_rdoc = true
61
+ s.extra_rdoc_files = %w(README.rdoc)
62
+ s.rdoc_options = %w(--main README.rdoc)
63
+
64
+ # Add any extra files to include in the gem
65
+ s.files = %w(rails_tracker.gemspec Gemfile Gemfile.lock issues} MIT-LICENSE Rakefile README.rdoc screenshot1.png) + Dir.glob("{test,spec,lib,app,db,config,.yardoc}/**/*")
66
+ s.require_paths = ["lib"]
67
+
68
+ # If you want to depend on other gems, add them here, along with any
69
+ # relevant versions
70
+ # s.add_dependency("some_other_gem", "~> 0.1.0")
71
+ s.add_dependency "github_api"
72
+ s.add_dependency "faraday-http-cache"
73
+ s.add_dependency "delayed_job_active_record"
74
+
75
+ # If your tests use any gems, include them here
76
+ s.add_development_dependency("rspec")
77
+ end
78
+
79
+ # This task actually builds the gem. We also regenerate a static
80
+ # .gemspec file, which is useful if something (i.e. GitHub) will
81
+ # be automatically building a gem for this project. If you're not
82
+ # using GitHub, edit as appropriate.
83
+ #
84
+ # To publish your gem online, install the 'gemcutter' gem; Read more
85
+ # about that here: http://gemcutter.org/pages/gem_docs
86
+ Gem::PackageTask.new(spec) do |pkg|
87
+ pkg.gem_spec = spec
88
+ end
89
+
90
+ desc "Build the gemspec file #{spec.name}.gemspec"
91
+ task :gemspec do
92
+ file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
93
+ File.open(file, "w") {|f| f << spec.to_ruby }
94
+ end
95
+
96
+ # If you don't want to generate the .gemspec file, just remove this line. Reasons
97
+ # why you might want to generate a gemspec:
98
+ # - using bundler with a git source
99
+ # - building the gem without rake (i.e. gem build blah.gemspec)
100
+ # - maybe others?
101
+ task :package => :gemspec
102
+
103
+ # Generate documentation
104
+ RDoc::Task.new do |rd|
105
+ rd.main = "README.rdoc"
106
+ rd.rdoc_files.include("README.rdoc", "lib/**/*.rb")
107
+ rd.rdoc_dir = "rdoc"
108
+ end
109
+
110
+ desc 'Clear out RDoc and generated packages'
111
+ task :clean => [:clobber_rdoc, :clobber_package] do
112
+ rm "#{spec.name}.gemspec"
113
+ end
@@ -0,0 +1,15 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // the compiled file.
9
+ //
10
+ // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
11
+ // GO AFTER THE REQUIRES BELOW.
12
+ //
13
+ //= require jquery
14
+ //= require jquery_ujs
15
+ //= require_tree .
@@ -0,0 +1,2 @@
1
+ // Place all the behaviors and hooks related to the matching controller here.
2
+ // All this logic will automatically be available in application.js.
@@ -0,0 +1,14 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the top of the
9
+ * compiled file, but it's generally better to create a new file per style scope.
10
+ *
11
+ *= require_self
12
+ *= require bootstrap
13
+ *= require_tree .
14
+ */