awesome_translations 0.0.24 → 0.0.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (592) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/assets/javascripts/awesome_translations/application.js.coffee +15 -0
  4. data/app/assets/stylesheets/awesome_translations/layout.css.scss +19 -0
  5. data/app/controllers/awesome_translations/caches_controller.rb +12 -0
  6. data/app/controllers/awesome_translations/groups_controller.rb +14 -4
  7. data/app/controllers/awesome_translations/handlers_controller.rb +22 -4
  8. data/app/controllers/awesome_translations/migrations_controller.rb +26 -0
  9. data/app/controllers/awesome_translations/translate_migrations_controller.rb +10 -0
  10. data/app/helpers/awesome_translations/application_helper.rb +9 -1
  11. data/app/models/awesome_translations/group.rb +9 -10
  12. data/app/models/awesome_translations/translated_value.rb +12 -15
  13. data/app/models/awesome_translations/translation.rb +17 -23
  14. data/app/views/awesome_translations/caches/index.html.haml +3 -0
  15. data/app/views/awesome_translations/groups/show.html.haml +3 -2
  16. data/app/views/awesome_translations/handlers/index.html.haml +3 -2
  17. data/app/views/awesome_translations/handlers/show.html.haml +8 -7
  18. data/app/views/awesome_translations/migrations/new.html.haml +21 -0
  19. data/app/views/layouts/awesome_translations/application.html.haml +11 -0
  20. data/config/initializers/cache_models.rb +1 -0
  21. data/config/routes.rb +10 -1
  22. data/db/baza_translations_migrations/20150902155200_create_translation_keys.rb +14 -0
  23. data/db/baza_translations_migrations/20150907070909_create_groups.rb +13 -0
  24. data/db/baza_translations_migrations/20150907090900_create_handlers.rb +11 -0
  25. data/db/baza_translations_migrations/20150908085500_create_translation_values.rb +14 -0
  26. data/db/baza_translations_migrations/20150908090800_create_handler_translations.rb +21 -0
  27. data/lib/awesome_translations/cache_database_generator/group.rb +16 -0
  28. data/lib/awesome_translations/cache_database_generator/handler.rb +9 -0
  29. data/lib/awesome_translations/cache_database_generator/handler_translation.rb +43 -0
  30. data/lib/awesome_translations/cache_database_generator/translation_key.rb +13 -0
  31. data/lib/awesome_translations/cache_database_generator/translation_value.rb +24 -0
  32. data/lib/awesome_translations/cache_database_generator.rb +266 -0
  33. data/lib/awesome_translations/engine.rb +4 -0
  34. data/lib/awesome_translations/erb_inspector.rb +2 -3
  35. data/lib/awesome_translations/handlers/erb_handler.rb +7 -3
  36. data/lib/awesome_translations/handlers/library_handler.rb +7 -3
  37. data/lib/awesome_translations/handlers/model_handler.rb +14 -0
  38. data/lib/awesome_translations/handlers.rb +18 -17
  39. data/lib/awesome_translations/model_inspector.rb +9 -1
  40. data/lib/awesome_translations/translation_migrator.rb +94 -0
  41. data/lib/awesome_translations/version.rb +1 -1
  42. data/lib/awesome_translations.rb +3 -10
  43. data/spec/controllers/groups_controller_spec.rb +9 -7
  44. data/spec/controllers/handlers_controller_spec.rb +6 -4
  45. data/spec/controllers/users_controller_spec.rb +2 -2
  46. data/spec/dummy/app/models/role.rb +2 -0
  47. data/spec/dummy/config/environments/production.rb +1 -1
  48. data/spec/dummy/config/environments/test.rb +1 -1
  49. data/spec/dummy/db/awesome_translations.sqlite3 +0 -0
  50. data/spec/dummy/db/development.sqlite3 +0 -0
  51. data/spec/dummy/db/schema.rb +2 -2
  52. data/spec/dummy/db/test.sqlite3 +0 -0
  53. data/spec/dummy/log/development.log +43850 -338
  54. data/spec/dummy/log/test.log +19608 -2632
  55. data/spec/dummy/tmp/cache/assets/development/sass/79bc6a1530be4e47bb2bf0dda4943bc0e439789f/application.css.scssc +0 -0
  56. data/spec/dummy/tmp/cache/assets/development/sass/79bc6a1530be4e47bb2bf0dda4943bc0e439789f/groups.css.scssc +0 -0
  57. data/spec/dummy/tmp/cache/assets/{test/sass/cd5c2e50cf21c8dd5320bc76db0c28d83e16429a → development/sass/79bc6a1530be4e47bb2bf0dda4943bc0e439789f}/layout.css.scssc +0 -0
  58. data/spec/dummy/tmp/cache/assets/development/sprockets/0cc5658eb161251c8bd64e1cf25e2191 +0 -0
  59. data/spec/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  60. data/spec/dummy/tmp/cache/assets/development/sprockets/1dfc909a73e53e47b341f67cfd8a3fc3 +0 -0
  61. data/spec/dummy/tmp/cache/assets/development/sprockets/2128d293dc8ef13115c1f5d64b5acfc9 +0 -0
  62. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  63. data/spec/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  64. data/spec/dummy/tmp/cache/assets/development/sprockets/3bd5629974bb1919d009bcb1da7a7e49 +0 -0
  65. data/spec/dummy/tmp/cache/assets/development/sprockets/50b9bcf05a8718d9cb5b99276f154ea9 +0 -0
  66. data/spec/dummy/tmp/cache/assets/development/sprockets/5316fc0620afefc2ba81b690c8e2c34d +0 -0
  67. data/spec/dummy/tmp/cache/assets/development/sprockets/538966109f3bbd58bfb717ad57a37096 +0 -0
  68. data/spec/dummy/tmp/cache/assets/development/sprockets/58b9ed99ad62ba462ca6a9272b96bef3 +0 -0
  69. data/spec/dummy/tmp/cache/assets/development/sprockets/697d977cf9fc7e54534f5e29b0832836 +0 -0
  70. data/spec/dummy/tmp/cache/assets/development/sprockets/6aab60b365535cc305f37a738e75868b +0 -0
  71. data/spec/dummy/tmp/cache/assets/development/sprockets/6db8498274efddac6691248cc9afe855 +0 -0
  72. data/spec/dummy/tmp/cache/assets/development/sprockets/81ab882fef1228d654a7c697f2324309 +0 -0
  73. data/spec/dummy/tmp/cache/assets/development/sprockets/908bf508cc68079cab720d6b9c36cb95 +0 -0
  74. data/spec/dummy/tmp/cache/assets/development/sprockets/91090eda0f104056144ac17a4fcae91c +0 -0
  75. data/spec/dummy/tmp/cache/assets/development/sprockets/a3c8104e5830cd7047c6a3a1c1e2ba32 +0 -0
  76. data/spec/dummy/tmp/cache/assets/development/sprockets/b512f2b016bd3aef8c28fa661e01308c +0 -0
  77. data/spec/dummy/tmp/cache/assets/development/sprockets/bd49bb0a6f5dfd284a750fb9cab40d85 +0 -0
  78. data/spec/dummy/tmp/cache/assets/development/sprockets/c39fce5fa19b758734af29527d4185ca +0 -0
  79. data/spec/dummy/tmp/cache/assets/development/sprockets/c8ecba0dbc7774cd6db79cb7fbe1ef3e +0 -0
  80. data/spec/dummy/tmp/cache/assets/development/sprockets/cb595904fcf7acdedf2b95571442fc59 +0 -0
  81. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  82. data/spec/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  83. data/spec/dummy/tmp/cache/assets/development/sprockets/eb9ed717a7ef467bf260b11dfc8451eb +0 -0
  84. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  85. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{y6orTmm6rk6jn-CJIAXeQ8rOaHkBHFtbPogJm-3dNqE.cache → -xIdrBXI3YmhV41txPWqpBSY9pK3nOlnMf_tEoH7N-M.cache} +0 -0
  86. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/02teWmG5FUrSxYp4EBhuAaUnXqnsISgcO-LycLGpFbM.cache +1 -0
  87. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/04FzsaInr2Y6sYN2mm0rgOiwo6tir7gbY728nGUWLFo.cache +0 -0
  88. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1MfGMlhkcQJLAqhOxhzXPzb6wmOprrh7a-l9yWtOScU.cache +0 -0
  89. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1qsmk1lf7TX1GNRePYEZoKSDWfCwA7pyv7myARLkaQk.cache +1 -0
  90. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/27rVAWHKm1euKlP5X3k8hjTP2_SGINmXD4AvAP0iUHI.cache +0 -0
  91. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2S3FXevY1QIhpSWf8Q_wLVVed6OE4MwIoCWF1nNjvdw.cache +1 -0
  92. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2Y5j519dvD5rv2J_EZcPtgwb0o991nq0w7MHJY9dXiA.cache +0 -0
  93. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2p155H920Y76tD9Gj4HuvSeyKPX48gW2EeT0uJ-qDC4.cache +0 -0
  94. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{KI5ikH1EhRt8UcY_TnNsPFctrbR_XR870QmQiiS_LWY.cache → 43gZGjerqoa1zga5lxEIyNzzsg8lUdtia5hEgwc6jcM.cache} +1 -1
  95. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4wrAyfUn-EK6EXn7W8gD4gVVVWlabjkGULZy1VWAz48.cache +1 -0
  96. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{2E1pK4UD0p2JhztN3ZkvvMpu6_XhIhetM_kYdv3qIkI.cache → 50fOcYI8btz2Ua8cJrAGfh7uxPgsxbmCU9_ElJsZR10.cache} +0 -0
  97. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/538vExYOkMNZRnO7OlQ0txTlhoZmpPVIYbcXJ4ZdM_c.cache +2 -0
  98. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5HoGxXKxoOX3AIQe7mpvJ8HkWoGDGVITn12A-AS39bI.cache +1 -0
  99. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5zUDnyGW8pnqn9eoHvW4fOBfVbTt9L83VTsjTN_emmo.cache +1 -0
  100. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6AKSuLQ7-rmru8z6X93bpAnu7f-pBhVaPqrLnlZEEr4.cache +0 -0
  101. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6COttfT2lr_OcQNS6FWwoe5Dckyn9GyLcG838tntSrI.cache +0 -0
  102. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6ISWS0E-NUDxPhl5eE0vGMmOPleI0-CevJF8RF2OPYU.cache +0 -0
  103. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7EHTFFToRZu5VrDhHFvA9gEfhiAOmIFb0DQuWcbN7jk.cache +0 -0
  104. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7QKZ7V7qzDK3EtnZ695pi2UHVib9nj_W6crYsRXdL3k.cache +0 -0
  105. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{kyxMBV6uZkWe3IRCYC22nz50pqdEvoUf29oOIKfqnLY.cache → 7gTxlHmDCoe0pK3toG5j6HVAgPWLlbnmsma34AAdLMU.cache} +0 -0
  106. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7mMQxkOhjl5031v2H0ph_IlED4MLWMNwd2I6_KxpZQ4.cache +1 -0
  107. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/82mDK5EuiC_GzB4yyEoPfz9v9_L8evvA_udvVHi7Yl0.cache +2 -0
  108. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8EmhvumFd57Y2fDDpbaI6iqvzp7CFbJ2FSz2tmflk4Y.cache +0 -0
  109. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8g8-QNcNu5t3peDVtV3YsKlN1FsBOc2jNk2jgleD4C8.cache +0 -0
  110. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8zUJR8yWUhGZJYABZTaSKnZxRKvu9k-IHW09ioTZ7a0.cache +1 -0
  111. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9-uXC7aGfKHVFy15SG4b1OndX8BYynotk-w9ZbwU9Jg.cache +1 -0
  112. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{6Tt3BohHWhW0VmHcKYyX9vLJY8ZGHF9XKASbNndcriw.cache → 9FtH8_zmw6vl-JBtl2mpWPTu1SZtJkwq7va6MsSuCK0.cache} +0 -0
  113. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9iQKiA8r9gbiEbHy1D1kb0hv-tqaFT6Jyw1b4P9flos.cache +0 -0
  114. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/A6S10ECyYptuKTWDZZN7cIr-I4C-q4ORpR9D29OjhVY.cache +0 -0
  115. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Aa731Now-rZO4Zqg2IJ-lRwvJ41mB1mdj4anCSr3e3U.cache +0 -0
  116. data/spec/dummy/tmp/cache/assets/{test/sprockets/v3.0/NUXfrEMOpZC-cEYk4A5fOzcdS9dgYDG4NXp6-Ixcyj0.cache → development/sprockets/v3.0/AdM4bSpxF-V3SVialcxcS5JaSV3t0miIFEegjuwBWlA.cache} +0 -0
  117. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{m0Ed6UHlyVF0HkWQFgMHYw21q7KL7ChRRX7kJOLOd4A.cache → Ap5o3Ju8LsP2SlQJ8q_CubJ6eGCjAvxtNiF4FaDTyn8.cache} +0 -0
  118. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AwkOC2gVDWMkSj54qADI_lu4Sfz9TS2FLAl0uAnoDkk.cache +0 -0
  119. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AyNPDW3Dgg140bGx7uc2Fyehos3xkt6fL-jfJkv6-qU.cache +0 -0
  120. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{3IscdSBVlh2QpX_V8gWbAdJn0CwOi3CtjBf841bLw90.cache → BKzNyYOdP2xGdM8ta2UTFAVjZqG0hO3xxwRLRo0ZL7Y.cache} +0 -0
  121. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/BqSxK66luvGfGwhrmjSzAjcUtnbFa4PV1TSOnK9W24g.cache +1 -0
  122. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/BrDzTsxp9UnHHzHEX28hHrcLUZv2vC-CcToUdBmjgHo.cache +0 -0
  123. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{GEBEpe470v7Q9mkDELNzG8WQfzdSL--qJ5JGJ8sG40w.cache → CZF_u2ho2W4C9GkGNOOBIMpdt2dTrBk2i1D2K-lhJmU.cache} +0 -0
  124. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/D-3iJYFRFCszoXQb3LfIC0LafCPRp34fERWGoFHCueo.cache +1 -0
  125. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Djbxy1KquM-6j8h3CjkQTLl0Cw8V7MdugxWs1la8Yy4.cache +1 -0
  126. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/EWfamfuyaQxRui6HTk7sy39pc-i01LRgB2rlhjjgpo4.cache +1 -0
  127. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{oN2LUbJ3UjOO--J2XELuQnD2XIq80Oa2bc5WYwhDK3c.cache → FBwAuPK6BCbMbGWYxYwBMw3DoucwiFMce9YeNnwsQ0Q.cache} +0 -0
  128. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FISrzzqV6nw4c_2DA8Tg71sc8Q659AxidZIq2SVqkF0.cache +0 -0
  129. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/G-hwUFEyAthBnfsHKphfODGjS9Z2evLE2utZF1fTslY.cache +1 -0
  130. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GDzC1chWWGmhgF3fUvOghjlCyrUvZCCVC_YH1oldtsM.cache +0 -0
  131. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GRQfvgaDsDUKHASi4puh7dBhLH6Y4VM9yZpt1aKK8lQ.cache +0 -0
  132. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/H2lEwhgwd2SbRoXcQ64jUm4dpG1CJGZYMpYGWvXVam4.cache +0 -0
  133. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/HhP7z_-jM7ieRF_udBe4MjM25_qz8cYdxXBHe3CF3cY.cache +0 -0
  134. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/HxyrnSU7mRWWyTD4be5FrFnaPcu4FrWEIOFoLOb4ERg.cache +1 -0
  135. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/I3qWFD0JQGDf7yOGQVxlK6CNM7LNsZfiSsf3IW_vP9s.cache +1 -0
  136. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/IANLfG9pasfKSn3jfOtNoftMpg1xuANLJOullYmgiAs.cache +1 -0
  137. data/spec/dummy/tmp/cache/assets/{test/sprockets/v3.0/RGjTK3RDBaOmKnTmOPeJ9tCG6VORw6H3Nys1Mf6obLY.cache → development/sprockets/v3.0/ICWn4xffNF1HNqIMLVH45031SRVzi1bReaei0ppXuOM.cache} +0 -0
  138. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/J3lZJz-f0JUtj23SzhkvvYdfctkjcZAe5OfVVskUDZc.cache +1 -0
  139. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/JU1edprYccFyRmg3oGL-MRuknvcB2_pQYTG5o63Ag8Q.cache +0 -0
  140. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/L0AV6BEMf52JcHA55hmNVo2VHUKjVW8ZVuTIx27sRa4.cache +0 -0
  141. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LAprG4VocNonottPjxuFFCww48n4YCtJJiYDk1iDL9o.cache +0 -0
  142. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LtuKwRcTWtNm0-9U116mcMNSEOapgDhyZaj926hhVPs.cache +0 -0
  143. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LxCu0Ai0YmyMfbxevEdZhanmjma4PyZ7Eq7rv94gXOw.cache +0 -0
  144. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/M3XEcuxCqxMMW0e5WaCPvJMmOxPysDdRmb6b66xTyUw.cache +1 -0
  145. data/spec/dummy/tmp/cache/assets/{test/sprockets/v3.0/SfbWITNxcX0m3U1KfitpAvO-ZFRA0Uw_ceFcmoiXSMM.cache → development/sprockets/v3.0/MV7nSlI_EawYLxAmzz363K2T_6_DRSgG7pikMLxcKFE.cache} +0 -0
  146. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/MzYsi2S393224patsQC_5aJpDwq4F97WspZCPEXC2Q0.cache +0 -0
  147. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/OKtVHXgCUmgeLEfHFHApLha4IRibCyCkw3GqBocxoSo.cache +1 -0
  148. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/OyCoB5S7rvcqr3qwvwWDgrjoDFbBnkH7-GzYkPgxCKM.cache +0 -0
  149. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PamLXmiOyVwyw3ftfD8aDs2TwFsBjAz97G7SDPGSdmQ.cache +0 -0
  150. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QFzQ2KIDt_SMO7fZENHlO8gKKSagceUdQlcIL16Geq0.cache +1 -0
  151. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Q_4489lWyuro8VI0w2abEep_5SKtImHW34j5ExXsaA8.cache +0 -0
  152. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QbJd9uihGphd-h3qb5FEbRTdtdQGL_rCzK7fh3kwBFU.cache +0 -0
  153. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/RY1d2UOoZt5yxZu7puy80TP2dXC2bdi8U0068vwgx5M.cache +5 -0
  154. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Rhafj2GpRZtp-MvV8OPk2PMmp5ovrXMGbfkfJDC5rJk.cache +0 -0
  155. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SMah6xBmkbU_8e-9Ys77k0Vx4Ut7TXwr494LZGp7BY0.cache +0 -0
  156. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SXxXRkRgjskVUJ0LrBW9zy-LfqShvT6Ov24OMW7z-k8.cache +1 -0
  157. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SxXSiMbfHsLGQtJ6g0pP_Krucx-JXVkuR2sYf5xAKac.cache +1 -0
  158. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/T7-ktcoZK9XVmYk74-QFlUBoFrIqfWZDYZHF9QsO1KQ.cache +0 -0
  159. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/TMQdzYiLouXIt5E5YfAQG0CuYeJn9z0X-uG5N0kJfm0.cache +1 -0
  160. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{chB-Km9txyW42AEZsCObxy_RTOKPUaXoueiIl-pu3UU.cache → UMznzQq-uwbslH-8M6pmrNrruRcrHtfOwclv5rh-yVc.cache} +0 -0
  161. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{KK-iVi_zk3sBOAMMmX8qOKilgTXSJ6VR7ev4cCt-xiw.cache → UpB_Ha9hbMTiPjLPu74wM2oQeFksqnwGf1o8ywDJ4Ek.cache} +0 -0
  162. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WMh1h61W3qe8BKNos-TfAdH2h4em6r5jOlvLbn2bhLU.cache +1 -0
  163. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WeQCJImMwn-KYaVBOwO907qE7MXJN8q4lsLV_HnIDYw.cache +1 -0
  164. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WyLdqMqQlKkaN4Q-7OsT-01hYlq3cmhy19iZV5OI8rs.cache +1 -0
  165. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XDp5IrJTrbOIP56Gu9bzLt0yaG20Rdmiyg103ObDGCQ.cache +1 -0
  166. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XIsfeF8V1Ex9yuFFp8Zk5T-ATcbur5FxzjtFj3c4cy0.cache +1 -0
  167. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XPNlp1vwcqIhTGA7wkrIIjvXIdzKIeaza0bZ79KrMVw.cache +0 -0
  168. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XXVgQaXIqeZePB8w3OojaKBepeay8N8Dht-pY9-BzYc.cache +0 -0
  169. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XZjx7CmFiHJLBuEjL1x3tf-EbtquAzc8PHLb8OKXDbA.cache +0 -0
  170. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/YeUs3vJiPOiW0ze9DAFqEBU8WdoE6CPE1vE4Q_rumCk.cache +0 -0
  171. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{K9eViHXJLIL05Z-rEIFPZ1ey9Y7iEnaM1nQjV6xUjvw.cache → Z5VgXfY1cjJEduExiSr8_ktt5Kg1a3QZnkcVeXRPEMo.cache} +1 -1
  172. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Z7cJT4khXXaJlNejuQEilorWDtDQXPqC-tGQ3_7DdDU.cache +1 -0
  173. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_PpajQAGkY2kgApOogJiNXFWtAxvxZQeL0WfuYdCg4s.cache +1 -0
  174. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/a8zRTXmGI4EOik4D8x6S1OJGcr3oKvUM9jNHim0xGio.cache +1 -0
  175. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bQf8Bl1plRb1lQeH1FZAIa-0CyIecQpZeIeYwFK3Y_w.cache +2 -0
  176. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bq4ayPBoJ3P2twJ_AfUk_9dSy5v_LZuEeQY2Dg4bQmk.cache +1 -0
  177. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/c0YjrLcAVuu4Gst9_SDVxh5gQTirnG__fMCJEHfVrrg.cache +2 -0
  178. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/cJv40Fan-pg5Y-y_mofDZ4STjsyQKnzp5-vfU-0AIgU.cache +5 -0
  179. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/cOXMK7MxV-0kpqhref1ZLeAlAp5QySd4ek1ULfzqt5s.cache +0 -0
  180. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/cYjXxgR5Fmd8q2zA6AUG0rySvKiATskfxta1HqYt-GY.cache +1 -0
  181. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ctR7CyZiQ_H9JUQ82aXvfhPEiYw_9biQFi1t0ODt19k.cache +0 -0
  182. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/dMFeGxOIVkOd4tx60u_-2_Wdao-Kg0waBf9NHDBqUAI.cache +0 -0
  183. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/diUCwnrnAqP09ITWwzJqFv3pdkHx0DNdSAfRVgCl-Ho.cache +1 -0
  184. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/dsowXS2P8nrhf0XGypbLCJcmQyYvGiQY-mJaKVB3YSM.cache +0 -0
  185. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{ABmSicIQVooWccPPNziw-INMNKnC2fTrf0gZOo4D-Uo.cache → dv-t_-azYNWr2Fxh4xuYgZ5IJHOubVDYbcaFQKwW5-k.cache} +0 -0
  186. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/eB4rtnh6CHhj84gj2Pr06A1_zEE7R7fg1QZ0V-CBK04.cache +0 -0
  187. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/eNBcyVIS4PNh9lfbPupF-BdIC0evfo6BlGMHxcwCYtU.cache +0 -0
  188. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/fWODqdcD6W4SaXwXF4E8J89o5feSXX46fDGzx_c5lR8.cache +0 -0
  189. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/g-ZxNGhO3AYxBp5Lv2cnE9BI_9Grfo1f3oKuMRbHq18.cache +2 -0
  190. data/spec/dummy/tmp/cache/assets/{test/sprockets/v3.0/pWcm0nXiEzE71J4J0GO5dG-VdjitVJuSYLKikiGiMMM.cache → development/sprockets/v3.0/gg9k3Z7hedEOKE3TitDeSpuh19j2yNXWtGyM9JXXpIA.cache} +0 -0
  191. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/h3J_pYLfdz1Av15w30FaaeRnLymzyHZshvkwhq5J_cM.cache +2 -0
  192. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hA7aBF-f5PrPHDCU4_rX8RGuqSnI9NCgyCuUqdLhDrM.cache +1 -0
  193. data/spec/dummy/tmp/cache/assets/{test/sprockets/v3.0/2E1pK4UD0p2JhztN3ZkvvMpu6_XhIhetM_kYdv3qIkI.cache → development/sprockets/v3.0/hE57lfaKnD48I3tztHpqD31RAulKLClEv6NUUJT_UIg.cache} +0 -0
  194. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{noLGhxn9iGEF7BDE8GTG2LLTuFPgxT-yM1F0obB5nGM.cache → hZ88W4bAHtCwBVig-JsakmHNwpIfGIfixvKJ1b876Qw.cache} +0 -0
  195. data/spec/dummy/tmp/cache/assets/{test/sprockets/v3.0/noLGhxn9iGEF7BDE8GTG2LLTuFPgxT-yM1F0obB5nGM.cache → development/sprockets/v3.0/hfQFBPPxJtPDdthOO3rJKlri_i3Ho3EluFmoAqR_bYg.cache} +0 -0
  196. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hw8AiVkuV0Jb1MqnlKOmPV7OzCf0ggO2-FpwNNDX7rA.cache +0 -0
  197. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/i86GHirKPk5F2FgVVKH3xQvACxb6pMWe6jY8pRbqgAg.cache +1 -0
  198. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/iSaKW0hEtM90CRW6RrUEvNNUINgV2B5Q5Z5A2S-Y3fI.cache +1 -0
  199. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ioHTiBF-8-6CURnZ7YlpQrSyfHbnQEoAncw3Hkpc-fI.cache +0 -0
  200. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/j37QdssGLyplpw3MkRWBHmlSdZhCR8FTGWzXfxfqgeI.cache +0 -0
  201. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/jP9zZQjroxUOZZkI8Fu4jl7u2ksMMGKDpixzk119Zic.cache +1 -0
  202. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/js_-GbuvJQ4VGhFUV6QutWkBN2J467qAxjx2Yf91Eak.cache +0 -0
  203. data/spec/dummy/tmp/cache/assets/{test/sprockets/v3.0/vpjV1mhOB3Rlc8UbhAJZj0rL_yHEWAeP-YJlXs720Gg.cache → development/sprockets/v3.0/kCGpSXjVHLbwe04B7WxFFD21HfXCYpg3LC3PEky9sZI.cache} +0 -0
  204. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kYXemjpBFknH9kzOhifClhhOaHlRaYc04eAnYvnO3VA.cache +1 -0
  205. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/l-bgijhXWRzAN5h6f5vU0ebr_gLLx7q0OqAelZ88pBM.cache +1 -0
  206. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lBXKiv2k-ODSn6dfiYEUn3l_EDOu0ge79iuhn-DAqZk.cache +0 -0
  207. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lYCH7zVb6ECpax-WuyKXHfMlu2Lim5XVE8jQKgqPurY.cache +1 -0
  208. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/luNSeFt-kFkFmbWnLPI-Td9g1m6FkZOlE8AGFhB1Mbw.cache +0 -0
  209. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lw2zQNROUdFTa_sR2kQ9LivXX3Ba0c8FY2kBW3g4FFE.cache +1 -0
  210. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/m5OlpJob5tjaptN4pTxj8HQQa7HWhMHwXsUcTBLpE_4.cache +1 -0
  211. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/mFbF4IvBWjgt_vwp7v7rFY1bGKbqGkGnONfS6HnsKnM.cache +1 -0
  212. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nHHgYQwKCJDU6sJhdCFspLo132x7T0KEbaIRYasTn9o.cache +1 -0
  213. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/np7vCotlZb_49GCIrdudEv90Iq3xv3TGSeFPtYhykxA.cache +2 -0
  214. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/oeoruRfay2nWaCJz9JfDCRe8MtGJ_DUsK4k9OQ7U07M.cache +0 -0
  215. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{k8M9V_ClpoQ0s1OMUJHaJfk4qPcAYqeJQ5GcRTqQSA8.cache → ov3EDe0iKlpPkgh1KjahCK1OVL8uWYQ1cVNUaiGmlG0.cache} +0 -0
  216. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/phIQW48Q0n1CsJdv3q1i99z4u2fbmN5rNtYkV4wKvTQ.cache +0 -0
  217. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/pj7Zt9BnWoEsYKpKqDUVTbdupv2Oqe4oRmyzyzwuJas.cache +1 -0
  218. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/qeJ2RaBHZkRM-mPrW6qCLdSi-iiJFmRiTjfDbVP66uw.cache +0 -0
  219. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/s7x5_coI4aGfED9cLsTL7o8vGLSX2oA61zI9K50O2a4.cache +0 -0
  220. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/sAoD9cau6N18VgHQZk5Lodk7vhwP5rO6vgKOuh4Fa1E.cache +2 -0
  221. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/tAG3ILvje5Ldk4QK_XED38PXirtc745_9jwIzmlTdkY.cache +1 -0
  222. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/tIQSpYE9c-PiToBFBJOsSmd0V3AjOl72qo6jJRoc7_0.cache +0 -0
  223. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/to0hv94NV7oHIzMlNM7ecTlB2Eb5wbu7vTaqEiOriK4.cache +0 -0
  224. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{Vp5XbjUwVj8XafOL_dOz2pN9bIF-biEbxFPY3KTemjY.cache → u0jNXsg3M7MVjfjMUd35w_z7eJTwugxonLvMEwJRNXE.cache} +0 -0
  225. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/upcnXbukMqcMbxXpDLFBr2SnYGoCqc6d5mMfrwuoVSc.cache +0 -0
  226. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/utClJJbwBBC5xUHT5ZNxOYTVRnE-Mb1Og0rPIPNqi0Q.cache +0 -0
  227. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vg7YZAtUIKxon4DPUdCac22lnxPs0NyOjlXpbdFDgaQ.cache +1 -0
  228. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vlWxgBVBSTI0wY3TZw7lWnop3zBCeSBsWksOmuscto8.cache +1 -0
  229. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{RpvlWDvKjlJIn18TwRI_mqrAq5fq3ZKBoIZ7j6J0VS8.cache → w2WWeg633cG8q01-uNSRUMZw3s-S1ZVq3xO-1x_6F98.cache} +0 -0
  230. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/x38Hslo9uhZ5JJmEG-emEJE12q4Kdd3OdHw6je6KEjw.cache +1 -0
  231. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zAufR9LGwZtFZ4Xg1YUodFJ_ii54gkhBkdmE8wDrexQ.cache +1 -0
  232. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zLIiPZHKBB7dMguv8917pHsofobSuT1C_bkatR1QRPw.cache +0 -0
  233. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/{MvZLakajvgchZhakOLhaUlcPKa04GDMcx4Cb79n77l8.cache → ziuIMdFPkGTyTbAtDx8B7YubNSIvQdzkDOVXUwo7NIE.cache} +0 -0
  234. data/spec/dummy/tmp/cache/assets/test/sass/{cd5c2e50cf21c8dd5320bc76db0c28d83e16429a → 79bc6a1530be4e47bb2bf0dda4943bc0e439789f}/application.css.scssc +0 -0
  235. data/spec/dummy/tmp/cache/assets/test/sass/79bc6a1530be4e47bb2bf0dda4943bc0e439789f/groups.css.scssc +0 -0
  236. data/spec/dummy/tmp/cache/assets/test/sass/79bc6a1530be4e47bb2bf0dda4943bc0e439789f/layout.css.scssc +0 -0
  237. data/spec/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  238. data/spec/dummy/tmp/cache/assets/test/sprockets/{0e1e2425282f6439838f0c8d9072d789 → 1b2a7d537faf315ae13485445854a5ef} +0 -0
  239. data/spec/dummy/tmp/cache/assets/test/sprockets/2128d293dc8ef13115c1f5d64b5acfc9 +0 -0
  240. data/spec/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  241. data/spec/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  242. data/spec/dummy/tmp/cache/assets/test/sprockets/3a98370f571a26666587622ab8526b31 +0 -0
  243. data/spec/dummy/tmp/cache/assets/test/sprockets/50b9bcf05a8718d9cb5b99276f154ea9 +0 -0
  244. data/spec/dummy/tmp/cache/assets/test/sprockets/5316fc0620afefc2ba81b690c8e2c34d +0 -0
  245. data/spec/dummy/tmp/cache/assets/test/sprockets/538966109f3bbd58bfb717ad57a37096 +0 -0
  246. data/spec/dummy/tmp/cache/assets/test/sprockets/58b9ed99ad62ba462ca6a9272b96bef3 +0 -0
  247. data/spec/dummy/tmp/cache/assets/test/sprockets/{30d1b0dcdf4b100d1d37280a124f042c → 697d977cf9fc7e54534f5e29b0832836} +0 -0
  248. data/spec/dummy/tmp/cache/assets/test/sprockets/{5205e0ea4a81c07931d76f6621419f1b → 6aab60b365535cc305f37a738e75868b} +0 -0
  249. data/spec/dummy/tmp/cache/assets/test/sprockets/6db8498274efddac6691248cc9afe855 +0 -0
  250. data/spec/dummy/tmp/cache/assets/test/sprockets/81ab882fef1228d654a7c697f2324309 +0 -0
  251. data/spec/dummy/tmp/cache/assets/test/sprockets/908bf508cc68079cab720d6b9c36cb95 +0 -0
  252. data/spec/dummy/tmp/cache/assets/test/sprockets/{8d153aa951c8833e3f6d3bd223e75f47 → 91090eda0f104056144ac17a4fcae91c} +0 -0
  253. data/spec/dummy/tmp/cache/assets/test/sprockets/{3fe48a470d9b6e4ceed3bd4302a3ead5 → 91406f9a3422285f8475d13d5093271b} +0 -0
  254. data/spec/dummy/tmp/cache/assets/test/sprockets/a3c8104e5830cd7047c6a3a1c1e2ba32 +0 -0
  255. data/spec/dummy/tmp/cache/assets/test/sprockets/{c2353b9baa836d259e56664b79ac4efc → b512f2b016bd3aef8c28fa661e01308c} +0 -0
  256. data/spec/dummy/tmp/cache/assets/test/sprockets/bd49bb0a6f5dfd284a750fb9cab40d85 +0 -0
  257. data/spec/dummy/tmp/cache/assets/test/sprockets/c1092209770ff950c5697ec886327353 +0 -0
  258. data/spec/dummy/tmp/cache/assets/test/sprockets/c2fda0b675f9f971e9328c76254e44b6 +0 -0
  259. data/spec/dummy/tmp/cache/assets/test/sprockets/c39fce5fa19b758734af29527d4185ca +0 -0
  260. data/spec/dummy/tmp/cache/assets/test/sprockets/{aaa784da6c59545e6178b0adc661aafe → c6de7a48a0cb4668cc20ebe89d235b10} +0 -0
  261. data/spec/dummy/tmp/cache/assets/test/sprockets/cb595904fcf7acdedf2b95571442fc59 +0 -0
  262. data/spec/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  263. data/spec/dummy/tmp/cache/assets/test/sprockets/d748e38dac6a003cac60f346aaaf324f +0 -0
  264. data/spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  265. data/spec/dummy/tmp/cache/assets/test/sprockets/{b9426c2a279a937b82fa062bbb75af13 → dcd0b2d0aaa104a4e915d7d4a046436d} +0 -0
  266. data/spec/dummy/tmp/cache/assets/test/sprockets/eb9ed717a7ef467bf260b11dfc8451eb +0 -0
  267. data/spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  268. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/-9LnoNK9_y7lZLswQisHkJ2UgRiThUygUF2k-lwJ_ls.cache +2 -0
  269. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/-lmreWIhEDs2xHrcsFhR0u9C3oVKfRpkFWBRwj-_4wQ.cache +0 -0
  270. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{y6orTmm6rk6jn-CJIAXeQ8rOaHkBHFtbPogJm-3dNqE.cache → -xIdrBXI3YmhV41txPWqpBSY9pK3nOlnMf_tEoH7N-M.cache} +0 -0
  271. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/1A8wQ-ifsy7jBs9T0QABiYGCpJWneLF2UPFgWl32mxU.cache +1 -0
  272. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/1_-JUCvSVavx-NN-k01IXbauv2OthGh5YXWkYKn06DY.cache +1 -0
  273. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2ePvf7uuSi9IWydA-7YBn6gj5GDS_VftHJp3LDT2EMk.cache +0 -0
  274. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2p155H920Y76tD9Gj4HuvSeyKPX48gW2EeT0uJ-qDC4.cache +0 -0
  275. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/39nGyUnuGwDymSESW1DL-_ZP5z2KXgoqPQbO_PmFLVc.cache +0 -0
  276. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{3IscdSBVlh2QpX_V8gWbAdJn0CwOi3CtjBf841bLw90.cache → 48qiMefw2dDLpAoHV6Kusj-e9hqqxyv_py-md-r7qs8.cache} +0 -0
  277. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/4OUP5o8K327jlkg3E5HZSf42f-ZF2K1A4PLjWOulYIM.cache +1 -0
  278. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{6Tt3BohHWhW0VmHcKYyX9vLJY8ZGHF9XKASbNndcriw.cache → 4u-mbvL8xSJueyB4f0yDPryNRy7ujO7sMlpPaRt2qZQ.cache} +0 -0
  279. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/5154fwnuK_3Md7cMy15EvOV7ga2yxeSoBQPQKxAhh1M.cache +1 -0
  280. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/5EhPqCCQIQFoScisShCE4ycSdOEv98U0hL0SoZYK5p4.cache +0 -0
  281. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/6AKSuLQ7-rmru8z6X93bpAnu7f-pBhVaPqrLnlZEEr4.cache +0 -0
  282. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/6Xy9vg683-3OBFxLXdgZ668wV5vN_tjC9gHN-5rPPYQ.cache +1 -0
  283. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/6ZydpogL4gO4wlwf40vzZLyPUgQNOqmRzzKY6VtWSFs.cache +1 -0
  284. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/7EHTFFToRZu5VrDhHFvA9gEfhiAOmIFb0DQuWcbN7jk.cache +0 -0
  285. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/7QKZ7V7qzDK3EtnZ695pi2UHVib9nj_W6crYsRXdL3k.cache +0 -0
  286. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{kyxMBV6uZkWe3IRCYC22nz50pqdEvoUf29oOIKfqnLY.cache → 7gTxlHmDCoe0pK3toG5j6HVAgPWLlbnmsma34AAdLMU.cache} +0 -0
  287. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/7szNZZ1-2OAX8mpYY8lAU3hLJOzEOcvWWc12QNlD8jI.cache +0 -0
  288. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/7vocXMrImF5hz9rJvs2FpZjIhNQ5rk9XCPYcycMJAk4.cache +0 -0
  289. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/8_uElLvRDJemsXDDPUeqoeF53xlcDIDJHLm6xQc_pv8.cache +1 -0
  290. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{ABmSicIQVooWccPPNziw-INMNKnC2fTrf0gZOo4D-Uo.cache → 9FtH8_zmw6vl-JBtl2mpWPTu1SZtJkwq7va6MsSuCK0.cache} +0 -0
  291. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/9R6OcN8KqdiXmhWvyXEpXpKfQoXfutf567g9Cdxsf0k.cache +1 -0
  292. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{m0Ed6UHlyVF0HkWQFgMHYw21q7KL7ChRRX7kJOLOd4A.cache → Ap5o3Ju8LsP2SlQJ8q_CubJ6eGCjAvxtNiF4FaDTyn8.cache} +0 -0
  293. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/AwkOC2gVDWMkSj54qADI_lu4Sfz9TS2FLAl0uAnoDkk.cache +0 -0
  294. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/AyNPDW3Dgg140bGx7uc2Fyehos3xkt6fL-jfJkv6-qU.cache +0 -0
  295. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/BKzNyYOdP2xGdM8ta2UTFAVjZqG0hO3xxwRLRo0ZL7Y.cache +0 -0
  296. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/BrDzTsxp9UnHHzHEX28hHrcLUZv2vC-CcToUdBmjgHo.cache +0 -0
  297. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/CHIXLHDYbpAVxG1wakYkNI0QxxGh_dOrwBZDDO6SqtU.cache +0 -0
  298. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/CJRwlja0TMfytjVQklM865NY8SrvDdLuyDk0q0Zhfds.cache +1 -0
  299. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{GEBEpe470v7Q9mkDELNzG8WQfzdSL--qJ5JGJ8sG40w.cache → CZF_u2ho2W4C9GkGNOOBIMpdt2dTrBk2i1D2K-lhJmU.cache} +0 -0
  300. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{qPYNb4CZQFP0VwugOG64zXZndZfxBV9N8Kin-wXY2Uc.cache → CoTd33v9gkcqVl0gfcR4-uFjVkWeEdLi-KSv7GGA8nM.cache} +0 -0
  301. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/EKGnDPxrorMgQp0c5zDa3OatEmQ0XCIhzgHCvQjBB-A.cache +3 -0
  302. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{oN2LUbJ3UjOO--J2XELuQnD2XIq80Oa2bc5WYwhDK3c.cache → FBwAuPK6BCbMbGWYxYwBMw3DoucwiFMce9YeNnwsQ0Q.cache} +0 -0
  303. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/GDzC1chWWGmhgF3fUvOghjlCyrUvZCCVC_YH1oldtsM.cache +0 -0
  304. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/GYYF0YA4aRQirmTZh4-Zz72l1yXNBwv_Nf1IyUSnm0s.cache +0 -0
  305. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/GYYh9bV34kWHaEdZHJ3Vj5NJf7gHSaYdqsxbAMUmOQU.cache +1 -0
  306. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/GmMcDXgKRsei6oKvfxfRw4r78YTBSDbn7tJ44VRHq8M.cache +2 -0
  307. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/HUkunAxe9Fh8y2t11XZEpJnpvhHM_UKRHA6txWiKy8E.cache +1 -0
  308. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/I4f1QHxKGH_mYiYPkvYSLJdD0hu3KgATxH7js4TBWQ8.cache +1 -0
  309. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/I547NVZ9qsZYQ-NWg80sYZBlUjIn-f82SF24UxZdOAE.cache +2 -0
  310. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ICWn4xffNF1HNqIMLVH45031SRVzi1bReaei0ppXuOM.cache +2 -0
  311. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{KK-iVi_zk3sBOAMMmX8qOKilgTXSJ6VR7ev4cCt-xiw.cache → IKDoGwyiGlH1CTrcfd99TIJyg7356azTB6_K-Wfa5EU.cache} +0 -0
  312. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/JOgVNi_2ZnabkY8ZA1S4A9dolCAYe2eN7N5wgGAize8.cache +0 -0
  313. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/K6dcmv3rL2-a64bGvjvlt3V40jZoespDpJI43ozVwx4.cache +0 -0
  314. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/KNToCYP5EmOnK5v4rawfGKj7hX_btIG52S_i7DyL5nI.cache +0 -0
  315. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/L0AV6BEMf52JcHA55hmNVo2VHUKjVW8ZVuTIx27sRa4.cache +0 -0
  316. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/LmxkfpwC41PgyGjIYCA7x9YPSD-6s8B4Mi4hqdbYzw4.cache +1 -0
  317. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Lra_lUnCq3UxcsTplESpDJMjC0aR8xhaqEQJZNQmOlc.cache +0 -0
  318. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/LtuKwRcTWtNm0-9U116mcMNSEOapgDhyZaj926hhVPs.cache +0 -0
  319. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/MR1NqdyKxCHe9jA_fNZHSfQJOaeHmav2vv8iUg1H9d4.cache +0 -0
  320. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/MzYsi2S393224patsQC_5aJpDwq4F97WspZCPEXC2Q0.cache +0 -0
  321. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{k8M9V_ClpoQ0s1OMUJHaJfk4qPcAYqeJQ5GcRTqQSA8.cache → N2vRYi3uyzvn5jNG3gJq3Gk9n_aLie8gtNNarCUS9ik.cache} +0 -0
  322. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/NY5z3cpix2h7B64lLs5m2CArxRqzjesaGZx6Xt8si5A.cache +1 -0
  323. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ORVhra49kAzimJHvx3UwnqHHYy9OyK3bWPoktyC2_Tk.cache +1 -0
  324. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/OnRq-dwbTzBXS4XQuBUpuBul105QTof7HWmejDG-up8.cache +1 -0
  325. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/PamLXmiOyVwyw3ftfD8aDs2TwFsBjAz97G7SDPGSdmQ.cache +0 -0
  326. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/QJhx6O5qwBBsHLR8azlUd1fZ1sYMbBTG9omqzSrsl8U.cache +1 -0
  327. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Qz3aXVOQV-hb4VezgZnvkWV5_puuCLP1XPzASTgwJoA.cache +1 -0
  328. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Rhafj2GpRZtp-MvV8OPk2PMmp5ovrXMGbfkfJDC5rJk.cache +0 -0
  329. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/SC5sq7fcHC8EQjMVaWqfJJa8-Ff-BSjj15cfWDBDyCI.cache +2 -0
  330. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/TjkgdowR9zeQYAxXXiimCu5UpfkrWpLSnLUi6p6WfZI.cache +1 -0
  331. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/TuA-1z5QC0DZ3Dwx7EFw4J4i3erwa-jspsxfAbRVqCU.cache +1 -0
  332. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/UMznzQq-uwbslH-8M6pmrNrruRcrHtfOwclv5rh-yVc.cache +0 -0
  333. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{RpvlWDvKjlJIn18TwRI_mqrAq5fq3ZKBoIZ7j6J0VS8.cache → UpB_Ha9hbMTiPjLPu74wM2oQeFksqnwGf1o8ywDJ4Ek.cache} +0 -0
  334. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/VtjBUD7vGoYLG8W3JVW_vNWW_N5elhbf0e4RTee-7Ow.cache +1 -0
  335. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Y4iDD3MyOCiGzA41LM0_WoPPUrSQ3b-ebQODC2X88mo.cache +0 -0
  336. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/YGZWmzflAg_kBxwD40tFjxBiHAvFMLGFhMYk6Wkhv3I.cache +2 -0
  337. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Yi8I2PINpzaFSJWwVocKfpueusL8M1_5nrMx5lHIKTQ.cache +0 -0
  338. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{lZQALQvALn540pbQBlXRfZ5u2Qx72YCsxdh2rICQfTo.cache → Zc7jGNCk6mFb05cRvvwBM-Qds541yngGy7rrHKmVU6s.cache} +0 -0
  339. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Zn1XhXMXJwsSCOKjkot9hZawN5qjOrMHbtjfEh1SpKg.cache +1 -0
  340. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ZyXvJ1KeAXVlJBuT5sKFHxbJDggotGHSIfePjxLj6p0.cache +1 -0
  341. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/_3yNG_7ETpXbBK7hSr2P6Kgm_drWvRRJc0nD2iXzz8s.cache +0 -0
  342. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/_WENBZwkqGTaFYstUKX48sfgNrhWhmeWPU61v_xJigM.cache +1 -0
  343. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/_fza5_g_S6qIdQahDpw4v5TxMgyfxRedZ2jaFX7GCiM.cache +1 -0
  344. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/a9ISJNTjcVsfdRCG5tgPZynUMkf1JoNJYmuLkkchBdA.cache +0 -0
  345. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/aXOjXMlDumwozMg7Bj2qMtgljMKEvB3HXOIl9j-TBDw.cache +0 -0
  346. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ac3id3tXT5UPTMmwAxnrNu59bzPIqeRr6KAEQmot3gg.cache +0 -0
  347. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/beO0Qn92CeJxa2_L2yaiuZq7Jx5ZNMKEBPMDNR7SCJM.cache +2 -0
  348. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/cIGnbFf0j5QUf_wBKIMm5S3IN4Ubwgt3vkMFFSS6A3I.cache +1 -0
  349. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/dbwoXGGpZ7O1xOhIg7hBjyuHSHmV1jzbmAFEI-wHgyI.cache +0 -0
  350. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/dlwht47WcGsAYCBzPzjh0dzefLsDaNM32a1j9HMCrPU.cache +1 -0
  351. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/dv-t_-azYNWr2Fxh4xuYgZ5IJHOubVDYbcaFQKwW5-k.cache +0 -0
  352. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/eiwrdLSIsd72v5prvcHC-3MpRvhvezsksaWgUmy6_Mg.cache +0 -0
  353. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/fWKHFFtukMfTyIHgfEpvZmzmkpu5MCnjkxoe_ipJLZw.cache +0 -0
  354. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/fbdG78s4uopDHNZqVoq_xLWsWWp4zoNnHO5la05KIVE.cache +1 -0
  355. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/fwKKlfcpOcUQO-ptN7675VsRr9FMNX4TAo7pC979CZo.cache +1 -0
  356. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/gTN-wmzz9QVnNJ2Ss4t6n37Gk7ixuoiNbTxESwT8-3o.cache +1 -0
  357. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/gUG99SIJAJtfXBhDQhetAIrO_baTzx_a5SSjHw4PufY.cache +0 -0
  358. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/gg9k3Z7hedEOKE3TitDeSpuh19j2yNXWtGyM9JXXpIA.cache +2 -0
  359. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/hE57lfaKnD48I3tztHpqD31RAulKLClEv6NUUJT_UIg.cache +1 -0
  360. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/hM39IQa4fw3m9qQN2pfEBGJE2T1bTMz5-wpUScGeFCE.cache +0 -0
  361. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/hfQFBPPxJtPDdthOO3rJKlri_i3Ho3EluFmoAqR_bYg.cache +1 -0
  362. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/hn9Bk3J9k1TapZ8zPFBoq99mj0LsVDAM6ZEfIaM6EbA.cache +0 -0
  363. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ioHTiBF-8-6CURnZ7YlpQrSyfHbnQEoAncw3Hkpc-fI.cache +0 -0
  364. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/js_-GbuvJQ4VGhFUV6QutWkBN2J467qAxjx2Yf91Eak.cache +0 -0
  365. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kCGpSXjVHLbwe04B7WxFFD21HfXCYpg3LC3PEky9sZI.cache +2 -0
  366. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kaLZDshWwYOSPRIJmXCOdtnceyyqf3s2lpd1rd2jtsM.cache +0 -0
  367. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/khZymZd6HrT91ZukScOLmxMgJqFSWZaPA6CkQuEBzuA.cache +1 -0
  368. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ki7_b0l-ufJ8CKQdElm0k-2OyOcMQy6_yu72MVDka4s.cache +1 -0
  369. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kpvMjOghMFzyC-GGH1hyZYp6seOMyTvwNee7K2gZ_Co.cache +0 -0
  370. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/lBXKiv2k-ODSn6dfiYEUn3l_EDOu0ge79iuhn-DAqZk.cache +0 -0
  371. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/lYCH7zVb6ECpax-WuyKXHfMlu2Lim5XVE8jQKgqPurY.cache +1 -0
  372. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/n5Nok1YwPgyBiS2xW0dnDxT4fZzGmPZAbGbgdl0HgHk.cache +1 -0
  373. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{Vp5XbjUwVj8XafOL_dOz2pN9bIF-biEbxFPY3KTemjY.cache → nVb2i1iKycFjiMR6U-8IrKlKumiSLBIMDOgsb1Sw51g.cache} +0 -0
  374. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/naeeUXJcvbOPtRddkG0HY8EBueijTTAVcak5IKubQ-U.cache +0 -0
  375. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/o3OPTr3pf07qCW0LsK5iuRMcsNy3q7BXmPyebfbayH4.cache +1 -0
  376. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ov3EDe0iKlpPkgh1KjahCK1OVL8uWYQ1cVNUaiGmlG0.cache +1 -0
  377. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/q6BYa32YJF11eGVapO4ouNl6gayPIsARgMavlzZmoi0.cache +3 -0
  378. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/qtez3V5RoYAjFDOGqeMvg6p5zWk6WamsIOO5dYrFpNc.cache +0 -0
  379. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/qxyZeiCw3SuP9VNB-n9e40llvaOAZeFoRc4e6kpbexg.cache +0 -0
  380. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/rKg3R8vuaGev7uePt7maDTseyYtLYHF1afFa6rMZvos.cache +2 -0
  381. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/rwnfxTyQ5JDjuDtIBdhI_NTqtQ9mls38vnGCvGUhjAU.cache +1 -0
  382. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/sqnal_QFHldgZCbm7ElwpcD7FN730fRy5FFbJgUvViU.cache +1 -0
  383. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/szKErilCkFe_reHZ-dGGc0YC7BCBGpaX2NtZwR-IX1g.cache +0 -0
  384. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/tDyWfi6loGDH2VY6sIDeRy4ELlPce1d72GBFRDu0eoA.cache +0 -0
  385. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/tfGFfOAYiI9wS251EOcY9iJd8BeHDP7lUING5ER7J5U.cache +0 -0
  386. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/thLSQ418CeASZojHPAZyVxmvcgzZwahQ-qdVhO9QT7o.cache +0 -0
  387. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/u0jNXsg3M7MVjfjMUd35w_z7eJTwugxonLvMEwJRNXE.cache +1 -0
  388. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/uGfYe65nf6oLDhvNjo0QDBaXCCiFXJJSl02xRRjwpfA.cache +1 -0
  389. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ujMpOMkHKO6nLCblqGWOXPwfhwwOj8Nk32JRPvxP9Ew.cache +1 -0
  390. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/vg7YZAtUIKxon4DPUdCac22lnxPs0NyOjlXpbdFDgaQ.cache +1 -0
  391. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/vxwwk_1slj4fcevNvfqES3BdOztJrJQ231TaeFLFUOQ.cache +0 -0
  392. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/w-moWH2uaJxkP0iAQmPypxZoAJoOtMVVkeQ_3ucccFg.cache +1 -0
  393. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/w2WWeg633cG8q01-uNSRUMZw3s-S1ZVq3xO-1x_6F98.cache +1 -0
  394. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/wEjIcbsVwfQq53aYJymEBRcssP4JwNgpFkmBiQ8D-lM.cache +1 -0
  395. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/wq6K0Ic7fB8nucETNMt20PQHhpwfiLKbfj2QduEzC14.cache +2 -0
  396. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/x7KkTV3ibfIEysLB_ug5bfmnn2VLV_BldukPR3EoPBk.cache +2 -0
  397. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/xA9FzLWicT29nRLj1mPCxt0DTBK4FzfVMFc7lQPdDwo.cache +0 -0
  398. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/xoSaAGdIEiGSuQOIsR7F32U5bfhjw8_daxc8TyKjldw.cache +0 -0
  399. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/xy3fFnoc6Xy7PSk5kS4PsCuxjy87qImwogOEBzkAZFo.cache +2 -0
  400. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{eO30598lqiH4E0poxi-So-sioK59p0nH1fHHWZNmnwI.cache → zLIiPZHKBB7dMguv8917pHsofobSuT1C_bkatR1QRPw.cache} +0 -0
  401. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/{MvZLakajvgchZhakOLhaUlcPKa04GDMcx4Cb79n77l8.cache → ziuIMdFPkGTyTbAtDx8B7YubNSIvQdzkDOVXUwo7NIE.cache} +0 -0
  402. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/zlCU95ZKx1nGy3M7EaPFIwTJhFr1vzLHQHieB7J1ZkY.cache +2 -0
  403. data/spec/dummy/tmp/cache/sprockets/v3.0/-9LnoNK9_y7lZLswQisHkJ2UgRiThUygUF2k-lwJ_ls.cache +2 -0
  404. data/spec/dummy/tmp/cache/sprockets/v3.0/48qiMefw2dDLpAoHV6Kusj-e9hqqxyv_py-md-r7qs8.cache +0 -0
  405. data/spec/dummy/tmp/cache/sprockets/v3.0/4u-mbvL8xSJueyB4f0yDPryNRy7ujO7sMlpPaRt2qZQ.cache +0 -0
  406. data/spec/dummy/tmp/cache/sprockets/v3.0/5_nSG9TBIvMgszKAxBx25DX1UMeAx8rMSm49ueQQSMM.cache +0 -0
  407. data/spec/dummy/tmp/cache/sprockets/v3.0/74tAiXC06dXA2iPIBm1-eCfpeuio0OToj5iTt9tPyto.cache +2 -0
  408. data/spec/dummy/tmp/cache/sprockets/v3.0/9QotU0qOMaLGwkr2ILQw4cAKg3keMOAElOgDz_RCUMk.cache +1 -0
  409. data/spec/dummy/tmp/cache/sprockets/v3.0/AxEbrM3BRhmUkzQtXKiCTXaYe5upIJNcnt4a4c3AE4E.cache +2 -0
  410. data/spec/dummy/tmp/cache/sprockets/v3.0/AyNPDW3Dgg140bGx7uc2Fyehos3xkt6fL-jfJkv6-qU.cache +0 -0
  411. data/spec/dummy/tmp/cache/sprockets/v3.0/BBUVlPCRDAvIDkyTMTbAjLu0NaOcNvuVWDblSRgHdRA.cache +0 -0
  412. data/spec/dummy/tmp/cache/sprockets/v3.0/BMx_mGEhC82GSWpMx5n_9M3nBGJ00mxCagP27OhALxQ.cache +1 -0
  413. data/spec/dummy/tmp/cache/sprockets/v3.0/D83E4Per-mHDSoRX-flfs-kIeiJSbBYBWLG2x2yHApg.cache +1 -0
  414. data/spec/dummy/tmp/cache/sprockets/v3.0/EOvyouzB8DrrPlNPaKpH70xSWp53AuBYt3otbnf8cU8.cache +2 -0
  415. data/spec/dummy/tmp/cache/sprockets/v3.0/EzNrNwbPX9eM9D_EVtSkr9hJTiiZH6bTnnEyHjzES7c.cache +1 -0
  416. data/spec/dummy/tmp/cache/sprockets/v3.0/FBwAuPK6BCbMbGWYxYwBMw3DoucwiFMce9YeNnwsQ0Q.cache +1 -0
  417. data/spec/dummy/tmp/cache/sprockets/v3.0/GmMcDXgKRsei6oKvfxfRw4r78YTBSDbn7tJ44VRHq8M.cache +2 -0
  418. data/spec/dummy/tmp/cache/sprockets/v3.0/IKDoGwyiGlH1CTrcfd99TIJyg7356azTB6_K-Wfa5EU.cache +1 -0
  419. data/spec/dummy/tmp/cache/sprockets/v3.0/Ie6AlT56YJfPmDu6dtQj2Bx3XhPpUiThgbZPB9c07oE.cache +1 -0
  420. data/spec/dummy/tmp/cache/sprockets/v3.0/JVP47rgGgFq4dwvqKpw18smN739021OE_Ozja18GyTQ.cache +1 -0
  421. data/spec/dummy/tmp/cache/sprockets/v3.0/JViua-5wbABAAW1qlkprCRV-DnHe4bcUE5rkotS3cc8.cache +2 -0
  422. data/spec/dummy/tmp/cache/sprockets/v3.0/JmBfuzuBoLF0VreQFOdaTnc4xSm0OXdrmBJlugAn6jc.cache +0 -0
  423. data/spec/dummy/tmp/cache/sprockets/v3.0/L0AV6BEMf52JcHA55hmNVo2VHUKjVW8ZVuTIx27sRa4.cache +0 -0
  424. data/spec/dummy/tmp/cache/sprockets/v3.0/L98VcBAUgxfW0weHV0rmQt66OWZTgw89odjUs8zQ__s.cache +1 -0
  425. data/spec/dummy/tmp/cache/sprockets/v3.0/MchkdoLPiWM-PeWVK9Mr_dLW6vd012xH6S8OrMm5G5U.cache +2 -0
  426. data/spec/dummy/tmp/cache/sprockets/v3.0/N2vRYi3uyzvn5jNG3gJq3Gk9n_aLie8gtNNarCUS9ik.cache +1 -0
  427. data/spec/dummy/tmp/cache/sprockets/v3.0/R3JPY4PITnCWQQJX1LpfNkBfonnvB528091JUN0vwBM.cache +1 -0
  428. data/spec/dummy/tmp/cache/sprockets/v3.0/RUSBdTxYCcfmEWQS_Htp3RX9QJFViQzNTXqy5yZFS4Q.cache +1 -0
  429. data/spec/dummy/tmp/cache/sprockets/v3.0/SC5sq7fcHC8EQjMVaWqfJJa8-Ff-BSjj15cfWDBDyCI.cache +2 -0
  430. data/spec/dummy/tmp/cache/sprockets/v3.0/TFQTEXZH_rYt7TSr3CaLhncUDntRmg56Cav7Yd4_ws8.cache +1 -0
  431. data/spec/dummy/tmp/cache/sprockets/v3.0/UMznzQq-uwbslH-8M6pmrNrruRcrHtfOwclv5rh-yVc.cache +0 -0
  432. data/spec/dummy/tmp/cache/sprockets/v3.0/UPg13tlgINb98l5GldPTfwZ3VB6EbiXTMUn9UxHtRRU.cache +1 -0
  433. data/spec/dummy/tmp/cache/sprockets/v3.0/XrAbX0bQEs3izzo3nys2tp1hvURioz-jvhAi7tynj98.cache +1 -0
  434. data/spec/dummy/tmp/cache/sprockets/v3.0/YGZWmzflAg_kBxwD40tFjxBiHAvFMLGFhMYk6Wkhv3I.cache +2 -0
  435. data/spec/dummy/tmp/cache/sprockets/v3.0/YZRbE5JJxjdznKkK0nB0jKYHkncr5VU_4yvUiFZHGKU.cache +1 -0
  436. data/spec/dummy/tmp/cache/sprockets/v3.0/a7Y4PKBfB2AQXAyqqpDRrUHy4fg-IpYT1-nkP_hbeOw.cache +1 -0
  437. data/spec/dummy/tmp/cache/sprockets/v3.0/apaTkB3M4wgG4_T8gXHg_SR-8jDp4-_LrzFL6LAMTX4.cache +2 -0
  438. data/spec/dummy/tmp/cache/sprockets/v3.0/b-65bDZSjbekqSrrLuwLD1Ml-jj_AzF8YejdDxi_UG4.cache +0 -0
  439. data/spec/dummy/tmp/cache/sprockets/v3.0/b83zPZuEfOujV15J61Ckp5A9P1vKtES5wD-xk4MvxuM.cache +2 -0
  440. data/spec/dummy/tmp/cache/sprockets/v3.0/bE7Fk2YsHFINIzaxEBqHKZEPOnWuDgn6wnveaWBRE7s.cache +5 -0
  441. data/spec/dummy/tmp/cache/sprockets/v3.0/ctxBG6gXblVY9FkhYs5QbIOgXWYOSF4kdjt-9ctJ7ac.cache +0 -0
  442. data/spec/dummy/tmp/cache/sprockets/v3.0/gg9k3Z7hedEOKE3TitDeSpuh19j2yNXWtGyM9JXXpIA.cache +2 -0
  443. data/spec/dummy/tmp/cache/sprockets/v3.0/ggNvi1qkBKpk7L6Z6-v3XwGaHRKbJKx4b2680DtLr3s.cache +2 -0
  444. data/spec/dummy/tmp/cache/sprockets/v3.0/hE57lfaKnD48I3tztHpqD31RAulKLClEv6NUUJT_UIg.cache +1 -0
  445. data/spec/dummy/tmp/cache/sprockets/v3.0/kCGpSXjVHLbwe04B7WxFFD21HfXCYpg3LC3PEky9sZI.cache +2 -0
  446. data/spec/dummy/tmp/cache/sprockets/v3.0/ki7_b0l-ufJ8CKQdElm0k-2OyOcMQy6_yu72MVDka4s.cache +1 -0
  447. data/spec/dummy/tmp/cache/sprockets/v3.0/lBf006ysc3epjL29Xp6OUVwkFOUw4-BvkeZ9finrXWE.cache +0 -0
  448. data/spec/dummy/tmp/cache/sprockets/v3.0/om3JiByz3unQifhOQiLt27UT7HksXFeVO4qfNsthOHU.cache +0 -0
  449. data/spec/dummy/tmp/cache/sprockets/v3.0/pI478Vvwg0pHxj-dhfCk5KCfrDF5OLfn82xGuB9sHP8.cache +0 -0
  450. data/spec/dummy/tmp/cache/sprockets/v3.0/pfm-bBY110CiXJ2s3jliq7NYFyiCc8rdr9-pjUqke-Q.cache +0 -0
  451. data/spec/dummy/tmp/cache/sprockets/v3.0/q6BYa32YJF11eGVapO4ouNl6gayPIsARgMavlzZmoi0.cache +3 -0
  452. data/spec/dummy/tmp/cache/sprockets/v3.0/rKg3R8vuaGev7uePt7maDTseyYtLYHF1afFa6rMZvos.cache +2 -0
  453. data/spec/dummy/tmp/cache/sprockets/v3.0/sosebjpVvVpu5liYgrN3yYUvmOIbzGa_DkN1ys5ynLY.cache +2 -0
  454. data/spec/dummy/tmp/cache/sprockets/v3.0/w2WWeg633cG8q01-uNSRUMZw3s-S1ZVq3xO-1x_6F98.cache +1 -0
  455. data/spec/dummy/tmp/cache/sprockets/v3.0/x7KkTV3ibfIEysLB_ug5bfmnn2VLV_BldukPR3EoPBk.cache +2 -0
  456. data/spec/dummy/tmp/cache/sprockets/v3.0/ykyuEWh36Jpfk4yS5fNqKWJEppGpRgwTjYPZiQH8fdw.cache +0 -0
  457. data/spec/dummy/tmp/cache/sprockets/v3.0/ytFt8ooOS5_nQl7q7XZQtJmP6O14DWCZ9czXZFntSR8.cache +0 -0
  458. data/spec/dummy/tmp/cache/sprockets/v3.0/yzaB4RdG-8HojwQlJSrZxjPJv04IF3CmJ2a-1acv3RU.cache +0 -0
  459. data/spec/dummy/tmp/cache/sprockets/v3.0/zWptTwOIzsuU9l8ehs15qN7A6lio_cypAHL-erdyHS4.cache +1 -0
  460. data/spec/dummy/tmp/cache/sprockets/v3.0/zpPT_wmGGvuW4P86PDFxYfFL5bQgMZflJfnHbazO9YM.cache +1 -0
  461. data/spec/factories/group.rb +8 -0
  462. data/spec/factories/handler.rb +6 -0
  463. data/spec/factories/handler_translation.rb +13 -0
  464. data/spec/factories/translation_key.rb +8 -0
  465. data/spec/factories/translation_value.rb +9 -0
  466. data/spec/handlers/erb_handler_spec.rb +9 -9
  467. data/spec/handlers/global_handler_spec.rb +3 -3
  468. data/spec/handlers/library_handler_spec.rb +3 -3
  469. data/spec/handlers/model_handler_spec.rb +11 -7
  470. data/spec/handlers/validations_handler_spec.rb +4 -4
  471. data/spec/handlers_spec.rb +1 -1
  472. data/spec/lib/cache_database_generator_spec.rb +58 -0
  473. data/spec/lib/erb_inspector/file_inspector_spec.rb +1 -1
  474. data/spec/lib/erb_inspector/translation_inspector_spec.rb +3 -3
  475. data/spec/lib/erb_inspector_spec.rb +3 -3
  476. data/spec/lib/model_inspector/attribute_spec.rb +3 -3
  477. data/spec/lib/model_inspector_spec.rb +9 -9
  478. data/spec/lib/object_extensions_spec.rb +1 -1
  479. data/spec/lib/translation_migrator_spec.rb +43 -0
  480. data/spec/models/awesome_translations/handler_spec.rb +1 -1
  481. data/spec/models/awesome_translations/translated_value_spec.rb +2 -2
  482. data/spec/spec_helper.rb +24 -4
  483. metadata +997 -397
  484. data/app/assets/javascripts/awesome_translations/application.js +0 -13
  485. data/spec/dummy/config/locales/awesome_translations/models/role/da.yml +0 -6
  486. data/spec/dummy/config/locales/awesome_translations/models/role/de.yml +0 -6
  487. data/spec/dummy/config/locales/awesome_translations/models/role/en.yml +0 -6
  488. data/spec/dummy/config/locales/awesome_translations/models/user/da.yml +0 -6
  489. data/spec/dummy/config/locales/awesome_translations/models/user/de.yml +0 -6
  490. data/spec/dummy/config/locales/awesome_translations/models/user/en.yml +0 -6
  491. data/spec/dummy/config/locales/en.yml +0 -23
  492. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1qKcXfkG8CKi7q4pCEHnvwfcPx1E_x2I7eSOQBHGPPY.cache +0 -2
  493. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1vIoFrjnL-WYo6h0P4YR6R8em3JmI3g-ordATsUyh60.cache +0 -3
  494. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/3UCczbToeiY2ykHpeDqRi9GK-6t_Elikr8hOWGdAUzk.cache +0 -0
  495. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5wfdkfw9Q56zdQjDm46Dd76F-Bh_TXOMtg-yo9qWK-4.cache +0 -2
  496. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6VoVHZXlkZRSXoEKqnyAKlNmd0nYvRv4gysdIYMMPO0.cache +0 -0
  497. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FMw8p0XzZq8ibZDT5V9xwtSvsD4kE6KUFZ757QLIaaA.cache +0 -1
  498. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GApQ59e5HgUPx8vhnO4eQLAaEDRattds4frtXbteIKU.cache +0 -1
  499. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/I2mbvQlKAUa_sKfXDn60m_2SHHDJg5d0q0A-D82H5CU.cache +0 -1
  500. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KA2Lwg2NNgt_oqtKVifbp_KCzBYpUOESd_vhyofiHuM.cache +0 -1
  501. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KUMOTC_lyk0EVRIY2QOPuyhGxA5lBKWZk2g6dsB_GFk.cache +0 -0
  502. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LJY_42VtPPzKbYI_08t0RibCYO6Pk7h_D5LVUqMUf08.cache +0 -2
  503. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/MIEij_krgXGgx1NoadOVjN0zUctja-Ju8dW9X1BrIZc.cache +0 -2
  504. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Mb5rz8ZE56o6DQO3S0TzatTW70GbYDOj6TGqPtaiR4E.cache +0 -2
  505. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NAVJvwEfjb_iCvtQZ87F4LttFQX1ELd2TGRMzda1YTM.cache +0 -1
  506. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UezSt2l9DKvGH5FTKMGncQA2frZcqiwBpjNNGY5YxJE.cache +0 -2
  507. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Up99B1IcqjCl5pX4oDOUjBRH7MlGkanhw2U4jblusws.cache +0 -3
  508. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ZotICrlgxuCoyrHNZjO5OdWgcDSnUFNtW3XFWiNrmZI.cache +0 -2
  509. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_3WzdzBWQ6Aal-8jujuXrujK4QhMa397rqUYFLR-NQM.cache +0 -1
  510. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_8zNerD1S8oKB2XaiZXtPXacVT50V1pzgDmwm1T0FYg.cache +0 -1
  511. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/awwp95szKjLN7ecKC_knYGqSFX7fSIUN6aZfZSoK4go.cache +0 -2
  512. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bCh19eCSHzJLYGCtRk1UwrrR1H5sQGXneb7YXxFB2rM.cache +0 -0
  513. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/d0dz_SPKXqz2hMYTGWtbe15XFuke1sEBI_1X_O_P7ZY.cache +0 -0
  514. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/dFQ4Q3hp4VwfHzoh2lVeOsYsY87Li26plRX4uWWDISs.cache +0 -0
  515. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/db4IzdQ8LsevZeJT0IY5KrjEko5oPwd9zNfqUHrO6sA.cache +0 -0
  516. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hFeUW0u2l1yvMNYKs8aTAjGPox_WiHs3sWdpviW8j8g.cache +0 -0
  517. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hTX85qeo1RVM_iwikMQZrzHAqrP6Z8jFf-KH_GgsSwo.cache +0 -1
  518. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/k7ZFNEy7rPvT30E_q2ktyQj9ZbIMivSf-QxyW9TA5xw.cache +0 -0
  519. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kExbfVgvjJlXnJKkTOLOYYVvm9RnXiAXbtxmHx7oQV8.cache +0 -1
  520. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kXZ5SNrnAE-T54v1b_KddSictfSfwOSoj7H4i5-6f8g.cache +0 -0
  521. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kp77YxQaf2YTdZ8WZlB3LYnulhMMhGfSRhqeA9qaffQ.cache +0 -1
  522. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/l32RrzgTsAGwpwA3LGrqcKRHthaL681N18TiyrJ3goM.cache +0 -1
  523. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nACk4K2RvtLpl83m8PVDPJx8O5oW197e1COjCELFQkE.cache +0 -0
  524. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/osR7Wt_1B7LezjwxH6ANK96EPg1Jy808ubXAfIYat6k.cache +0 -0
  525. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/uXmtB4n5IxofIKBQSzzHvvz7XJj3y6ul-AW0B5F_Fis.cache +0 -0
  526. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/w6gYjUBGcix9jkTtmox9zOg5RMDExUrt0LeoOEU49Ww.cache +0 -1
  527. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zPWQ3Dit7vGxRBJDr0Y6060syWEljgLfPpBSwT_awWo.cache +0 -0
  528. data/spec/dummy/tmp/cache/assets/test/sass/cd5c2e50cf21c8dd5320bc76db0c28d83e16429a/groups.css.scssc +0 -0
  529. data/spec/dummy/tmp/cache/assets/test/sprockets/40c039851f1e9c7652e79559d5f0eb57 +0 -0
  530. data/spec/dummy/tmp/cache/assets/test/sprockets/476b87a00813499bb0c5994cfb1617fe +0 -0
  531. data/spec/dummy/tmp/cache/assets/test/sprockets/4eaa569e863732fc01883e425e991e3b +0 -0
  532. data/spec/dummy/tmp/cache/assets/test/sprockets/6f26f574ff8dfe3727a8b37e0eb78e89 +0 -0
  533. data/spec/dummy/tmp/cache/assets/test/sprockets/8277106af358b15d5d9ea5f25e6c16b9 +0 -0
  534. data/spec/dummy/tmp/cache/assets/test/sprockets/d242c6bd6f900ddf1e2da56629ea4214 +0 -0
  535. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/1qKcXfkG8CKi7q4pCEHnvwfcPx1E_x2I7eSOQBHGPPY.cache +0 -0
  536. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/1vIoFrjnL-WYo6h0P4YR6R8em3JmI3g-ordATsUyh60.cache +0 -0
  537. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/2Y51mkloF7jGf6jJOhYJo4PMUd7lKoSWKoWuIuy8E-I.cache +0 -1
  538. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/3UeKrejci9nQqBEO0KCdbTpuf99rs1vT6stnFy56JPc.cache +0 -1
  539. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/5wfdkfw9Q56zdQjDm46Dd76F-Bh_TXOMtg-yo9qWK-4.cache +0 -0
  540. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/8aWhDShsX3EbC0z6Dn79WDzDzVf7t-kcer0VpnZSqaY.cache +0 -1
  541. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/8czjR9XP3pFX_FNR7qF_9SeVc1Yj7A12MyK72kZY1bo.cache +0 -1
  542. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/DUSZZlZQuWujlkFkNjfuQxlTguMdZU32gf16ONUQMko.cache +0 -1
  543. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/G6Jcc3vhf1YLvzhxkaWlWMehBma5J6iOxEr6jjESpHQ.cache +0 -0
  544. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/GACQZAbqcPvI9bBQMLAsQMnvJE28_BMnK2dZoeOYWHc.cache +0 -0
  545. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/GEvxlVx6YSVMSJXTAP0yuU-FdjyFNJ5FuzCNewJprHo.cache +0 -0
  546. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/JYcXWKlVLveQjTTknvMcw2tISpq7DrGD3oKhaCNNKjI.cache +0 -0
  547. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/K9eViHXJLIL05Z-rEIFPZ1ey9Y7iEnaM1nQjV6xUjvw.cache +0 -0
  548. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/KI5ikH1EhRt8UcY_TnNsPFctrbR_XR870QmQiiS_LWY.cache +0 -0
  549. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/KmqFolaKe5LMeZsqS_jGZlABf19Dcd5_TsfbGh67QkI.cache +0 -1
  550. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/LJY_42VtPPzKbYI_08t0RibCYO6Pk7h_D5LVUqMUf08.cache +0 -0
  551. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/L_Aq41PvTqk5x8GD5sP8ZMtfycJ367ycJEBnoje_cWw.cache +0 -0
  552. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/MIEij_krgXGgx1NoadOVjN0zUctja-Ju8dW9X1BrIZc.cache +0 -0
  553. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Mb5rz8ZE56o6DQO3S0TzatTW70GbYDOj6TGqPtaiR4E.cache +0 -0
  554. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/PAmGm1DKK2Dvho9TcgVcep0PFmCn_kGnrOomgBoyjBs.cache +0 -1
  555. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/PrDVHlVFAS6-V06qVa3OmB-P-6bfykdUm1rqeGHug1k.cache +0 -1
  556. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Rc1jAj5cU5Hbaz4c7NZzG6dbdZBuvVOo0Tszd0bnxVY.cache +0 -1
  557. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/T-mINTYPXfmZNlsyxiiGfM5xKOEfM9RgGZGeQfo6qH0.cache +0 -1
  558. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/UezSt2l9DKvGH5FTKMGncQA2frZcqiwBpjNNGY5YxJE.cache +0 -0
  559. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Up99B1IcqjCl5pX4oDOUjBRH7MlGkanhw2U4jblusws.cache +0 -0
  560. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/V00ApaHioHU8Bp5JaHKnVM1fZfkKYXTrcmjAnvhcfmI.cache +0 -0
  561. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/V7rc7wpaGoB5SKH6CGzE9xzTvFYTdvEyDna1nfjx8fc.cache +0 -0
  562. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/WSXOWUqMl_i_hIJkFR1IsLCpxnpmMaoKGyBfcPiB8N0.cache +0 -1
  563. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/XeCG5oXvjEamfACNt_kGwPzVcikaTw65ehnAVYlZRiY.cache +0 -0
  564. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ZotICrlgxuCoyrHNZjO5OdWgcDSnUFNtW3XFWiNrmZI.cache +0 -0
  565. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/_E51q8pgzm6ujV7Ohw9GxZCUt8bzcuFbXAZmw6IFT5U.cache +0 -0
  566. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/aZdVKedgigfZ_XzuE0rO9brhaL4bR16cT4LDR4-5f8U.cache +0 -0
  567. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/awwp95szKjLN7ecKC_knYGqSFX7fSIUN6aZfZSoK4go.cache +0 -0
  568. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/eig6G1BJ-j9pGq5RPVMS9Cmvn7nakwaVXPq90vUHgKs.cache +0 -0
  569. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/fQiwSLHPGLt9xUsMdzBglecADfd5SGATxEKOUDxePOo.cache +0 -0
  570. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/i3N0DSXGvRRg0BF1YoJJd_52rtjmqO5Zy_WJHhCK_SU.cache +0 -0
  571. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ifp6TJcnElIgAgoEnzp7h173vAPS2b_hV99iT3bIaeg.cache +0 -1
  572. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ig4TdWe55SjdcxcthsOWcxW6pD5p5T5yvoI9UZk4tzo.cache +0 -1
  573. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/itUCfrh3_d5Stb30DlzPyp8xBez_ihj3HSjsBz_buj0.cache +0 -1
  574. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/jjBiQML_-zapUosiuN4R7E-v2MGXi3cSgqgu44cSboI.cache +0 -1
  575. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kJJHbTAj0gfHTHe7SwyrDde9c6Wz20jyjpICW1lQXVI.cache +0 -1
  576. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/mQUdgT-kaSCiyzjlt_DjQlQLcdTeVR_UwGTfj6RyUhw.cache +0 -0
  577. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/mhppkHYKedw1D45pTSIgAaK8aPwa-61oK6VU1yv7mlU.cache +0 -1
  578. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/nCA8yu9Sf4QC4K-18I_0jII5fONXaFRlWhNDI52RA4U.cache +0 -0
  579. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/nXXG62qHvWbFPSgpcxpQ_VWcIu-BXR9P4zA54KD_fHY.cache +0 -1
  580. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ndllAoNfPEEfReDwVClrYXSdHpBmbi8Hyoa8TVtp_nw.cache +0 -1
  581. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ovktwT4Z3LJ42X2PtvmuE8WzJclW1pydtXK5Icnjapw.cache +0 -1
  582. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/qMpFwkpP4pxaIPmEQA8PjZKJAnd8_aZf101xb5KgG-c.cache +0 -1
  583. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ra0wYmmMO_cVvD0F1_bd5Jk2OtOw30a-V5EUKMAhVIs.cache +0 -1
  584. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/rcxZsgqkP6uHpfByzSlM8MYKyvYYNC3GTKQEVcH88qI.cache +0 -0
  585. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/snLYw6JqpKRTvfqS8uC_CpxgO5ICMRl6yMQ3JhkkXqg.cache +0 -0
  586. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/t6x0P0LXTZlmYmAC9Zb68VAvfVCbdCXowqZ31EZ7MMc.cache +0 -0
  587. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/tJ1hZitr9E7tU2fBXHa1XY1Qn0Xu32tvtWBNHTWRs2k.cache +0 -0
  588. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/uhng0EJ9KNc7C0F3tjkN2sRG60CTdeYYFLvEkNEPN8Q.cache +0 -0
  589. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/wjGQ83eLLyfwUKfmEo2150b_UXSlpjawbM9RWuJjYjo.cache +0 -1
  590. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/wqjwU5FaMCT0BHLpOZkSxg8xjY6dXfHPecYuTADlq34.cache +0 -0
  591. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/yV0IvTZoNHsT6GqHF29v9GfAHmeBS-2coAxSUyPgan8.cache +0 -0
  592. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/zX93aE_0W-BXHDy1Df1dnercScDqeqxi103TIzHJ6TQ.cache +0 -1
