cmor_testimonials 0.0.8.pre

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 (277) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +43 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/javascripts/cmor/testimonials/application/keep.js +0 -0
  6. data/app/assets/javascripts/cmor/testimonials/application.js +3 -0
  7. data/app/assets/javascripts/cmor_testimonials.js +2 -0
  8. data/app/assets/stylesheets/cmor/testimonials/application/carousel.css +15 -0
  9. data/app/assets/stylesheets/cmor/testimonials/application.css +3 -0
  10. data/app/assets/stylesheets/cmor_testimonials.css +3 -0
  11. data/app/models/cmor/testimonials/application_record.rb +7 -0
  12. data/app/models/cmor/testimonials/category.rb +15 -0
  13. data/app/models/cmor/testimonials/testimonial.rb +19 -0
  14. data/app/view_helpers/cmor/testimonials/application_view_helper.rb +32 -0
  15. data/app/views/cmor/testimonials/application_view_helper/_render_category.html.haml +28 -0
  16. data/app/views/components/cmor/testimonials/_testimonials_box.html.erb +38 -0
  17. data/config/initializers/assets.rb +1 -0
  18. data/config/locales/de.yml +40 -0
  19. data/config/locales/en.yml +40 -0
  20. data/config/routes.rb +6 -0
  21. data/db/migrate/20190401160025_create_cmor_testimonials_categories.rb +11 -0
  22. data/db/migrate/20190401204002_create_cmor_testimonials_testimonials.rb +15 -0
  23. data/lib/cmor/testimonials/configuration.rb +15 -0
  24. data/lib/cmor/testimonials/engine.rb +14 -0
  25. data/lib/cmor/testimonials/version.rb +8 -0
  26. data/lib/cmor/testimonials.rb +14 -0
  27. data/lib/cmor_testimonials.rb +10 -0
  28. data/lib/generators/cmor/testimonials/install/install_generator.rb +15 -0
  29. data/lib/generators/cmor/testimonials/install/templates/initializer.rb +10 -0
  30. data/spec/dummy/Rakefile +6 -0
  31. data/spec/dummy/app/assets/config/manifest.js +3 -0
  32. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  33. data/spec/dummy/app/assets/javascripts/cable.js +13 -0
  34. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  35. data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
  36. data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
  37. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  38. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  39. data/spec/dummy/app/jobs/application_job.rb +2 -0
  40. data/spec/dummy/app/mailers/application_mailer.rb +4 -0
  41. data/spec/dummy/app/models/application_record.rb +3 -0
  42. data/spec/dummy/app/views/layouts/application.html.erb +15 -0
  43. data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  44. data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  45. data/spec/dummy/bin/bundle +3 -0
  46. data/spec/dummy/bin/rails +4 -0
  47. data/spec/dummy/bin/rake +4 -0
  48. data/spec/dummy/bin/setup +36 -0
  49. data/spec/dummy/bin/update +31 -0
  50. data/spec/dummy/bin/yarn +11 -0
  51. data/spec/dummy/config/application.rb +31 -0
  52. data/spec/dummy/config/boot.rb +5 -0
  53. data/spec/dummy/config/cable.yml +10 -0
  54. data/spec/dummy/config/database.yml +25 -0
  55. data/spec/dummy/config/environment.rb +5 -0
  56. data/spec/dummy/config/environments/development.rb +61 -0
  57. data/spec/dummy/config/environments/production.rb +94 -0
  58. data/spec/dummy/config/environments/test.rb +46 -0
  59. data/spec/dummy/config/initializers/application_controller_renderer.rb +8 -0
  60. data/spec/dummy/config/initializers/assets.rb +14 -0
  61. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  62. data/spec/dummy/config/initializers/cmor_testimonials.rb +10 -0
  63. data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
  64. data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
  65. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  66. data/spec/dummy/config/initializers/i18n.rb +2 -0
  67. data/spec/dummy/config/initializers/inflections.rb +16 -0
  68. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  69. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  70. data/spec/dummy/config/locales/en.yml +33 -0
  71. data/spec/dummy/config/puma.rb +34 -0
  72. data/spec/dummy/config/routes.rb +3 -0
  73. data/spec/dummy/config/spring.rb +6 -0
  74. data/spec/dummy/config/storage.yml +34 -0
  75. data/spec/dummy/config.ru +5 -0
  76. data/spec/dummy/db/development.sqlite3 +0 -0
  77. data/spec/dummy/db/migrate/20190415205541_create_active_storage_tables.active_storage.rb +27 -0
  78. data/spec/dummy/db/migrate/20190415205602_create_cmor_testimonials_categories.cmor_testimonials.rb +12 -0
  79. data/spec/dummy/db/migrate/20190415205603_create_cmor_testimonials_testimonials.cmor_testimonials.rb +16 -0
  80. data/spec/dummy/db/schema.rb +57 -0
  81. data/spec/dummy/db/test.sqlite3 +0 -0
  82. data/spec/dummy/log/development.log +126 -0
  83. data/spec/dummy/log/test.log +5788 -0
  84. data/spec/dummy/package.json +5 -0
  85. data/spec/dummy/public/404.html +67 -0
  86. data/spec/dummy/public/422.html +67 -0
  87. data/spec/dummy/public/500.html +66 -0
  88. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  89. data/spec/dummy/public/apple-touch-icon.png +0 -0
  90. data/spec/dummy/public/favicon.ico +0 -0
  91. data/spec/dummy/tmp/development_secret.txt +1 -0
  92. data/spec/dummy/tmp/storage/1N/J1/1NJ18sJCuUdBZUpdetYFuApY +0 -0
  93. data/spec/dummy/tmp/storage/28/gQ/28gQnjRT2t8msWxRpDP2KYka +0 -0
  94. data/spec/dummy/tmp/storage/2g/2b/2g2bbFxmaR22MMSM3fLN5nDB +0 -0
  95. data/spec/dummy/tmp/storage/2z/C3/2zC3mPmFoKDmQ5trvB3LzMr2 +0 -0
  96. data/spec/dummy/tmp/storage/33/7Z/337ZxQUr2SKGSfeVAJrfpf87 +0 -0
  97. data/spec/dummy/tmp/storage/3E/Y4/3EY4WEugSL5TSB5VuYD8eRAT +0 -0
  98. data/spec/dummy/tmp/storage/3e/iV/3eiVkLD4hH5T6qUKRCZvTJqj +0 -0
  99. data/spec/dummy/tmp/storage/4D/PM/4DPMqsHXexYKZbeWhK7wts93 +0 -0
  100. data/spec/dummy/tmp/storage/4v/zD/4vzDmubfGftBhYJUwMMWg12j +0 -0
  101. data/spec/dummy/tmp/storage/5X/vf/5XvfWJP5cF9uBo6iQeYovD64 +0 -0
  102. data/spec/dummy/tmp/storage/5j/mw/5jmwxWBJE7h32iqbTTd3XhYD +0 -0
  103. data/spec/dummy/tmp/storage/5v/km/5vkmp52bMPQR6TapqMe4NUUq +0 -0
  104. data/spec/dummy/tmp/storage/6B/3d/6B3dQ59g6LKxi8gwAct4kpnB +0 -0
  105. data/spec/dummy/tmp/storage/6S/HP/6SHPNswkCu1xDmCuUTPeVshP +0 -0
  106. data/spec/dummy/tmp/storage/6T/mN/6TmNBJMRz59t4Wpp6MamdV6j +0 -0
  107. data/spec/dummy/tmp/storage/6e/Ce/6eCeec45vBj18m9DpFSTtxVp +0 -0
  108. data/spec/dummy/tmp/storage/7L/2i/7L2iUQg5GjWkYAngBFRxs4Pr +0 -0
  109. data/spec/dummy/tmp/storage/7j/2N/7j2NVESwNyS2CoVoo7TABapL +0 -0
  110. data/spec/dummy/tmp/storage/8E/58/8E58jjd2RykiVbuebideURV5 +0 -0
  111. data/spec/dummy/tmp/storage/8M/qj/8MqjcvxpEMNftTZ8WJWMRMeF +0 -0
  112. data/spec/dummy/tmp/storage/8X/eY/8XeYuZFyqLMKrVnppUe7mrHW +0 -0
  113. data/spec/dummy/tmp/storage/8Y/QQ/8YQQ8jL55faAHby7SdgBfEC7 +0 -0
  114. data/spec/dummy/tmp/storage/8k/4g/8k4gZ6CyEkppMaLrwULiVsr9 +0 -0
  115. data/spec/dummy/tmp/storage/9o/Jj/9oJj1wuKPxJtCNqCdjXoZdXZ +0 -0
  116. data/spec/dummy/tmp/storage/A3/82/A382kRCKbYbzhxvfexVmSXCB +0 -0
  117. data/spec/dummy/tmp/storage/AH/GF/AHGFDr7r7RGf6wdUFxDg6hTy +0 -0
  118. data/spec/dummy/tmp/storage/Ab/mc/AbmcZGWMgDKFMJPYbU5jvrJZ +0 -0
  119. data/spec/dummy/tmp/storage/Ah/uE/AhuELtbVMAxbVRVnu98S6skP +0 -0
  120. data/spec/dummy/tmp/storage/Am/Km/AmKmN4qr4npqWZD1r89PMecR +0 -0
  121. data/spec/dummy/tmp/storage/BV/Gn/BVGnH6c7ZCuZwWnkALAM536c +0 -0
  122. data/spec/dummy/tmp/storage/CH/MF/CHMF37WejzzQ2eRqPyaUXwfE +0 -0
  123. data/spec/dummy/tmp/storage/CJ/qh/CJqhj3Tcca4HyM57QJvnNE8g +0 -0
  124. data/spec/dummy/tmp/storage/CZ/3N/CZ3Ni6zNHPa55SD2KbjATiD6 +0 -0
  125. data/spec/dummy/tmp/storage/Cf/FA/CfFAbUZQ98PCuBW7br96ypQ8 +0 -0
  126. data/spec/dummy/tmp/storage/Cs/St/CsStuy4F1sZcyxPuf73hvqYd +0 -0
  127. data/spec/dummy/tmp/storage/Dc/Vw/DcVwrmgibZ5ojXZbHpn2w3HE +0 -0
  128. data/spec/dummy/tmp/storage/Dv/7Y/Dv7YWjAQLYvJg17waUu3mNqr +0 -0
  129. data/spec/dummy/tmp/storage/Dv/T9/DvT9Wd56A83mggFUqbrmrAF5 +0 -0
  130. data/spec/dummy/tmp/storage/E4/Xf/E4XfzSqXPwb7g94y8oDC1eMC +0 -0
  131. data/spec/dummy/tmp/storage/EV/zf/EVzfVEG9Ka1VbDtbBLLCiDfz +0 -0
  132. data/spec/dummy/tmp/storage/EY/hm/EYhmVdjH3nsbv3kCZS6hggoQ +0 -0
  133. data/spec/dummy/tmp/storage/FK/rQ/FKrQmnw46xkdLbgH8rE8vBoj +0 -0
  134. data/spec/dummy/tmp/storage/Fn/Lv/FnLve1mynskdALBgZkWV1ZNm +0 -0
  135. data/spec/dummy/tmp/storage/Fo/u1/Fou1L8eJDZYvmh683iNdXe4Y +0 -0
  136. data/spec/dummy/tmp/storage/Fu/uK/FuuKNdHZ3ykgao7oLmNS2JuN +0 -0
  137. data/spec/dummy/tmp/storage/G5/mG/G5mGAwdc7yZ21GWUcsdAsqoj +0 -0
  138. data/spec/dummy/tmp/storage/GB/ux/GBuxpb2BUbZNdnqUhZN11cQK +0 -0
  139. data/spec/dummy/tmp/storage/GG/Vb/GGVbVHmRdUoCuuHDQ4U4d8Mb +0 -0
  140. data/spec/dummy/tmp/storage/GX/Wg/GXWgmi8qWvZ6s5jCeysSwUvZ +0 -0
  141. data/spec/dummy/tmp/storage/Go/9E/Go9Edk21oD7MHvGhpHPajdWQ +0 -0
  142. data/spec/dummy/tmp/storage/Gv/rA/GvrAR2JKd9ggKVUYaY7ZWLGJ +0 -0
  143. data/spec/dummy/tmp/storage/Gz/Rt/GzRtHKs6FGTNQREWYj6hm5Jx +0 -0
  144. data/spec/dummy/tmp/storage/HA/ad/HAadceL8x7QeVSAAXyV13K31 +0 -0
  145. data/spec/dummy/tmp/storage/Ht/rT/HtrTHcZpQdFL1FAxbtyGu7Jj +0 -0
  146. data/spec/dummy/tmp/storage/Hu/WR/HuWR4aKHgrvbvVSBbdKJorfB +0 -0
  147. data/spec/dummy/tmp/storage/Jg/T1/JgT1p5TdKyYFW8dcWBdL3dV1 +0 -0
  148. data/spec/dummy/tmp/storage/Kb/aP/KbaPW5ozx7Nk617idmScNBr8 +0 -0
  149. data/spec/dummy/tmp/storage/Kv/P9/KvP9Y6REnxN581983YHzTrmC +0 -0
  150. data/spec/dummy/tmp/storage/L4/4W/L44Wh1j35AXpKCWYZ1sAYbAy +0 -0
  151. data/spec/dummy/tmp/storage/Nb/5P/Nb5PhsjATLQ5KJoz3XjWKvPT +0 -0
  152. data/spec/dummy/tmp/storage/Nq/fo/NqfoyBh4a6Axgvx9AMpKZfkj +0 -0
  153. data/spec/dummy/tmp/storage/Nv/RV/NvRVU5TwzuPUULm62fdts4B7 +0 -0
  154. data/spec/dummy/tmp/storage/Nz/RQ/NzRQ6jTV3aX5nC9UEvpoa9ts +0 -0
  155. data/spec/dummy/tmp/storage/P7/Ve/P7Veddvux3Ep5ARb4BoVMFFV +0 -0
  156. data/spec/dummy/tmp/storage/Q1/Bd/Q1BdYGFbvkssCUiGiFtuetBW +0 -0
  157. data/spec/dummy/tmp/storage/Q2/6K/Q26K3FSuoFoHJxLVrjuZucvW +0 -0
  158. data/spec/dummy/tmp/storage/QP/Nd/QPNdrmdF36BeMy8XxvMfh2FH +0 -0
  159. data/spec/dummy/tmp/storage/QW/Jk/QWJk3yUEMwFi463yEudKQXdZ +0 -0
  160. data/spec/dummy/tmp/storage/Qg/fC/QgfCEgcxh6wrKN861f5c4GVM +0 -0
  161. data/spec/dummy/tmp/storage/RP/Er/RPErqWSiDDvr23qBJaimXYqZ +0 -0
  162. data/spec/dummy/tmp/storage/S9/mN/S9mN1BziPheiD5Lgj7a7Jpzc +0 -0
  163. data/spec/dummy/tmp/storage/SP/2e/SP2eX48JMcfGS5pa17vaQVTL +0 -0
  164. data/spec/dummy/tmp/storage/Sd/cU/SdcUaUQ4QUVD5HtDmHkNVknQ +0 -0
  165. data/spec/dummy/tmp/storage/Sm/dg/SmdgcuqQ25U6jKJ2ipRUrytv +0 -0
  166. data/spec/dummy/tmp/storage/T4/DV/T4DVX1Vb6nU3nPvqvqf5JKpT +0 -0
  167. data/spec/dummy/tmp/storage/TF/Eb/TFEbdvcnrPRMH3HBaeD2cN9M +0 -0
  168. data/spec/dummy/tmp/storage/TL/EU/TLEUxrKLUvXkQYLMyim2EVH6 +0 -0
  169. data/spec/dummy/tmp/storage/Uk/xR/UkxRFB89MBAtdFRWdwLv2Q38 +0 -0
  170. data/spec/dummy/tmp/storage/V3/4f/V34fuGsDRXWuRU3T7mFP8Nh9 +0 -0
  171. data/spec/dummy/tmp/storage/V4/6z/V46zZiDDJQHPvGhe6FLBKBou +0 -0
  172. data/spec/dummy/tmp/storage/V8/GR/V8GRXGk3m4oDfQfSCNzLAgXh +0 -0
  173. data/spec/dummy/tmp/storage/VD/ue/VDueDabFWETVvXXrZDqq5ZiL +0 -0
  174. data/spec/dummy/tmp/storage/VJ/zh/VJzhgsiiRt7KkTG3UxrrHcB2 +0 -0
  175. data/spec/dummy/tmp/storage/VR/Kb/VRKbXXKcJLiBU4P9w4sVcQxm +0 -0
  176. data/spec/dummy/tmp/storage/Vx/vF/VxvFvPChdUZgBC3JfdA5nHk3 +0 -0
  177. data/spec/dummy/tmp/storage/WN/Sx/WNSxYiK2ew27nhYjgVBh53M8 +0 -0
  178. data/spec/dummy/tmp/storage/WV/W6/WVW6NjA6XqXxgdJTRtRCjgdK +0 -0
  179. data/spec/dummy/tmp/storage/X2/UC/X2UCDsNop6iAHzYiptaSfj2p +0 -0
  180. data/spec/dummy/tmp/storage/Xb/JH/XbJH1dcmbYbax4hg6yui6r7z +0 -0
  181. data/spec/dummy/tmp/storage/Xe/ik/XeikT9BqMxmUJUuCrNXYmKXt +0 -0
  182. data/spec/dummy/tmp/storage/Xv/FS/XvFSak3xdGprBHGsbb3M2cwe +0 -0
  183. data/spec/dummy/tmp/storage/YF/VG/YFVGXyUZWU54x54wg48uWAJ8 +0 -0
  184. data/spec/dummy/tmp/storage/YZ/ZK/YZZK7iQZBEyuwBXF2ecSabfg +0 -0
  185. data/spec/dummy/tmp/storage/Z6/Rc/Z6RcJouwcgnLmRjUMQJcrjPv +0 -0
  186. data/spec/dummy/tmp/storage/ZQ/cQ/ZQcQLdYFfbgFg45kUwTnsGoK +0 -0
  187. data/spec/dummy/tmp/storage/Zf/U4/ZfU4QKXp7vTdeR7yM2Xsg4vV +0 -0
  188. data/spec/dummy/tmp/storage/Zp/Hs/ZpHsU85zGbJoUA5zGkxyJ6aS +0 -0
  189. data/spec/dummy/tmp/storage/aH/Wd/aHWdKzbeKqYkDjYMGRw4DYZD +0 -0
  190. data/spec/dummy/tmp/storage/aQ/Q7/aQQ7RRLn4HndHMKuWNFVqZNr +0 -0
  191. data/spec/dummy/tmp/storage/ac/qr/acqrA2w4fPoop4HyhnFbbe8S +0 -0
  192. data/spec/dummy/tmp/storage/bU/ch/bUchoBDeJqVd5WtpGE2Eid91 +0 -0
  193. data/spec/dummy/tmp/storage/c9/dG/c9dGzEV2HG4my6giHGZGYg8g +0 -0
  194. data/spec/dummy/tmp/storage/cV/Jz/cVJz12osk5KxZ5CiMRJ9m8hk +0 -0
  195. data/spec/dummy/tmp/storage/cW/xz/cWxznYX1dYQnugur7tbGqfaL +0 -0
  196. data/spec/dummy/tmp/storage/ch/Qq/chQqBWN6f5zHfX49bqoYUU6W +0 -0
  197. data/spec/dummy/tmp/storage/ck/em/ckemF81RCdYCnLQpTtmWkKtY +0 -0
  198. data/spec/dummy/tmp/storage/dQ/mA/dQmAK9oX5PArCqKQUJCuqhHY +0 -0
  199. data/spec/dummy/tmp/storage/dU/zv/dUzvtYqqDKucZxKEziCrkTgG +0 -0
  200. data/spec/dummy/tmp/storage/dh/pB/dhpBoFExucUvNe8fUPoXtUTr +0 -0
  201. data/spec/dummy/tmp/storage/en/X2/enX2XywgRGiCqAHEkJAE396v +0 -0
  202. data/spec/dummy/tmp/storage/et/2N/et2N5EqfhHtKEZqT87mQtePH +0 -0
  203. data/spec/dummy/tmp/storage/ew/LU/ewLUV3HmFHXp5BUjceeGL4s5 +0 -0
  204. data/spec/dummy/tmp/storage/ey/oC/eyoCL8vB7u5KjBE7vWRRFr2X +0 -0
  205. data/spec/dummy/tmp/storage/fJ/LY/fJLYW1KdFxET4e88exNqCAxY +0 -0
  206. data/spec/dummy/tmp/storage/fS/PE/fSPEn86i5iJRoFrdMBebNJCP +0 -0
  207. data/spec/dummy/tmp/storage/fk/K1/fkK1JWQSquvj8ZBXsGD9PWxm +0 -0
  208. data/spec/dummy/tmp/storage/g1/1w/g11wexiyX8u58Mr8ybydWExZ +0 -0
  209. data/spec/dummy/tmp/storage/gp/Bo/gpBoVdnRHKAKqPdDgYsmM8pP +0 -0
  210. data/spec/dummy/tmp/storage/gr/oK/groKuW5zG1FLXZoxEebtoqS8 +0 -0
  211. data/spec/dummy/tmp/storage/hJ/y7/hJy7dMSZsRm9S1GvKv4cucUb +0 -0
  212. data/spec/dummy/tmp/storage/hS/VK/hSVK4BzDTwhCRE4drL7zVxZW +0 -0
  213. data/spec/dummy/tmp/storage/ha/tw/hatwQTQvWjEfRxZYaSGuYGag +0 -0
  214. data/spec/dummy/tmp/storage/iD/tM/iDtMAVLcg9ZKPqezEPw7R9U1 +0 -0
  215. data/spec/dummy/tmp/storage/iQ/kd/iQkdF4Nojc1hdc44nt8XtYCm +0 -0
  216. data/spec/dummy/tmp/storage/iX/xe/iXxesnS6MUEBUjAPDnhtWbAF +0 -0
  217. data/spec/dummy/tmp/storage/ix/cT/ixcT6VaZyxkkRsZJFMkBRAmD +0 -0
  218. data/spec/dummy/tmp/storage/jT/3v/jT3vW7AvqQWiNNbYWFUPa4nX +0 -0
  219. data/spec/dummy/tmp/storage/jd/jv/jdjv65KF93NG11MzUmkb8Wtb +0 -0
  220. data/spec/dummy/tmp/storage/jk/wm/jkwmD4AhC8QD8MfG4jCon7ab +0 -0
  221. data/spec/dummy/tmp/storage/k1/5L/k15LYceG6HzvwVZEnCn81NBe +0 -0
  222. data/spec/dummy/tmp/storage/k9/8X/k98XebZ4ibXgn98z4h7PhLmv +0 -0
  223. data/spec/dummy/tmp/storage/ku/iq/kuiqW8qtCaWzHNJHXkLtjwWv +0 -0
  224. data/spec/dummy/tmp/storage/mF/qV/mFqVRgBeo6AfovyhXXWi3vFQ +0 -0
  225. data/spec/dummy/tmp/storage/ma/NR/maNRntCu7HjFYgJYhyNtrdmf +0 -0
  226. data/spec/dummy/tmp/storage/nf/GK/nfGKpHEoB6M1189h99yy8aa7 +0 -0
  227. data/spec/dummy/tmp/storage/nk/8C/nk8CDdAP24BuNwTkGEDpdQhd +0 -0
  228. data/spec/dummy/tmp/storage/no/wA/nowATDmNWTXvpaL3W2bAKsc4 +0 -0
  229. data/spec/dummy/tmp/storage/p1/at/p1atybsHpJRqYoESYPsohx6F +0 -0
  230. data/spec/dummy/tmp/storage/pX/ey/pXeysMBPTttZXDNECfwQobN5 +0 -0
  231. data/spec/dummy/tmp/storage/px/8C/px8C1w4Qc15qkYmVS8denUug +0 -0
  232. data/spec/dummy/tmp/storage/qE/aW/qEaWKpBnn4SdEFcXyDyJd8px +0 -0
  233. data/spec/dummy/tmp/storage/qL/ZA/qLZADU8CjYXifHrUKzBJ5mB8 +0 -0
  234. data/spec/dummy/tmp/storage/qj/Pu/qjPuWHbmcqisuRYdkwtadCiV +0 -0
  235. data/spec/dummy/tmp/storage/qu/BW/quBW6j7bBsC1SvVGsFSnQrNC +0 -0
  236. data/spec/dummy/tmp/storage/rD/3B/rD3BXaR8niv1yPAm7hHqgz1a +0 -0
  237. data/spec/dummy/tmp/storage/ro/ux/rouxjTs6DKdhMJYMcjXN7nc2 +0 -0
  238. data/spec/dummy/tmp/storage/s5/Q9/s5Q9iTFFUMM4cK79TMdvkyHE +0 -0
  239. data/spec/dummy/tmp/storage/si/ZM/siZMw2Eb3DfSj2qRiHit2Nmh +0 -0
  240. data/spec/dummy/tmp/storage/t2/eZ/t2eZxsCNn3PByNgFDNpT8ExV +0 -0
  241. data/spec/dummy/tmp/storage/t8/85/t885sJN8w5K5wazKBqqCXKCc +0 -0
  242. data/spec/dummy/tmp/storage/tP/iY/tPiYiEkgzDrjieQz1B53VWzP +0 -0
  243. data/spec/dummy/tmp/storage/tn/ad/tnadsYsGyXMZgmf9L5GGyjBQ +0 -0
  244. data/spec/dummy/tmp/storage/u5/Nb/u5NbzTLRchmRuK2Gq1zdhHLm +0 -0
  245. data/spec/dummy/tmp/storage/ux/3C/ux3CQ7LVVU9Cue35QVwmJYw8 +0 -0
  246. data/spec/dummy/tmp/storage/vR/cz/vRczM7mZ76Q9Qsifhhjkgccr +0 -0
  247. data/spec/dummy/tmp/storage/vi/N7/viN75StNRdYRWqk2RSwDxiGh +0 -0
  248. data/spec/dummy/tmp/storage/vy/Db/vyDbgbKDoum9ve24VV91RZ7Q +0 -0
  249. data/spec/dummy/tmp/storage/vz/Tn/vzTnSQrAxd1Wb8SWSHPFg1eB +0 -0
  250. data/spec/dummy/tmp/storage/wL/9M/wL9MvhdDU8PNKGGnrXg7ioTo +0 -0
  251. data/spec/dummy/tmp/storage/wj/QD/wjQDZSnwWkaVMZQwyFsdQ2H9 +0 -0
  252. data/spec/dummy/tmp/storage/wo/bj/wobjkpXKAf42kKXEfSq3ue7r +0 -0
  253. data/spec/dummy/tmp/storage/wx/7r/wx7rvWzAkro62eF1VpNYGB1u +0 -0
  254. data/spec/dummy/tmp/storage/xP/gJ/xPgJAyWn5CEzcHacU5zxPit1 +0 -0
  255. data/spec/dummy/tmp/storage/yD/T2/yDT2LmAy3G4335LZC7zRyGbh +0 -0
  256. data/spec/dummy/tmp/storage/yN/re/yNrenFsVHbajazmwszwyNetk +0 -0
  257. data/spec/dummy/tmp/storage/yq/Zp/yqZpkZGrQvPTqGnxiAY9YYtx +0 -0
  258. data/spec/dummy/tmp/storage/ys/MC/ysMCDjgyWiG2yheYt9W6wj9z +0 -0
  259. data/spec/dummy/tmp/storage/zz/zM/zzzMk3Z4aicTTkr2EqpMYVHr +0 -0
  260. data/spec/factories/cmor/testimonials/categories.rb +7 -0
  261. data/spec/factories/cmor/testimonials/testimonials.rb +17 -0
  262. data/spec/files/cmor/testimonials/testimonials/enerbunny.png +0 -0
  263. data/spec/files/cmor/testimonials/testimonials/homer.png +0 -0
  264. data/spec/models/cmor/testimonials/category_spec.rb +9 -0
  265. data/spec/models/cmor/testimonials/testimonial_spec.rb +33 -0
  266. data/spec/models/generic_spec.rb +50 -0
  267. data/spec/models/i18n_spec.rb +41 -0
  268. data/spec/rails_helper.rb +63 -0
  269. data/spec/spec_helper.rb +96 -0
  270. data/spec/support/capybara.rb +1 -0
  271. data/spec/support/factory_bot.rb +9 -0
  272. data/spec/support/pry.rb +1 -0
  273. data/spec/support/rao-shoulda_matchers.rb +5 -0
  274. data/spec/support/rao-view_helper.rb +5 -0
  275. data/spec/support/shoulda_matchers.rb +9 -0
  276. data/spec/view_helpers/cmor/testimonials/application_view_helper_spec.rb +15 -0
  277. metadata +697 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 47e03fe0e148a6d92430c17764f771cfd3d6d99b77818570d52b7738b9782b1d