@@ -0,0 +1,43 @@
1
+ class AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation < BazaModels::Model
2
+ belongs_to :group, foreign_key: "group_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::Group"
3
+ belongs_to :handler, foreign_key: "handler_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::Handler"
4
+ belongs_to :translation_key, foreign_key: "translation_key_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationKey"
5
+
6
+ validates_presence_of :handler, :translation_key
7
+
8
+ delegate :key, :last_key, to: :translation_key
9
+ delegate :value, to: :translation, prefix: true
10
+ delegate :array_translation?, :file_line_content, :file_line_content?, :translated_value_for_locale, to: :translation
11
+
12
+ def key_show_with_fallback
13
+ key_show.presence || last_key
14
+ end
15
+
16
+ def translation
17
+ @translation ||= AwesomeTranslations::Translation.new(
18
+ key: key,
19
+ dir: dir,
20
+ full_path: full_path,
21
+ file_path: file_path,
22
+ line_no: line_no
23
+ )
24
+ end
25
+
26
+ def finished?
27
+ @finished ||= translation.finished?
28
+ end
29
+
30
+ def unfinished?
31
+ !finished?
32
+ end
33
+
34
+ def array_key
35
+ return unless (match = key.match(/\A(.+)\[(\d+)\]\Z/))
36
+ match[1]
37
+ end
38
+
39
+ def array_no
40
+ return unless (match = key.match(/\A(.+)\[(\d+)\]\Z/))
41
+ match[2].to_i
42
+ end
43
+ end
@@ -0,0 +1,13 @@
1
+ class AwesomeTranslations::CacheDatabaseGenerator::TranslationKey < BazaModels::Model
2
+ belongs_to :group, foreign_key: "group_id"
3
+ belongs_to :handler, foreign_key: "handler_id"
4
+
5
+ has_many :handler_translations, dependent: :destroy, foreign_key: "translation_key_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation"
6
+ has_many :translation_values, dependent: :destroy, foreign_key: "translation_key_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationValue"
7
+
8
+ validates_presence_of :group, :handler
9
+
10
+ def last_key
11
+ key.to_s.split('.').last
12
+ end
13
+ end
@@ -0,0 +1,24 @@
1
+ class AwesomeTranslations::CacheDatabaseGenerator::TranslationValue < BazaModels::Model
2
+ belongs_to :translation_key, foreign_key: "translation_key_id", class_name: "AwesomeTranslations::CacheDatabaseGenerator::TranslationKey"
3
+
4
+ validates_presence_of :translation_key
5
+
6
+ delegate :key, to: :translation_key
7
+
8
+ def calculated_translation_file_path
9
+ "#{handler_translation.dir}/#{locale}.yml"
10
+ end
11
+
12
+ def handler_translation
13
+ @handler_translation ||= AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation
14
+ .find_by(translation_key_id: translation_key_id)
15
+ end
16
+
17
+ def migrate_to_awesome_translations_namespace!
18
+ AwesomeTranslations::TranslationMigrator.new(
19
+ translation_key: translation_key,
20
+ handler_translation: handler_translation,
21
+ translation_value: self
22
+ ).execute
23
+ end
24
+ end
@@ -0,0 +1,266 @@
1
+ class AwesomeTranslations::CacheDatabaseGenerator
2
+ AutoAutoloader.autoload_sub_classes(self, __FILE__)
3
+
4
+ attr_reader :db
5
+
6
+ def self.current
7
+ @current ||= AwesomeTranslations::CacheDatabaseGenerator.new
8
+ end
9
+
10
+ def initialize(args = {})
11
+ require "baza"
12
+
13
+ @args = args
14
+ @debug = @args[:debug] || false
15
+
16
+ init_database
17
+ execute_migrations
18
+ end
19
+
20
+ def init_database
21
+ @initialized = true
22
+ @db = Baza::Db.new(type: :sqlite3, path: database_path, debug: false)
23
+
24
+ AwesomeTranslations::CacheDatabaseGenerator::Group.db = @db
25
+ AwesomeTranslations::CacheDatabaseGenerator::Group.table_name = "groups"
26
+
27
+ AwesomeTranslations::CacheDatabaseGenerator::Handler.db = @db
28
+ AwesomeTranslations::CacheDatabaseGenerator::Handler.table_name = "handlers"
29
+
30
+ AwesomeTranslations::CacheDatabaseGenerator::TranslationKey.db = @db
31
+ AwesomeTranslations::CacheDatabaseGenerator::TranslationKey.table_name = "translation_keys"
32
+
33
+ AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation.db = @db
34
+ AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation.table_name = "handler_translations"
35
+
36
+ AwesomeTranslations::CacheDatabaseGenerator::TranslationValue.db = @db
37
+ AwesomeTranslations::CacheDatabaseGenerator::TranslationValue.table_name = "translation_values"
38
+ end
39
+
40
+ def close
41
+ @initialized = false
42
+
43
+ @db.close if @db
44
+ @db = nil
45
+
46
+ AwesomeTranslations::CacheDatabaseGenerator::Group.db = nil
47
+ AwesomeTranslations::CacheDatabaseGenerator::Handler.db = nil
48
+ AwesomeTranslations::CacheDatabaseGenerator::TranslationKey.db = nil
49
+ AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation.db = nil
50
+ AwesomeTranslations::CacheDatabaseGenerator::TranslationValue.db = nil
51
+ end
52
+
53
+ def cache_translations
54
+ cache_yml_translations
55
+ cache_handler_translations
56
+
57
+ clean_up_not_found
58
+ end
59
+
60
+ def with_transactioner
61
+ require "active-record-transactioner"
62
+
63
+ ActiveRecordTransactioner.new do |transactioner|
64
+ @transactioner = transactioner
65
+ yield
66
+ end
67
+ end
68
+
69
+ def cache_yml_translations
70
+ cache_translations_in_dir(Rails.root.join("config", "locales"))
71
+ end
72
+
73
+ def cache_handler_translations
74
+ cache_translations_in_handlers
75
+ end
76
+
77
+ def initialized?
78
+ @initialized ||= false
79
+ end
80
+
81
+ def self.database_path
82
+ @database_path ||= Rails.root.join("db", "awesome_translations.sqlite3").to_s
83
+ end
84
+
85
+ def database_path
86
+ @database_path ||= self.class.database_path
87
+ end
88
+
89
+ def update_handlers
90
+ @handlers_found ||= {}
91
+
92
+ AwesomeTranslations::Handler.all.each do |handler|
93
+ handler_model = AwesomeTranslations::CacheDatabaseGenerator::Handler.find_or_initialize_by(identifier: handler.id)
94
+ handler_model.assign_attributes(name: handler.name)
95
+ handler_model.save!
96
+
97
+ @handlers_found[handler_model.id] = true
98
+
99
+ yield handler, handler_model if block_given?
100
+ end
101
+ end
102
+
103
+ def update_groups_for_handler(handler, handler_model)
104
+ @groups_found ||= {}
105
+
106
+ handler.groups.each do |group|
107
+ group_model = AwesomeTranslations::CacheDatabaseGenerator::Group.find_or_initialize_by(
108
+ handler_id: handler_model.id,
109
+ identifier: group.id
110
+ )
111
+ group_model.assign_attributes(name: group.name)
112
+ group_model.save!
113
+
114
+ @groups_found[group_model.id] = true
115
+
116
+ yield group, group_model if block_given?
117
+ end
118
+ end
119
+
120
+ def update_translations_for_group(handler_model, group, group_model)
121
+ @translation_keys_found ||= {}
122
+ @handler_translations_found ||= {}
123
+
124
+ group.translations.each do |translation|
125
+ translation_key = AwesomeTranslations::CacheDatabaseGenerator::TranslationKey.find_or_initialize_by(key: translation.key)
126
+ translation_key.assign_attributes(group_id: group_model.id, handler_id: handler_model.id)
127
+ translation_key.save!
128
+
129
+ raise "KEY ERROR: #{translation_key.inspect}" unless translation_key.id.to_i > 0
130
+
131
+ @translation_keys_found[translation_key.id] = true
132
+
133
+ handler_translation = AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation.find_or_initialize_by(
134
+ translation_key_id: translation_key.id,
135
+ handler_id: handler_model.id,
136
+ group_id: group_model.id
137
+ )
138
+ handler_translation.assign_attributes(
139
+ default: translation.default,
140
+ file_path: translation.file_path,
141
+ line_no: translation.line_no,
142
+ key_show: translation.key_show,
143
+ full_path: translation.full_path,
144
+ dir: translation.dir
145
+ )
146
+
147
+ if @transactioner && handler_translation.persisted?
148
+ @transactioner.save!(handler_translation)
149
+ else
150
+ handler_translation.save!
151
+ end
152
+
153
+ @handler_translations_found[handler_translation.id] = true
154
+ end
155
+ end
156
+
157
+ private
158
+
159
+ def debug(message)
160
+ print "#{message}\n" if @debug
161
+ end
162
+
163
+ def execute_migrations
164
+ require "baza_migrations"
165
+
166
+ executor = BazaMigrations::MigrationsExecutor.new(db: @db)
167
+ executor.add_dir "#{File.dirname(__FILE__)}/../../db/baza_translations_migrations"
168
+ executor.execute_migrations
169
+ end
170
+
171
+ def cache_translations_in_handlers
172
+ with_transactioner do
173
+ update_handlers do |handler, handler_model|
174
+ update_groups_for_handler(handler, handler_model) do |group, group_model|
175
+ update_translations_for_group(handler_model, group, group_model)
176
+ end
177
+ end
178
+ end
179
+ end
180
+
181
+ def cache_translations_in_dir(dir_path)
182
+ debug "Looking for translations in #{dir_path}"
183
+ @translation_values_found ||= {}
184
+
185
+ Dir.foreach(dir_path) do |file|
186
+ next if file == "." || file == ".."
187
+
188
+ full_path = "#{dir_path}/#{file}"
189
+
190
+ if File.directory?(full_path)
191
+ cache_translations_in_dir(full_path)
192
+ elsif File.extname(full_path) == ".yml"
193
+ cache_translations_in_file(full_path)
194
+ end
195
+ end
196
+ end
197
+
198
+ def cache_translations_in_file(file_path)
199
+ @translation_keys_found ||= {}
200
+
201
+ debug "Cache translations in #{file_path}"
202
+
203
+ i18n_hash = YAML.load_file(file_path)
204
+ debug "Hash: #{i18n_hash}"
205
+
206
+ i18n_hash.each do |locale, translations|
207
+ cache_translations_in_hash(file_path, locale, translations)
208
+ end
209
+ end
210
+
211
+ def cache_translations_in_hash(file_path, locale, i18n_hash, keys = [])
212
+ i18n_hash.each do |key, value|
213
+ current_key = keys.clone
214
+ current_key << key
215
+
216
+ if value.is_a?(Hash)
217
+ debug "Found new hash: #{current_key.join(".")}"
218
+ cache_translations_in_hash(file_path, locale, value, current_key)
219
+ else
220
+ debug "Found new key: #{current_key.join(".")} translated to #{value}"
221
+
222
+ key = current_key.join(".")
223
+
224
+ translation_key = AwesomeTranslations::CacheDatabaseGenerator::TranslationKey.find_or_create_by!(key: key)
225
+ @translation_keys_found[translation_key.id] = true
226
+ raise "KEY ERROR: #{translation_key.inspect}" unless translation_key.id.to_i > 0
227
+
228
+ translation_value = AwesomeTranslations::CacheDatabaseGenerator::TranslationValue.find_or_initialize_by(
229
+ translation_key_id: translation_key.id,
230
+ locale: locale
231
+ )
232
+ translation_value.assign_attributes(
233
+ file_path: file_path,
234
+ value: value
235
+ )
236
+ translation_value.save!
237
+
238
+ @translation_values_found[translation_value.id] = true
239
+ end
240
+ end
241
+ end
242
+
243
+ def clean_up_not_found
244
+ @db.transaction do
245
+ AwesomeTranslations::CacheDatabaseGenerator::Handler
246
+ .where.not(id: @handlers_found.keys)
247
+ .destroy_all
248
+
249
+ AwesomeTranslations::CacheDatabaseGenerator::HandlerTranslation
250
+ .where.not(id: @handler_translations_found.keys)
251
+ .destroy_all
252
+
253
+ AwesomeTranslations::CacheDatabaseGenerator::Group
254
+ .where.not(id: @groups_found.keys)
255
+ .destroy_all
256
+
257
+ AwesomeTranslations::CacheDatabaseGenerator::TranslationKey
258
+ .where.not(id: @translation_keys_found.keys)
259
+ .destroy_all
260
+
261
+ AwesomeTranslations::CacheDatabaseGenerator::TranslationValue
262
+ .where.not(id: @translation_values_found.keys)
263
+ .destroy_all
264
+ end
265
+ end
266
+ end
@@ -1,3 +1,7 @@
1
+ require "haml-rails"
2
+ require "sass-rails"
3
+ require "jquery-rails"
4
+
1
5
  class AwesomeTranslations::Engine < ::Rails::Engine