4
+ data.tar.gz: 46ccb4604316104565146d9dc8f48b7077e5c1242256c7124d0fa3bb4b7846c8
5
+ SHA512:
6
+ metadata.gz: ba5df50c762711c4a0843b6932df7d33cddf463dd2eea84ed4239fd8e00b3af90a16c8ead75fef426c0ee3d07348804773ea62ed1fe9ce8d9781e98cbf6dc76f
7
+ data.tar.gz: a05f728bd7702604cfc8c1d7db97b37fa68b65498e052b4a3ceb001f4f59e185816412f5cdc39ace266b5cfbe4e963f0585ed8a9d5337a459ca58df60acd5037
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2018 @CMOR
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,43 @@
1
+ = CMOR Testimonials
2
+
3
+ = Installation
4
+
5
+ Add it to your bundle:
6
+
7
+ # Gemfile
8
+ gem 'cmor_testimonials'
9
+
10
+ Update your bundle:
11
+
12
+ > bundle install
13
+
14
+ Install the module:
15
+
16
+ > rails g cmor:testimonials:install
17
+
18
+ Create migrations:
19
+
20
+ > rake cmor_testimonials_engine:install:migrations
21
+
22
+ Migrate:
23
+
24
+ > rake db:migrate
25
+
26
+ = Usage
27
+
28
+ Add the helper to your controller:
29
+
30
+ # app/controllers/application_controller.rb
31
+ class ApplicationController < ActionController::Base
32
+ helper Cmor::TestimonialsHelper
33
+ #...
34
+ end
35
+
36
+ Use the helper to display a testimonial:
37
+
38
+ <%= render_testimonial 'My Testimonial' %>
39
+
40
+ = License
41
+
42
+ This project rocks and uses MIT-LICENSE.
43
+
data/Rakefile ADDED
@@ -0,0 +1,26 @@
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 = 'CMOR Testimonials'
18
+ rdoc.options << '--line-numbers'
19
+ rdoc.rdoc_files.include('README.rdoc')
20
+ rdoc.rdoc_files.include('lib/**/*.rb')
21
+ end
22
+
23
+ Bundler::GemHelper.install_tasks
24
+
25
+ require 'rails/dummy/tasks'
26
+
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require_tree ./application
3
+ */
@@ -0,0 +1,2 @@
1
+ //= require cmor/testimonials/application
2
+
@@ -0,0 +1,15 @@
1
+ .cmor-testimonials-category .carousel-control-prev,
2
+ .cmor-testimonials-category .carousel-control-next {
3
+ color: gray;
4
+ }
5
+
6
+
7
+ .carousel-control-prev-icon:before {
8
+ content:"\2039";
9
+ font-size: 250%;
10
+ }
11
+
12
+ .carousel-control-next-icon:before {
13
+ content:"\203A";
14
+ font-size: 250%;
15
+ }
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require_tree ./application
3
+ */
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require cmor/testimonials/application
3
+ */
@@ -0,0 +1,7 @@
1
+ module Cmor
2
+ module Testimonials
3
+ class ApplicationRecord < ActiveRecord::Base
4
+ self.abstract_class = true
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,15 @@
1
+ module Cmor
2
+ module Testimonials
3
+ class Category < ActiveRecord::Base
4
+ has_many :testimonials, -> { order(position: :asc) }, dependent: :destroy
5
+
6
+ validates :locale, presence: true, inclusion: { in: I18n.available_locales.map(&:to_s) }
7
+ validates :identifier, presence: true, uniqueness: { scope: [ :locale ] }
8
+ validates :name, presence: true, uniqueness: { scope: [ :locale ] }
9
+
10
+ def human
11
+ name
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module Cmor
2
+ module Testimonials
3
+ class Testimonial < ApplicationRecord
4
+ include ActsAsPublished::ActiveRecord
5
+ include Markup::Rails::ActiveRecord
6
+
7
+ has_one_attached :image
8
+ belongs_to :category
9
+
10
+ acts_as_list scope: :category
11
+ acts_as_published
12
+ acts_as_markup :body, Cmor::Core::Configuration.default_markup_options
13
+
14
+ def human
15
+ "#{fullname} (#{role}) - #{company}"
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,32 @@
1
+ module Cmor
2
+ module Testimonials
3
+ class ApplicationViewHelper < Rao::ViewHelper::Base
4
+ def render_category(identifier, options = {})
5
+ default_variant_options = Cmor::Testimonials::Configuration.image_variant_options[:category]
6
+ options.reverse_merge!(
7
+ autostart: true,
8
+ interval: 5.0,
9
+ keyboard: true,
10
+ pause: :hover,
11
+ ride: false,
12
+ wrap: true,
13
+ controls: true,
14
+ indicators: false,
15
+ variant_options: default_variant_options,
16
+ font_awesome: false
17
+ )
18
+ category = Cmor::Testimonials::Category.where(identifier: identifier).first
19
+
20
+ if category.present?
21
+ render category: category, options: options
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def render(locals = {})
28
+ c.render partial: "/#{self.class.name.underscore}/#{caller_locations(1,1)[0].label}", locals: locals
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,28 @@
1
+ .cmor-testimonials-category.carousel.slide{class: dom_class(category), id: dom_id(category), data: { ride: 'carousel', interval: (options[:interval].to_f * 1000).to_i, keyboard: options[:keyboard].to_s, pause: options[:pause], wrap: options[:wrap].to_s } }
2
+ - if options[:indicators]
3
+ / Carousel indicators
4
+ %ol.carousel-indicators
5
+ - category.testimonials.count.times do |i|
6
+ %li{ class: (i == 0) ? "active" : "", "data-slide-to" => i, "data-target" => "##{dom_id(category)}"}
7
+ / Wrapper for carousel items
8
+ .carousel-inner
9
+ - category.testimonials.each_with_index do |testimonial, i|
10
+ .item.carousel-item.text-center{ class: ((i == 0) ? 'active' : '') }
11
+ .img-box
12
+ %img.img-thumbnail.rounded-circle{:alt => "", :src => main_app.url_for(testimonial.image.variant(options[:variant_options])) }/
13
+ %p.testimonial= markup_helper(self).to_html(testimonial, :body)
14
+ %p.overview
15
+ = "<b>#{testimonial.fullname}</b>, #{testimonial.role} - #{testimonial.company}".html_safe
16
+ - if options[:controls]
17
+ %a.carousel-control-prev{"data-slide" => "prev", :href => "##{dom_id(category)}", :role => "button"}
18
+ - if options[:font_awesome]
19
+ %i.fa.fa-angle-left
20
+ - else
21
+ %span.carousel-control-prev-icon{"aria-hidden" => "true"}
22
+ %span.sr-only= t('.previous')
23
+ %a.carousel-control-next{"data-slide" => "next", :href => "##{dom_id(category)}", :role => "button"}
24
+ - if options[:font_awesome]
25
+ %i.fa.fa-angle-right
26
+ - else
27
+ %span.carousel-control-next-icon{"aria-hidden" => "true"}
28
+ %span.sr-only= t('.next')
@@ -0,0 +1,38 @@
1
+ <div class="container">
2
+ <div class="row">
3
+ <div class="col-md-8 col-center m-auto">
4
+ <h2><%= Cmor::Testimonials::Category.human_attribute_name(component.category_identifier) %></h2>
5
+ <div id="<%= component.category_identifier %>" class="carousel slide" data-ride="carousel">
6
+ <!-- Carousel indicators -->
7
+ <ol class="carousel-indicators">
8
+ <% component.testimonials.each_with_index do |t, i| %>
9
+ <li data-target="<%= "##{component.category_identifier}" %>" data-slide-to="<%= t.id %>" class="<%= (i == 0) ? "active" : "" %>"></li>
10
+ <% end %>
11
+ </ol>
12
+ <!-- Wrapper for carousel items -->
13
+ <div class="carousel-inner">
14
+ <% component.testimonials.each_with_index do |t, i| %>
15
+ <div class="item carousel-item <%= (i == 0) ? "active" : "" %>">
16
+ <p class="testimonial"><%= t.body.html_safe %></p>
17
+ <div class="img-box"><img src="<%= main_app.url_for(t.image.variant(resize: "100x100"))%>" alt=""></div>
18
+ <p class="overview">
19
+ <b><%= t.fullname %></b>, <%= t.role %> @ <%= t.company %>
20
+ </p>
21
+ </div>
22
+ <% end %>
23
+ </div>
24
+ <!-- Carousel controls -->
25
+ <% if options[:controls] %>
26
+ <a class="carousel-control-prev" href="#<%= component.category_identifier %>" role="button" data-slide="prev">
27
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
28
+ <span class="sr-only"><%= t('.previous') %></span>
29
+ </a>
30
+ <a class="carousel-control-next" href="#<%= component.category_identifier %>" role="button" data-slide="next">
31
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
32
+ <span class="sr-only"><%= t('.next') %></span>
33
+ </a>
34
+ <% end %>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
@@ -0,0 +1 @@
1
+ Rails.application.config.assets.precompile += %w( cmor_testimonials.css cmor_testimonials.js )
@@ -0,0 +1,40 @@
1
+ de:
2
+ activerecord:
3
+ models:
4
+ cmor/testimonials/category:
5
+ one: Kategorie
6
+ other: Kategorien
7
+ cmor/testimonials/testimonial:
8
+ one: Testimonial
9
+ other: Testimonials
10
+ default_attributes: &default_attributes
11
+ id: ID
12
+ created_at: Erstellt am
13
+ updated_at: Aktualisiert am
14
+ attributes:
15
+ cmor/testimonials/category:
16
+ <<: *default_attributes
17
+ identifier: Bezeichner
18
+ name: Name
19
+ locale: Sprache
20
+ slug: Slug
21
+ cmor/testimonials/testimonial:
22
+ <<: *default_attributes
23
+ image: Bild
24
+ position: Position
25
+ published_at: Veröffentlicht am
26
+ category: Kategorie
27
+ category_id: Kategorie
28
+ fullname: Name
29
+ role: Rolle
30
+ company: Unternehmen
31
+ body: Text
32
+ resources:
33
+ cmor:
34
+ testimonials:
35
+ application_view_helper:
36
+ render:
37
+ next: Vor
38
+ previous: Zurück
39
+ routes:
40
+ cmor_testimonials_engine: testimonials
@@ -0,0 +1,40 @@
1
+ en:
2
+ activerecord:
3
+ models:
4
+ cmor/testimonials/category:
5
+ one: Category
6
+ other: Categories
7
+ cmor/testimonials/testimonial:
8
+ one: Testimonial
9
+ other: Testimonials
10
+ default_attributes: &default_attributes
11
+ id: ID
12
+ created_at: Created at
13
+ updated_at: Updated at
14
+ attributes:
15
+ cmor/testimonials/category:
16
+ <<: *default_attributes
17
+ identifier: Identifier
18
+ name: Name
19
+ locale: Locale
20
+ slug: Slug
21
+ cmor/testimonials/testimonial:
22
+ <<: *default_attributes
23
+ image: Image
24
+ position: Position
25
+ published_at: Published at
26
+ category: Category
27
+ category_id: Category ID
28
+ fullname: Name
29
+ role: Role
30
+ company: Company
31
+ body: Text
32
+ resources:
33
+ cmor:
34
+ testimonials:
35
+ application_view_helper:
36
+ render:
37
+ next: Next
38
+ previous: Previous
39
+ routes:
40
+ cmor_testimonials_engine: testimonials
data/config/routes.rb ADDED
@@ -0,0 +1,6 @@
1
+ Cmor::Testimonials::Engine.routes.draw do
2
+ localized do
3
+ scope :cmor_testimonials_engine do
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ class CreateCmorTestimonialsCategories < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :cmor_testimonials_categories do |t|
4
+ t.string :locale
5
+ t.string :name
6
+ t.string :identifier
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ class CreateCmorTestimonialsTestimonials < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :cmor_testimonials_testimonials do |t|
4
+ t.references :category, foreign_key: false
5
+ t.string :fullname
6
+ t.string :role
7
+ t.string :company
8
+ t.text :body
9
+ t.integer :position
10
+ t.timestamp :published_at
11
+
12
+ t.timestamps
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ require 'active_support/core_ext/module/delegation'
2
+ require 'active_support/core_ext/module/attribute_accessors'
3
+ require 'active_support/hash_with_indifferent_access'
4
+
5
+ module Cmor
6
+ module Testimonials
7
+ module Configuration
8
+ def configure
9
+ yield self
10
+ end
11
+
12
+ mattr_accessor(:image_variant_options) { {} }
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ module Cmor
2
+ module Testimonials
3
+ class Engine < ::Rails::Engine
4
+ isolate_namespace Cmor::Testimonials
5
+
6
+ config.generators do |g|
7
+ g.test_framework :rspec, fixture: false
8
+ g.fixture_replacement :factory_bot
9
+ g.factory_bot dir: 'spec/factories'
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,8 @@
1
+ require 'cmor/version'
2
+
3
+ module Cmor
4
+ module Testimonials
5
+ VERSION = ::Cmor::VERSION
6
+ end
7
+ end
8
+
@@ -0,0 +1,14 @@
1
+ require 'cmor/testimonials/engine'
2
+ require 'cmor/testimonials/configuration'
3
+
4
+ module Cmor
5
+ module Testimonials
6
+ extend Configuration
7
+
8
+ def self.table_name_prefix
9
+ 'cmor_testimonials_'
10
+ end
11
+ end
12
+ end
13
+
14
+ Cmor.configure { |c| c.register_configuration(:testimonials, Cmor::Testimonials) }
@@ -0,0 +1,10 @@
1
+ require 'acts_as_list'
2
+ require 'markup-rails'
3
+ require 'acts_as_published'
4
+ require 'cmor_core_frontend'
5
+ require 'haml-rails'
6
+ require 'mini_magick'
7
+ require 'rao-view_helper'
8
+ require 'friendly_id'
9
+
10
+ require 'cmor/testimonials'
@@ -0,0 +1,15 @@
1
+ module Cmor
2
+ module Testimonials
3
+ module Generators
4
+ class InstallGenerator < Rails::Generators::Base
5
+ desc "Generates the initializer"
6
+
7
+ source_root File.expand_path('../templates', __FILE__)
8
+
9
+ def generate_intializer
10
+ copy_file "initializer.rb", "config/initializers/cmor_testimonials.rb"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ Cmor::Testimonials.configure do |config|
2
+ # Set image variant options.
3
+ #
4
+ # default: config.image_variant_options = {
5
+ # category: { combine_options: { resize: "150x150^", gravity: 'center', crop: "150x150+0+0" } }
6
+ # }
7
+ config.image_variant_options = {
8
+ category: { combine_options: { resize: "150x150^", gravity: 'center', crop: "150x150+0+0" } }
9
+ }
10
+ end
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
@@ -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 any plugin's vendor/assets/javascripts directory 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
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require rails-ujs
14
+ //= require activestorage
15
+ //= require_tree .
@@ -0,0 +1,13 @@
1
+ // Action Cable provides the framework to deal with WebSockets in Rails.
2
+ // You can generate new channels where WebSocket features live using the `rails generate channel` command.
3
+ //
4
+ //= require action_cable
5
+ //= require_self
6
+ //= require_tree ./channels
7
+
8
+ (function() {
9
+ this.App || (this.App = {});
10
+
11
+ App.cable = ActionCable.createConsumer();
12
+
13
+ }).call(this);
@@ -0,0 +1,15 @@
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 any plugin's vendor/assets/stylesheets directory 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 bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Channel < ActionCable::Channel::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Connection < ActionCable::Connection::Base
3
+ end
4
+ end
@@ -0,0 +1,2 @@
1
+ class ApplicationController < ActionController::Base
2
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ class ApplicationJob < ActiveJob::Base
2
+ end
@@ -0,0 +1,4 @@
1
+ class ApplicationMailer < ActionMailer::Base
2
+ default from: 'from@example.com'
3
+ layout 'mailer'
4
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag 'application', media: 'all' %>
9
+ <%= javascript_include_tag 'application' %>
10
+ </head>
11
+
12
+ <body>
13
+ <%= yield %>
14
+ </body>
15
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <style>
6
+ /* Email styles need to be inline */
7
+ </style>
8
+ </head>
9
+
10
+ <body>
11
+ <%= yield %>
12
+ </body>
13
+ </html>
@@ -0,0 +1 @@
1
+ <%= yield %>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../config/application', __dir__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run