2
6
  isolate_namespace AwesomeTranslations
3
7
  end
@@ -1,11 +1,10 @@
1
1
  # Used to find translations in the Rails app by inspecting .erb- and .haml-files.
2
2
  class AwesomeTranslations::ErbInspector
3
- autoload :FileInspector, "#{File.dirname(__FILE__)}/erb_inspector/file_inspector"
4
- autoload :TranslationInspector, "#{File.dirname(__FILE__)}/erb_inspector/translation_inspector"
3
+ AutoAutoloader.autoload_sub_classes(self, __FILE__)
5
4
 
6
5
  def initialize(args = {})
7
6
  @args = args
8
- @args[:exts] ||= [".erb", ".haml", ".rb"]
7
+ @args[:exts] ||= [".erb", ".haml", ".rb", ".rake"]
9
8
 
10
9
  if @args[:dirs]
11
10
  @dirs = @args[:dirs]
@@ -5,8 +5,10 @@ class AwesomeTranslations::Handlers::ErbHandler < AwesomeTranslations::Handlers:
5
5
  def groups
6
6
  ArrayEnumerator.new do |yielder|
7
7
  erb_inspector.files.each do |file|
8
- yielder << AwesomeTranslations::Group.new(
9
- id: Base64.urlsafe_encode64(file.full_path),
8
+ id = file.file_path.gsub(/[^A-z0-9]/, "_")
9
+
10
+ group = AwesomeTranslations::Group.new(
11
+ id: id,
10
12
  handler: self,
11
13
  data: {
12
14
  name: file.file_path,
@@ -15,6 +17,8 @@ class AwesomeTranslations::Handlers::ErbHandler < AwesomeTranslations::Handlers:
15
17
  file_path: file.file_path
16
18
  }
17
19
  )
20
+
21
+ yielder << group if translations_for_group(group).any?
18
22
  end
19
23
  end
20
24
  end
@@ -22,7 +26,7 @@ class AwesomeTranslations::Handlers::ErbHandler < AwesomeTranslations::Handlers:
22
26
  def translations_for_group(group)
23
27
  ArrayEnumerator.new do |yielder|
24
28
  # Parse views for translations.
25
- file = erb_inspector.file(group.data[:root_path], group.data[:file_path])
29
+ file = erb_inspector.file(group.data.fetch(:root_path), group.data.fetch(:file_path))
26
30
  file.translations.each do |translation|
27
31
  next if translation.global?
28
32
  yielder << translation.model
@@ -2,8 +2,10 @@ class AwesomeTranslations::Handlers::LibraryHandler < AwesomeTranslations::Handl
2
2
  def groups
3
3
  ArrayEnumerator.new do |yielder|
4
4
  erb_inspector.files.each do |file|
5
- yielder << AwesomeTranslations::Group.new(
6
- id: Base64.urlsafe_encode64(file.full_path),
5
+ id = file.file_path.gsub(/[^A-z0-9]/, "_")
6
+
7
+ group = AwesomeTranslations::Group.new(
8
+ id: id,
7
9
  handler: self,
8
10
  data: {
9
11
  name: file.file_path,
@@ -12,6 +14,8 @@ class AwesomeTranslations::Handlers::LibraryHandler < AwesomeTranslations::Handl
12
14
  file_path: file.file_path
13
15
  }
14
16
  )
17
+
18
+ yielder << group if translations_for_group(group).any?
15
19
  end
16
20
  end
17
21
  end
@@ -31,7 +35,7 @@ private
31
35
 
32
36
  def erb_inspector
33
37
  @erb_inspector ||= AwesomeTranslations::ErbInspector.new(
34
- exts: ['.rb']
38
+ exts: ['.rb', '.rake']
35
39
  )
36
40
  end
37
41
  end
@@ -20,6 +20,7 @@ class AwesomeTranslations::Handlers::ModelHandler < AwesomeTranslations::Handler
20
20
  paperclip_attachments(model_inspector).each { |translation| yielder << translation }
21
21
  relationships(model_inspector).each { |translation| yielder << translation }
22
22
  monetized_attributes(model_inspector).each { |translation| yielder << translation }
23
+ globalize_attributes(model_inspector).each { |translation| yielder << translation }
23
24
  end
24
25
  end
25
26
 
@@ -106,4 +107,17 @@ private
106
107
 
107
108
  return result
108
109
  end
110
+
111
+ def globalize_attributes(model_inspector)
112
+ result = []
113
+
114
+ model_inspector.globalize_attributes do |name|
115
+ result << AwesomeTranslations::Translation.new(
116
+ key: model_inspector.attribute_key(name),
117
+ dir: dir_path(model_inspector)
118
+ )
119
+ end
120
+
121
+ return result
122
+ end
109
123
  end
@@ -1,27 +1,28 @@
1
1
  class AwesomeTranslations::Handlers
2
- @handlers = []
2
+ AutoAutoloader.autoload_sub_classes(self, __FILE__)
3
3
 
4
- Dir.foreach("#{File.dirname(__FILE__)}/handlers") do |file|
5
- match = file.match(/\A(.+)_handler\.rb\Z/)
6
- next unless match
4
+ def self.list
5
+ unless @handlers
6
+ @handlers = []
7
7
 
8
- const_name_snake = "#{match[1]}_handler"
9
- const_name_camel = StringCases.snake_to_camel(const_name_snake)
8
+ Dir.foreach("#{File.dirname(__FILE__)}/handlers") do |file|
9
+ match = file.match(/\A(.+)_handler\.rb\Z/)
10
+ next unless match
10
11
 
11
- autoload const_name_camel.to_sym, "#{File.dirname(__FILE__)}/handlers/#{const_name_snake}"
12
+ const_name_snake = "#{match[1]}_handler"
13
+ next if const_name_snake == "base_handler"
14
+ const_name_camel = StringCases.snake_to_camel(const_name_snake)
12
15
 
13
- unless const_name_snake == "base_handler"
14
- @handlers << AwesomeTranslations::Handler.new(
15
- id: const_name_snake,
16
- const_name: const_name_camel,
17
- name: const_name_camel
18
- )
19
- end
20
- end
16
+ handler = AwesomeTranslations::Handler.new(
17
+ id: const_name_snake,
18
+ const_name: const_name_camel,
19
+ name: const_name_camel
20
+ )
21
21
 
22
- @handlers = @handlers.select { |handler| handler.instance.enabled? }
22
+ @handlers << handler if handler.instance.enabled?
23
+ end
24
+ end
23
25
 
24
- def self.list
25
26
  @handlers
26
27
  end
27
28
  end
@@ -15,7 +15,7 @@ class AwesomeTranslations::ModelInspector
15
15
 
16
16
  ArrayEnumerator.new do |yielder|
17
17
  find_subclasses(ActiveRecord::Base) do |model_inspector|
18
- next if @skip.include? model_inspector.clazz.name
18
+ next if !model_inspector.clazz.name || @skip.include?(model_inspector.clazz.name)
19
19
  yielder << model_inspector
20
20
  end
21
21
  end
@@ -48,6 +48,14 @@ class AwesomeTranslations::ModelInspector
48
48
  end
49
49
  end
50
50
 
51
+ def globalize_attributes
52
+ return if !::Kernel.const_defined?('Globalize') || !@clazz.respond_to?(:translated_attribute_names)
53
+
54
+ @clazz.translated_attribute_names.each do |attribute|
55
+ yield attribute.to_s
56
+ end
57
+ end
58
+
51
59
  def snake_name
52
60
  clazz.name.gsub("::", "/").split("/").map { |part| ::StringCases.camel_to_snake(part) }.join("/")
53
61
  end
@@ -0,0 +1,94 @@
1
+ # Transfers manual made translations also found in handlers over into the AwesomeTranslations namespace
2
+ class AwesomeTranslations::TranslationMigrator
3
+ def initialize(args)
4
+ require "fileutils"
5
+
6
+ @handler_translation = args.fetch(:handler_translation)
7
+ @translation_value = args.fetch(:translation_value)
8
+ @translation_key = @handler_translation.translation_key
9
+
10
+ @key_parts = @translation_key.key.split(".")
11
+
12
+ @locale = @translation_value.locale
13
+
14
+ @old_path = @translation_value.file_path
15
+ @new_path = "#{@handler_translation.dir}/#{@translation_value.locale}.yml"
16
+ end
17
+
18
+ def execute
19
+ remove_from_old_file
20
+ end
21
+
22
+ private
23
+
24
+ def remove_from_old_file
25
+ translations_hash = YAML.load_file(@old_path)
26
+
27
+ new_translations_hash = YAML.load_file(@new_path) if File.exist?(@new_path)
28
+ new_translations_hash ||= {}
29
+ new_translations_hash[@locale] ||= {}
30
+
31
+ pointer = translations_hash.fetch(@locale)
32
+
33
+ transfer_from_old_hash_to_new(
34
+ new_translations_hash.fetch(@locale),
35
+ @key_parts.clone,
36
+ pointer
37
+ )
38
+
39
+ clean_empty_hash(translations_hash)
40
+
41
+ FileUtils.mkdir_p(File.dirname(@new_path))
42
+ File.open(@new_path, "w") { |fp| fp.write(YAML.dump(new_translations_hash)) }
43
+
44
+ if translations_hash.empty?
45
+ I18n.load_path.delete(@old_path)
46
+ File.unlink(@old_path)
47
+ else
48
+ File.open(@old_path, "w") { |fp| fp.write(YAML.dump(translations_hash)) }
49
+ end
50
+
51
+ @translation_value.update_attributes!(file_path: @new_path)
52
+ end
53
+
54
+ def transfer_from_old_hash_to_new(new_hash, current_parts, current_pointer)
55
+ new_part = current_parts.shift
56
+ new_pointer = current_pointer.fetch(new_part)
57
+
58
+ if current_parts.empty?
59
+ new_hash[new_part] = current_pointer.delete(new_part)
60
+ else
61
+ new_hash[new_part] ||= {}
62
+ end
63
+
64
+ if new_pointer.is_a?(Hash)
65
+ transfer_from_old_hash_to_new(
66
+ new_hash.fetch(new_part),
67
+ current_parts,
68
+ new_pointer
69
+ )
70
+ end
71
+ end
72
+
73
+ # Cleans out empty keys, if they don't contain translations
74
+ def clean_empty_hash(hash)
75
+ all_empty = true
76
+
77
+ hash.delete_if do |key, value|
78
+ next unless value.is_a?(Hash)
79
+
80
+ if value.empty?
81
+ true
82
+ else
83
+ clean_empty_hash(value)
84
+
85
+ if value.empty?
86
+ true
87
+ else
88
+ all_empty = false
89
+ false
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -1,3 +1,3 @@
1
1
  module AwesomeTranslations
2
- VERSION = '0.0.24'
2
+ VERSION = '0.0.25'
3
3
  end
@@ -1,17 +1,10 @@
1
+ require "auto_autoloader"
2
+ require "baza_models"
1
3
  require "string-cases"
2
4
  require "array_enumerator"
3
5
 
4
6
  module AwesomeTranslations
5
- path = "#{File.dirname(__FILE__)}/awesome_translations"
6
-
7
- autoload :Config, "#{path}/config"
8
- autoload :ControllerTranslateFunctionality, "#{path}/controller_translate_functionality"
9
- autoload :ErbInspector, "#{path}/erb_inspector"
10
- autoload :GlobalTranslator, "#{path}/global_translator"
11
- autoload :Handlers, "#{path}/handlers"
12
- autoload :ModelInspector, "#{path}/model_inspector"
13
- autoload :ObjectExtensions, "#{path}/object_extensions"
14
- autoload :TranslateFunctionality, "#{path}/translate_functionality"
7
+ AutoAutoloader.autoload_sub_classes(self, __FILE__)
15
8
 
16
9
  def self.config
17
10
  @config ||= AwesomeTranslations::Config.new