revelry_data 0.0.7

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 (608) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +29 -0
  3. data/README.md +78 -0
  4. data/Rakefile +29 -0
  5. data/app/assets/javascripts/revelry_data/components/forms/StoreForm.es6 +63 -0
  6. data/app/assets/javascripts/revelry_data/components/forms/StoreInput.es6 +51 -0
  7. data/app/assets/javascripts/revelry_data/mixins/StoreInputMixin.es6 +62 -0
  8. data/app/assets/javascripts/revelry_data/mixins/StoreToModel.es6 +7 -0
  9. data/app/assets/javascripts/revelry_data/models/BaseCollection.es6 +39 -0
  10. data/app/assets/javascripts/revelry_data/models/BaseModel.es6 +97 -0
  11. data/app/assets/javascripts/revelry_data/models/CollectionQueryParameters.es6 +251 -0
  12. data/app/assets/javascripts/revelry_data/store.es6 +638 -0
  13. data/app/assets/javascripts/revelry_data/utils.es6 +32 -0
  14. data/app/assets/javascripts/revelry_data.js +10 -0
  15. data/app/assets/javascripts/vendor/backbone-jsonapi.js +117 -0
  16. data/app/assets/javascripts/vendor/jsonpath.js +246 -0
  17. data/app/assets/javascripts/vendor/underscore.inflections.js +279 -0
  18. data/app/assets/stylesheets/revelry_data/application.css +15 -0
  19. data/app/controllers/revelry_data/application_controller.rb +4 -0
  20. data/app/helpers/revelry_data/application_helper.rb +4 -0
  21. data/app/views/layouts/revelry_data/application.html.erb +14 -0
  22. data/config/routes.rb +2 -0
  23. data/lib/revelry_data/engine.rb +12 -0
  24. data/lib/revelry_data/jsonapi_resources_patch.rb +45 -0
  25. data/lib/revelry_data/resource_controller_concern.rb +63 -0
  26. data/lib/revelry_data/version.rb +3 -0
  27. data/lib/revelry_data.rb +8 -0
  28. data/lib/tasks/revelry_data_tasks.rake +4 -0
  29. data/spec/dummy/README.rdoc +28 -0
  30. data/spec/dummy/Rakefile +6 -0
  31. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  32. data/spec/dummy/app/assets/javascripts/revelry-app.js +1 -0
  33. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  34. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  35. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  36. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  37. data/spec/dummy/bin/bundle +3 -0
  38. data/spec/dummy/bin/rails +4 -0
  39. data/spec/dummy/bin/rake +4 -0
  40. data/spec/dummy/bin/setup +29 -0
  41. data/spec/dummy/config/application.rb +26 -0
  42. data/spec/dummy/config/boot.rb +5 -0
  43. data/spec/dummy/config/database.yml +25 -0
  44. data/spec/dummy/config/environment.rb +5 -0
  45. data/spec/dummy/config/environments/development.rb +41 -0
  46. data/spec/dummy/config/environments/production.rb +79 -0
  47. data/spec/dummy/config/environments/test.rb +42 -0
  48. data/spec/dummy/config/initializers/assets.rb +11 -0
  49. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  50. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  51. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  52. data/spec/dummy/config/initializers/inflections.rb +16 -0
  53. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  54. data/spec/dummy/config/initializers/session_store.rb +3 -0
  55. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  56. data/spec/dummy/config/locales/en.yml +23 -0
  57. data/spec/dummy/config/routes.rb +3 -0
  58. data/spec/dummy/config/secrets.yml +22 -0
  59. data/spec/dummy/config.ru +4 -0
  60. data/spec/dummy/db/development.sqlite3 +0 -0
  61. data/spec/dummy/db/test.sqlite3 +0 -0
  62. data/spec/dummy/log/development.log +14040 -0
  63. data/spec/dummy/log/test.log +737 -0
  64. data/spec/dummy/public/404.html +67 -0
  65. data/spec/dummy/public/422.html +67 -0
  66. data/spec/dummy/public/500.html +66 -0
  67. data/spec/dummy/public/favicon.ico +0 -0
  68. data/spec/dummy/spec/javascripts/models/base_collection_spec.js +18 -0
  69. data/spec/dummy/spec/javascripts/models/base_model_spec.js +38 -0
  70. data/spec/dummy/spec/javascripts/relationships_spec.js +66 -0
  71. data/spec/dummy/spec/javascripts/stores_spec.js +126 -0
  72. data/spec/dummy/spec/javascripts/support/jasmine.yml +50 -0
  73. data/spec/dummy/spec/javascripts/utils_spec.js +24 -0
  74. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-Jq2CqQ2C88jBPMKbSlkTKDD54VGjdhEBPpOQ2VMxd0.cache +0 -0
  75. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-N30gcxeBUddnenlUCUoIH2ShXILvmzZjUSCOShdTmo.cache +1 -0
  76. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-OatTmibsBxUXfKMcNaDK4kEf9choGmT6oF92R94ci4.cache +0 -0
  77. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-RHSoj7DxYtvBwxPu0Ygqh45VES-Q5rMBFCRDIYm-QI.cache +2 -0
  78. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-TFXkww0ePd0u43gE9v3VhKLoyAxQvDxLW_nXg1zjGU.cache +1 -0
  79. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-VJjkhct7Mc3k9NchZ3LdSTq8JhtXJ1BaZUIso7Nqy4.cache +1 -0
  80. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-dEhln5YffzXaJXZOLugB1fhq-kkWhE_snDZbl7sVVo.cache +0 -0
  81. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-dSpcTjX4q0qiIXxbKyVV24UKRQ7VUgwFturzaDAwZg.cache +2 -0
  82. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/-mVhB9VdWeAmSu_gfBG79snZaZY0lLOtYf-5ZLGz7vY.cache +1 -0
  83. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/02ESKj-rwiY30Bqpg7b_Dx8QEdbvZTcnZ5pakBsGZBw.cache +2 -0
  84. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/06iWLkMHRPCA5zhZIIZO0IxtP7C0OCVw72Mi_GLg6T0.cache +1 -0
  85. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0DLxn7jkIwXp_jBaXmjv9KumVWAXnzkGfJHLkVg--3M.cache +1 -0
  86. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0IqDziTSU_YjFPcYS6CrX7vVD3hp5ngxUYQbNMAw8SY.cache +2 -0
  87. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0PQ_HXFA3RL90fXm4G0LaTinFWBtdKolgwFY6M4lnCs.cache +0 -0
  88. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0ULPgu38eKAinehDaaJN_8ckLJqMw7hXyuPKLQmFYJQ.cache +1 -0
  89. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0UPLuwGf7ALqnODxQGQwBm3U4YffKUAV1wF1EuROZSw.cache +3 -0
  90. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0VTYWOLehl-DGek9fh29jy-Az-AtOZYaPsjcq6oWL_4.cache +1 -0
  91. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0bBXdT1DZLPkigOSlzm2PNjtiqyHMCr_egMbu8rPi1g.cache +1 -0
  92. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0eB8rENe3QkirvikOO390vJugG1uVOdZQsa_xGjrukE.cache +1 -0
  93. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0omciF7eiX4I2Nv8mEue33mX2JJz8uPjH1PJRq9pdgM.cache +2 -0
  94. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0qlNbZwatNGPBdOHJV_rLM-X9Fzt6PlQvsLs9zN6bJE.cache +3 -0
  95. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/0tWS_oY7CkC2t_QNJxK-RMRhx31ghMw6af-59TKRx9I.cache +2 -0
  96. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/10R79iz4FIbWh4cM23FUWYqTuy3jsYmrGJrN0jlnB8I.cache +1 -0
  97. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1HxypFIAXQkyi--ea10tptN1uGVxqCfM_N7Vzyg_OL0.cache +0 -0
  98. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1McwSShN7VSPwc_pWYj6m1u0PNW8os5BU_eB02kie5w.cache +0 -0
  99. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1N2f6H4skM7mddMlkPEsABgw6-rfaDGtWm0vmByuF7o.cache +1 -0
  100. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1g8nxDcbbSS5XwzgtQ-VG2JqvK2msk9NftGZ7-Mgs5o.cache +1 -0
  101. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1kXBy5FR7G1sfjtGl76nEg3yQfzKkvousTIcepm5KV4.cache +0 -0
  102. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/1xggkWTEcQxhqMvKHC9uLpM0zGoaM-XZ7SPpDOve0OY.cache +1 -0
  103. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/21xxVTyXWYest-foXLaXp7Mw11futHW4HSd3uydptBc.cache +2 -0
  104. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/28T_7aN6jWJXDT1Jw4UlTFeIgvUHLS5usXst5R-5aWY.cache +2 -0
  105. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2EikyFgQjhaRnTUf4q-TvbrJ_ngfH0weczmW2MNBBhc.cache +1 -0
  106. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2_IkBhqAa2FGqhp9hLlHd5PyqNwrHbyZioLAf4PxOTE.cache +1 -0
  107. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2_XRXXxEnLAWpcuY3QEX17X6trcJlet00Q-Y4d5aHZU.cache +1 -0
  108. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2c4UIR8czL_IwxfCAgVEKwFAh7sE1dE7FP6kfZHtEB0.cache +2 -0
  109. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2ehu9PtrpPwxEAB8c2N3sZqciJzMCpi_Y7fRhI9G2Js.cache +2 -0
  110. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2frC453xc3Gp1RkkLBUvRTvEzR0wZMADSBA277igezg.cache +2 -0
  111. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2j4_XhVfYWRVk1_3R7319V8gVHFIZ5rCItXVwjqCwi0.cache +1 -0
  112. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2kCPWux65s0MH_Q88K15jBJYAFKoGiGwbARXMay4wMY.cache +1 -0
  113. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2lWcSlKelthijoeKRaluxaRQkdUeZcIzqkZHlsfIZu8.cache +1 -0
  114. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2o1qHurRbC6aSfgQBuly_sc9mqZidHGaY8FxnzDjBpY.cache +1 -0
  115. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2oHHVlY6pNOTVbRKTo8lkd7US1WOeTMsTxHZl8Ywby0.cache +1 -0
  116. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/2qyLh3RziXeicMIwRNPetXFQEJnTrPO99MevyjFmd3E.cache +1 -0
  117. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/3-wh13Rr9JQRz_GDI6Ua8IbZHOvwp0iMDRKfZnrDyZ8.cache +1 -0
  118. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/38SWHMnq4I11FgGe43n2o6YajPj5-CsC8ltWbHkJpJQ.cache +2 -0
  119. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/3NviqJSFvP9_pSTPTYxpCVFXGa_FlWdSXD5hEn_Edk8.cache +40 -0
  120. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/3OqzRZ2eml-WxJj5kNBvIVfXVZMDxcLn1MlOTSqHC5Q.cache +0 -0
  121. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/3fhAyDsuBQvkN55SPHih8tC0SMijB-9Pe6shQqFaJcQ.cache +1 -0
  122. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4HbRQMpv73XFE-dFcm5ExP6Ylb5IbOwjX3gEDciBfSw.cache +1 -0
  123. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4JPSH78HeFvFEVW_77pWjoB7uzWYqc2lGSJKv7G36Z4.cache +0 -0
  124. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4LVhAxIcV6tLTP2kwcAWnyZkcuTtMxRwzGoxUy1KCPI.cache +2 -0
  125. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4WPkVbzBr7gQYEcPAAK154bYivYR4ZV8YdTwXhQndCs.cache +0 -0
  126. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4aVXRaM2pU8zv9-ZrMezRV8f09Uwo20cpeNs_De6rDE.cache +0 -0
  127. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4lsO_QeZxV9hxv268VpNn14AT8J3H20SekPVE5V7hSg.cache +2 -0
  128. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/4uh0pd1sO6hN2qWn3eMUbDyT5X14OjdLckuby94YC54.cache +0 -0
  129. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/52WjeEIh3nhtVPPD4HUPI0E-c8Ll_ZlwizfRBgI3pK0.cache +1 -0
  130. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/59iZD65-QylvGiswmadjlRXc1NK05_ick9O_ONm-Xfc.cache +1 -0
  131. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5C2SsKUcK2R4SJ8CKir1cAOHPL1zRo2ngAvCq8UMwXs.cache +1 -0
  132. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5OoVMZ-BHTJlB4uhvCB8fOureU7hTtvYk-qi7nGthFE.cache +2 -0
  133. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5WuhHxqdt-g_qdsWoQMQRKGmD0WvKXJKI_9vNNNJpmg.cache +1 -0
  134. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5XFzHnERp_lRY7EXq3xAxBQfXdEkBUqG22yCxo1sWd0.cache +2 -0
  135. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5oRMGr-L2DCipfiV3Ezi9o_COjvQ-wyHVm6dJFOIho4.cache +0 -0
  136. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5vjm6VeMV5jyals45T7GLIxb3_khjcamzLUjQJkqWzE.cache +0 -0
  137. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/5xoy2vgpT7NeEmLMRk_ljKxe1TtWwXLVOQWp2TMcuCc.cache +2 -0
  138. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/61XNItEitswgzmKYWKrV4QnesiL2R_ZQixdGkEk9NhU.cache +1 -0
  139. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/62G2AzNcDA2NreyxNKUJr-9BaE8jT8MGOq68oENcle8.cache +2 -0
  140. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/69wBFEf6wuEuXIgtuEluXwcXK2N7XqVejCkIqguVjIc.cache +2 -0
  141. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6CZ_0IMxEwfrBoZjLipNYVW-etxe7dML0SgLYhLAtog.cache +1 -0
  142. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6RmSRS39oAnR7ieFkdM15b386DNJrCh50sEZV19qoZ0.cache +3 -0
  143. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6Yn69Y4ZQdj8BuhHwNBBgKHNa36TOVJXldrGK3w_LXo.cache +1 -0
  144. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6Zp_u47GrINLV_eyKoi9Eq61qID0sDWKy_gp7FrCJvQ.cache +1 -0
  145. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6b8f6QZw65uNB3pSU1SkufIP_nT64FJpH_KljR1S45Q.cache +0 -0
  146. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6f5Aa775gXoe0boDAjcUJP-WCWQ2S6ZtxDnvg0e7bdg.cache +2 -0
  147. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6oB_DrD_WpfP0ghYh7A7S6JtOrfrCLyb0h3qilanCUc.cache +1 -0
  148. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/6tf2jG5tIK-hsQma7gPVaaKt1z9tfPoCMzR_ku0BTjo.cache +2 -0
  149. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/72JXj-d7RJlgDYnOQrgDDFJqEa2DeG0aO7Pf7YA36qE.cache +1 -0
  150. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7Cc3cuQ0uuz6n4J0EqT2J3s6h2wsKwvdb0Crft0P4io.cache +1 -0
  151. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7DW5wrgDDReBBFn_7IHpVywKX9tHAUm0USoPvimeiLA.cache +0 -0
  152. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7GS1eE5BiOXz03riromFk0jcwHF2Jl_4GSASMc_AyZg.cache +2 -0
  153. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7PIlLWwG6HgMpdGDkbkz47hRqdKOc0RGy8zlWxt_5q0.cache +1 -0
  154. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7gJwK_28dCuoaXFbOKft2jtzAZQGAJV-2H9cEysfG8A.cache +1 -0
  155. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/7raKMk9qCcTh0CjWc4CQYAW4yiXWTET3fLhQ38594FU.cache +0 -0
  156. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/80G_eBBPKE4I7YLJKD6vVc57oYbE8vEHpI01oEdZoD8.cache +0 -0
  157. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/82s0CRjX8Z9-XhwrqSeKgbYLet0oPVJaXbH1TkJK8ck.cache +0 -0
  158. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/85Hjr2gxdt4FABu-GNk7S-0-esaeY8aoigeJwONHDXU.cache +2 -0
  159. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/87LKP8d2ZGN543diETnpzwwplFOh_IhC5nKtyHSs46w.cache +0 -0
  160. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8APxpyhjMa7vGiBHtisfozuK-Mo6mtYtWmWPf0oIT7Y.cache +0 -0
  161. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8H3Pk846Bve9DDkJLPZ-Z_PopjWkliOXBgnZviCxm8I.cache +0 -0
  162. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8I1a9Ul7NQKPmIWyaJuWe_MxvJvSC8BFS1niFvGB_gE.cache +1 -0
  163. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8QB8notpNZl2OXiJVlpLFKeGlUGs4xDD8oI8FjIH9Q0.cache +0 -0
  164. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8TglHdgs1S_LnOUplWQ0BpdBNSSWWg4WdOKTwXlNFoY.cache +1 -0
  165. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8ZfhC3EjgAtMRManVFTng2TfSkVdSq2GYbb9J8ZUBbY.cache +2 -0
  166. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8m-XZcIMi5Qhe2FdXzZHPAmdW0PKr3sE4FdszwkIyVQ.cache +1 -0
  167. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/8xpdwqwAmtSl1e7ZqpxxPMOimuOJBAg661RCcqO2SJs.cache +1 -0
  168. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/98RtYWQrU8jR5OutCUjp3gIekWg-UqOoCuEmcmVhdq0.cache +3 -0
  169. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/98ZoDssnpqHi70AFUVi8UnlamlvUwOjLelLAsVBV3y0.cache +1 -0
  170. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9GSsFU7q-bP09r7I90-qjbNUANfW43Uq5uVHf0f6Ais.cache +1 -0
  171. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9LK2JvH1eBpxQXW5nlHJAFSQ-F6DYIYDuXqvSRosSP0.cache +1 -0
  172. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9UZF7qb3K7xpU--VToM0VQG93Snmr33DNNI4dlQzjLY.cache +2 -0
  173. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9bPoEjjnmguAhsUQz_pyKppTjbDXyhw-B2usYT7JGTo.cache +2 -0
  174. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9dtbzIlDjQi9q2R_dSFXJfjIHQAl3wVeHf9BzKwq3iM.cache +0 -0
  175. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9ldVZFcL8eIDu5CKmQfjwpMTbCLoK_HO-7mj5Wb3lIQ.cache +0 -0
  176. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9nZCLw8lLJpLYpbVSIOe5HVGK5MO4a0oLqgH1wvPqcs.cache +1 -0
  177. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/9s8uiEeT3bBC2zbGJLNMmUzh7haE2PPEorB9t4batAc.cache +1 -0
  178. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/A3cWWeepIcxt6OWeRxYQ9fjWh_6zHGdFM9yyigrt9Kg.cache +2 -0
  179. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/A4SRJZOmBdDp35w6CZ2c9MmYldPFiRv7omTd5T5Xh6Q.cache +20 -0
  180. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/A94ngpLxSDRY2H_pWC28QBabkx1OPQD-KbpiWMm50PA.cache +0 -0
  181. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AERH8rqKtnpUACRTN7RcBc7jyquiRBtqNDzpeZpd72o.cache +1 -0
  182. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AGFHT0UreP61TPXP_Ypncn9XZ0LFuZtXWJGYvjzR_9A.cache +2 -0
  183. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AWtOKO1cT5gv50r7wsiQns5mvr-RQcflCU6_TKpO3uU.cache +1 -0
  184. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/A_w0HzGHxbFoWbZd9Y701P-KgF1oe87hBwt6WzYOaBI.cache +1 -0
  185. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Agb545BCP51YTtB7ZvcN3LIT18t7ma0i1NsUkWM7hmc.cache +0 -0
  186. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/AhXy7RmHfWeeGvp7QhcmbwtPSixXXBTB2C26v4gu8tM.cache +1 -0
  187. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/B0sZ0bMMyGsu5jiUbfQnGuzem__xr__x1htnjyn4kYA.cache +1 -0
  188. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/BQIMx61hrcBXea_QhZMds2rThGD9ATZXbRZ-JUtce8g.cache +0 -0
  189. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/CAfT_ZcO1TrC3a0DtImcPmC4VefOrw3pebN3yk8taz8.cache +1 -0
  190. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/CN3Axi-Nx6qeL8oLBS0TGW_sKmAaiD8ojF7crCeC2YQ.cache +1 -0
  191. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/CSV-_J9xrW3dtiu_tbrUf1quUdM2-_vmxlUzC_CEM90.cache +1 -0
  192. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/CVIrPA5fqfor3f_3li7iw--VAenWWAq00BJuZarhLrY.cache +0 -0
  193. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Cl5726f_GBCZsI8hdjNFKe1rgKXPygHpvc4IfiiFu1s.cache +1 -0
  194. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/CsuRGIbQ3MG907Mv26VNV4HsiVVgxwaonDTimkOxah8.cache +0 -0
  195. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/DG4AyPG4J0AanLUQ36kAP6wNK1iLp66DFJuAztZFUBw.cache +1 -0
  196. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/DOM9cN65fM7HmD0noR_QexvYUk4DUct0uOdCI4fG4fI.cache +1 -0
  197. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/DUVlLTOwhZ4piewCnM9EVeuJDzoHYUWH_DJm9ZkKXC4.cache +2 -0
  198. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/D_im0_-zNkAPqfJrRWTqI4gyvgcb_K3FCKBtLtdBclQ.cache +1 -0
  199. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Db3FvdQI3u49WwWXPjHi-_5TVQSFdX1USL9nO3kW66A.cache +1 -0
  200. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Dimdp_DEmT_aZ45YWYCgFUnVSKidMABiE6a3MkPJMVc.cache +2 -0
  201. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/DsLUP5OylIsXtmmogq_L1xlhjIiNpaKdFK6AaeeV9kE.cache +0 -0
  202. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/E1Vn_BL7zaW6A_ygwxc0wXtD3c7Z_VjOU3kXILxQn4I.cache +0 -0
  203. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/E8bWhZhmxeecvN1ND0d_jfbAfyQ3lCRutNsnBUmOWF4.cache +1 -0
  204. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/EAwx7KJjGRtIFDd9c6E5I9HCaatmMYDiCg93yeqgKtY.cache +1 -0
  205. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ED4CTqh-ylU1g4SRy79VVNFmvwnYXs8gEewIj8hUgGc.cache +1 -0
  206. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/EMVe3r8-Ih_u4-1UxIm7rH2ubhcRvGEfJB4JIVnrcbM.cache +1 -0
  207. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/EPQ0oTjmJ_EsCbnwbvPHg3bphVUbOjWc1LNfE6fyYXw.cache +1 -0
  208. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/EWruARUqM7Tl2u_b2AfHut7wNvjs7fitYzxHTAG0dEg.cache +1 -0
  209. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/EaYTGFodkPkm_GKpoFAgGkEzs0yi6C4gocaHKKTk0LY.cache +1 -0
  210. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/EjOkwKqOv_Sya9pAPXrHZfTdNGr8denoCePYmW6cLWM.cache +1 -0
  211. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ElhNhuWeZn2UhG4twLRUmYc9_tbjgq0xokxpkacwF10.cache +2 -0
  212. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Ep6zujNvnsIZw2IkS8h7XaDhC4vtAKsAoTWSW3a6rhY.cache +2 -0
  213. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/F0YH8Yq1cWX9gFEKo7ycTrV_XIH6F1xQPH5PK2LYsWo.cache +1 -0
  214. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/F7Y-V0A1wBoaqh0zsLiC10OWgPdffWcXMnpX6bvrWUU.cache +2 -0
  215. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FDVYKmAXmaaNGEqW13o6Z-vN5Q79Pv24Bta2Kz21Mpo.cache +0 -0
  216. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FG8vUIgA6MF9i6vEEwziDJt_2RECefflYkmpH_RlCmw.cache +0 -0
  217. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FKlndky4J6_Zp68F1jWb6R62l_y2N0DK7cgU2HwGhXQ.cache +0 -0
  218. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FLmJshW5c-m7jjBmBO5RV79GUaKd3u7ucKEln88g_RQ.cache +1 -0
  219. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FMa05t_d_GyQhGb8s3sYyjUR0oFvAm2axzEZ7JvEjic.cache +1 -0
  220. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FThu79BLBU-QZRabTuHY_ds3CVE-nyM3nDavNS5M5SY.cache +2 -0
  221. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FWPHGZNaZd6i6ixyPur98jPfek5-LBcQuZdHCU4_5_E.cache +0 -0
  222. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FYrKT0gHWvCXvKp6siFILrBJUlRQb-0X3NnpFuCWoBU.cache +1 -0
  223. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Fda4KXC-mSHCwyFIamNWshQo9GdLNmWRpyUatVGnAEg.cache +2 -0
  224. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/FnYMXxsTNfEZek8oLzbg_DkG3tuKIzRxnDaLebn-LWU.cache +0 -0
  225. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/G8tbSIzKySgFUT_M5n7lzOLRz6ocFpjQt1FzGlh__6Y.cache +1 -0
  226. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GHe7-4z2Fw0-6cO7sjcgtxFBByv5-7774LjdgVmXazQ.cache +2 -0
  227. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GMtjyqvFeR2OwVUEPdwb71iHxPsCZBeqbEVGaRbMTVY.cache +1 -0
  228. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GNAReCDY7ldau4pFHj-cEWkQHpokns4MTM-UWxi0cVw.cache +1 -0
  229. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GPpya2aifzpNLfHLnJyzc95NvsNjA3uDfn6vqQMd0UY.cache +2 -0
  230. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GVhFPZWm0TlNUN77viOSBNM00St2WGn7GEJFzZ8XNuU.cache +0 -0
  231. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GZMv_L3tNuE-TO_PFFGgi3wF5Tt5NWIJk6ieryF_B04.cache +2 -0
  232. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GbDj8Ww_ztCj4xZlCmRdN78Qtvbh4lrMtppHqXkhNJw.cache +1 -0
  233. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GmClkD3Zu03HsItNRFtBdduO0TzYfeLHZRi3_h11RG4.cache +0 -0
  234. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Go_nS-x_Is9TzgtE6mx3O7NHO9GQrnNC3LJeicI2h2I.cache +1 -0
  235. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/GqHkqcdlb5khBHlVi4zWHZsh7SS20sPc-375BD4EJf4.cache +1 -0
  236. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Gx2l-H-Pbvb0WGnXrKEa-6_pqoCkzs2gnDKroo_ocuY.cache +1 -0
  237. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/HGWBm361VVCMOJzvMrj5qzuorMFAw8kO6P0Qf6FQF0g.cache +1 -0
  238. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/HSe1tfS0PIHGXgiJJh7qTrDOKqdRwls5M6W9ZLhx0Rw.cache +2 -0
  239. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/HVpEQWQUYcTHfzqwIeKsTCd1pWIpcMn3NuwNDuvlmQ8.cache +0 -0
  240. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Hi35YbHjeOFHDIcq3EL_v4yBVQiFGBPeZdBrXGmQimE.cache +2 -0
  241. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Hkao3Zv_Ag0Kea5X5Ar7m7ow8oiBeL0AR31zn6oV5rs.cache +2 -0
  242. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/I5JycZtUV_rfFDdGRyQr_2QSKbkKGUzcwGX3bOE_1PI.cache +0 -0
  243. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/I_cuAgVz5p3jsbxXvrRAoixuO7_meJ5lnlotY5FiRMs.cache +1 -0
  244. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/J5VbUksIXkx5j-0RAsI3MtbGyVaTXWHPfTdPaksW1Xg.cache +0 -0
  245. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/J8wdPVYykR9hLCAA8LmtnTUztBja9uvs5rVW4hNvnGQ.cache +1 -0
  246. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/J9E8A3OZp2JXVlaUtQgjuvg4tvro-L6JaqUtwtbvPXM.cache +1 -0
  247. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/JANn_FgI-KRcqck2vHkxnVAdxfeXMSJuKfzWqHNSbhA.cache +1 -0
  248. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/JAW0IlTzLUbhPvrwuVgsX9tzdRW0YcV5EgAkj_p8jsc.cache +2 -0
  249. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/JU9Qw0BGBB-IU-Rg_GuArrnLj1os8tvD9E-uhEwQUhs.cache +2 -0
  250. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/JXsT5vd8vE0g_zos4KzMijpWAyOSD2ZT4qlDloGISyw.cache +0 -0
  251. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Jh3xc6QZskVndnxCLgm2UuEdoEOAlYDa5xTx_xHcK28.cache +1 -0
  252. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/K-dloTZMfa6lwijQGKk-6Tu56ANSlieSgwyxpjPwkcs.cache +2 -0
  253. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/K3kagNKLXgCCEbWTdRSYGE7lVJvwUh6tgbdST8BRH7g.cache +0 -0
  254. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/K5Vlo5OknagObwckPH9ykDASHiir3iPhyFg1T5skMEo.cache +1 -0
  255. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/K9txkqwGDcYPAQu-AXmJ_bc67q8lDS09g0NEYaSEsJU.cache +1 -0
  256. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KHRdI5zmC5XBeOAQXclLAi6tuT4Et0aVkjvSKqhFmP0.cache +1 -0
  257. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KS0_VenW52DGaOSMUA-26Os6nYjkn-9mWpmxwc_zOoI.cache +2 -0
  258. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KTqkdhg2ODBalWZ31IgJp0Imc32haCw1Yo3n-fZzY34.cache +2 -0
  259. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KYVmbhhwiHe0Cvx-cNlVMsDmanjF1nnx149VTOaWIcI.cache +0 -0
  260. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KpGZpJ1Q3jiXpKtNWpg95-BVdD_faN-g4MKg2cLXNIw.cache +1 -0
  261. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KtOCavBXs0DvNbeaSxm8dH9aP1W5VrLTEQk2qiRw7kE.cache +2 -0
  262. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/KwjgAV24hg3p6ERxC-_YkyUki8mjUv7f6FJJucIOy2Y.cache +0 -0
  263. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/L3D47wpqQBlHXgfpfZETptFqFc4K1Un7XGgMnKM67bY.cache +0 -0
  264. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LBTm_vRBF_Dmyre-a9CU5Hia3gaijp7txO3spoBG3oo.cache +1 -0
  265. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LD5XvaaC2CeJj_4YfstP4V7xrAXhl4E9qzCUHmFWe28.cache +1 -0
  266. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LSnNxC72IXjH6R26DOVgjNDaXm-m6h9N7IliSesczMU.cache +1 -0
  267. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LdbVCyd9vQmMI4nABO8wRn7-_xNk2YuvJZHbGq0Bbno.cache +2 -0
  268. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/LgGwQDK2IlJUnqc4j7x9CEs1KWBlDn_umu2gfneA9Bo.cache +1 -0
  269. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Li8yr3ii96icAMiemp8Q8onfcwDq0ZL5SdjLs8rF-Xc.cache +2 -0
  270. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/M1bB2GAFij10H-LH7tHfZ50-cuyKjr2tc6hNNtJuoaI.cache +2 -0
  271. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/MMvGXHQ_Bl3pQWPv_9lHs0oP86AoacSbw5eQIlKkSOA.cache +2 -0
  272. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/MT7KWmphttwkZHau-qXCXYKZ1izbsnpxkt0n6p2FfKs.cache +0 -0
  273. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/My7Cz1XaX7qP_QOvfzf7Kht8nlTkz9nNujN0GztRHWg.cache +0 -0
  274. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/N3emFOCKIaiIlngN9_sP2agdKnFF18ZJwqbk_oB7_A4.cache +0 -0
  275. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/N85u2ALiONkNyzgGPuBylSPD01aVvBN9s77bN-xc_IQ.cache +1 -0
  276. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NFS4VGehp1FqrDputynfdk3InihleuCB3kNk-FQ5Jfk.cache +2 -0
  277. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NGjORV_HNvHO53dYY20nAgBd8UxJuoSXaSruiYUE7Dk.cache +1 -0
  278. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NSu9EeJmiiSKsi9VIWUA-0jY9JDi4ytUgi82xNLv4hg.cache +2 -0
  279. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NVIkuGzyiuUrr72xNbigRSb9zdT7SgDhsSSTsei0OrI.cache +2 -0
  280. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NirLSpBVjyZT_KY2sFRftMEJNMyBmM8IDj4D7loRer4.cache +1 -0
  281. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NmOI6cEFyFqheLn0CP_ka9tXF03EzeqkcfuCnZs7iGc.cache +1 -0
  282. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NoIhe6qSVvfzUORK9ii2-wx5_YbKswY3kaV2TOVyWvo.cache +1 -0
  283. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NscqeAcEtMAZC08w3NU7ch1JkSmsnqWN6hITG86uFSw.cache +1 -0
  284. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NuS_fn8UKEOFYoxbZGbF5j8hgCQ8Su4kZ3AB1qeur3o.cache +1 -0
  285. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/NuxXrP3h3fYe9lY8QEvzbmrCBio_3tMLMGc826yFQrw.cache +2 -0
  286. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/O3xBTZ5ukTbZZpvc6-OfrAwzPMNhqvkRZbKEv68UbYc.cache +2 -0
  287. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/O42vGMBnDGILSjPpGhNGhxt8YZNi99E7_UFAIGD2EI0.cache +1 -0
  288. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/O6wLtwL1OcHcHorOTa8in74_31QwedSqqj7VFgMG8Vo.cache +1 -0
  289. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/OTcKIRldxmTfMlk9BIl5JfD15qY3ZiQXYZAKyg5zYDw.cache +1 -0
  290. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Ob1IOO8iG1BjLHWCc9rGFV13lURLlXmy_-HB-BgmAnc.cache +1 -0
  291. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/OhM_w9b7xnlhMTthCgZJ44mzHxAI6Ws6S5kH4llXfi8.cache +3 -0
  292. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/OoF_K0PLpF-Iyg4kRBG9Z5WWcYrdQApB9SUEMYvR6_8.cache +0 -0
  293. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Ot6bCLt8pvwYvD260sQb6K-_iwK2p6yv0L4PznCJ_64.cache +1 -0
  294. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/P3hrQTsWCqCYjPSCWsx-gD2QMBHRW5VFo4zq39ZLGkE.cache +1 -0
  295. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PBaJ00REpUa6PvxNPsxRGWx7AsnRsbSNF3MJqFTXmgs.cache +1 -0
  296. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PEDQ8boGDbI6jyvj8EPJ2uRhoDHwwnENZ8kMGrRN1m8.cache +1 -0
  297. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PIY9OvPtqFJ8c5F__E62u_7Ebx5OgkX4KWqzqT1UnYc.cache +0 -0
  298. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PQ0V9dtbnkzyXtXyBCyTgOSgy0ohkGCAa22FbrTNFJU.cache +2 -0
  299. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PdrwnBJeZ18JsgILqZ1wjQQHrvGJViVXl0XM6aGAJZ4.cache +1 -0
  300. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Pgh5eN81AUvOZHkNBLqgZTIGnNXbuLeQ7bqomRPstkk.cache +1 -0
  301. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PgrirsmZ_hcwaKf0-tlpYzqQsCtd-Z47rWq1MxrIFNo.cache +1 -0
  302. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Pp_CwoU0xZsApnE7jh087IpKPuq0A1Bpl_lFRvh0cTI.cache +1 -0
  303. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/PtCJSQyjL0MaGAF1i4oJJs5KvBsmiNhlP8JQu8dUNJc.cache +0 -0
  304. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QG2GOscC0CxWmE4TdEF75gn2riLOV4YA2LadKsJNZiU.cache +0 -0
  305. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QJ6lQqQbfv6vuxIs51avDem3LlEKmfHKeN726tPuYCE.cache +0 -0
  306. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QpqSCM7Q22o2hbWEg5nRNYQuGkPkjZj2zGLWUcvaVtM.cache +0 -0
  307. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/QvW9z9Vv_W8BV30iav1KSla2o8KJpk5BOOYuSnSTUuw.cache +0 -0
  308. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/R9Em9ZyexKK34cgRO60m28MrP78lxW3XtSuJVGbbWdM.cache +2 -0
  309. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ROa86sUGEYCFMqryaA8LbMPkXvvoHYqDZ4fMiHA2Ubs.cache +0 -0
  310. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/RRyAYiHYBDThLJeiGY0xEKusSxiqT3cfUly7ZZ0VNJw.cache +130 -0
  311. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/RbGD97KvjTg-xM28-AQg5Si3Jx8Gzyqgy-sFlFwVkH8.cache +1 -0
  312. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Rv9R0eHcOmFxVdOUp8fHHO3mrAFk_vtxte2woyvtd9o.cache +0 -0
  313. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/S51Ak1lWfdby7vHS5ZKvYGlRmh2e3-7Tga9mvc54E_Y.cache +0 -0
  314. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/S5dR3iA9gQvrxDl5OgllmZsD0oT520ztW3iuSuV3smc.cache +1 -0
  315. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SUfVJNeoQvaj_XoYfsqFzlzB9frMWHxZuxCMss57UVs.cache +2 -0
  316. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SZkQElEp9dJQmAu7LSQFNqP-L3et9NQZ7qR58ftQD2M.cache +1 -0
  317. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/S_wdKyWI7ZC5XdwXWT6h4zJDm26GVOa5hno0OYnHM0U.cache +2 -0
  318. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SjXLxEGXcidVyzyH2RXphld-wGFB2_eqJsAFbp9M8Wc.cache +0 -0
  319. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SqYExXh_BCI3GDhD6hnSUq3XjOLqFFet-kQL2abIJH0.cache +0 -0
  320. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SrNOKVdJ5A0lYe3urqdCPUqbVBLOqdVw9ZF97cUmE2A.cache +0 -0
  321. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Sxbqj28OVnCHPVsfFma0nwjWRICdYWDvIJa5tUH4UrU.cache +2 -0
  322. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/SybpG5Yn5sDkKpXk01ab2O-2BiE_NTWgef0GkOWkuCE.cache +0 -0
  323. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/T0ZfmcK7Q-_j3YmkwRL3LQ-eBT_90a6G23Az5SND1i4.cache +0 -0
  324. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Tbs45DwAP9m_Bk5_QqP4id0GrtIEL_LVVlpBth3_iXg.cache +1 -0
  325. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/TcW_nkGbopT0-_9BsnjVybHjyh9Deq-MlQjCwbKZbZw.cache +0 -0
  326. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/TnawoKlUOSkrIWF4CmWtMZPri9n7pVX_sSRDaluHFkA.cache +2 -0
  327. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/TrvcIQd-vCZptrAlto0aUtTAjaCEr7NXIcmZ6CMtQ-0.cache +2 -0
  328. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/U98l_XD-df3PHj1vaFsIZES2hyfFNIVxchPWf7-KANc.cache +2 -0
  329. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UEKgRh6sKWFwL6MXaiDxprBGv2mlhYhB_IaLviFuYT0.cache +0 -0
  330. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UPD_E81cSARTpkSmzMEInPrwlorHEUSyzrOBVWY4lhk.cache +2 -0
  331. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UQn_UGKipuIC3UdOHJEim3MLfbcw1AKdIP43RYXEONo.cache +1 -0
  332. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/USuUDHbQwsnZQr7eKqoQyz6jLWGrq-ysmu_6Q4C3rFs.cache +1 -0
  333. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UUg_Vmrpv-bNLAmSOXCR0q4h7FbJs_B9NktL9_2Zx10.cache +1 -0
  334. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UbOqJI-CQQ9W0ilhF4k05uuuqsq-2zKkoN8n2XuEA9I.cache +1 -0
  335. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UiD5k4ZN3rDI-hONldMa6qaav05xpX_Cxn92Zz5GxQo.cache +1 -0
  336. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UioerqKVGl0FlPqTecmKBrYzc3ozwQHAP87MfKUR3U8.cache +1 -0
  337. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UjDuHAOGMGr1sb2EWOKC2VUETu0f82NlVqN2RIH_AMM.cache +1 -0
  338. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UmsGyI2spZ1NxMvZMvoPa1mZYDxQ1OlUwvDehHDbQME.cache +1 -0
  339. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/UuuefklGfGaynFPKFfi6Nq80bfFn4ExamJRz3Atz3vw.cache +1 -0
  340. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Uz2XBh8V5rHQzKk0YTaL4rWGZRLU9o0vsUpM9Jy07oQ.cache +0 -0
  341. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/V64OtM2CSAi1GoUh92SxmTSHyLNtprfJyIlKu8zxWDI.cache +0 -0
  342. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/VJTSytftSC1XBaCYsz5DcNuRlXwf6Ixk0w9ALsSZuxk.cache +1 -0
  343. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/VRhhFhUyTpMazo7cR7bZX7gecl2Su_kthnm27nuLGPY.cache +1 -0
  344. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/VUgRtpVDIaEh59jTiT8uu_c58JuEErAXnqL8nYtYR_U.cache +1 -0
  345. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/VeejA6ykA9ea_IBd_xvnh_Q9J6-ssJwsd3zLUNUtDyc.cache +1 -0
  346. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Vf39ys7h076luZH8h-75k0tUCGh_7RA7MlQxVm8eLFU.cache +1 -0
  347. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/VrmtbVagQ04Z3ViLX9lNvvO9TYYSc7m-TiRbUIoyxfc.cache +1 -0
  348. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Vwn0tVF6u4XGUhGpe7O9J8jY6UfC5YkupyZA1k-2d6Q.cache +0 -0
  349. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/W47eLgiPCJcw4Ef4JvcPv-W6c6w5ZcQ9M1n8M8iJj-c.cache +1 -0
  350. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WKdOw9drqgKFSYWjUKPkGjVbc70we8YB9ccaCzPjrag.cache +1 -0
  351. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WROBt1PIUve1r22rSV4UA4Xuz17hLaEPFS2yxlq7SWE.cache +2 -0
  352. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WXFSkcJWkPwu4UcXTyG2gLcspqlH4C8R8aFNaNJLBUc.cache +2 -0
  353. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WdMJvxqz8r5HTU8fuFB8GvXB1OAcYjdps-SE52e5DN4.cache +1 -0
  354. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WjivtQTXV-n48YzUfkNLz4qlpQuaDE08TScpG8xACcg.cache +33 -0
  355. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/WmdbMUmOq4cpfBm_GnBbCOEL54gVQIaeKNCkvi6ScCA.cache +1 -0
  356. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Wx1KdAHa_culrkBqp6_u2M9rDuqfJnmX34yxmz3Rv2U.cache +0 -0
  357. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Wy4iurPBctBWVZcBHGkLlx_mmKcIDbKWjo1HQxv4twQ.cache +0 -0
  358. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/X72UZG_gtEnq4Oq7-Nl_VZo8J496RuCHoSDGUOSfT4c.cache +0 -0
  359. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XKehf_cyUL4jf-HBWd1xdLyCaQcxEboPErLPwFn7WAQ.cache +1 -0
  360. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XN_EuIcLvM30EFx5JRSpS2IWchCQG5SZ3Z2dNdjmh5I.cache +2 -0
  361. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XZc7cXJbGQixt5RxXf2RMzhA_c1gurOhUTtWAJcpynU.cache +1 -0
  362. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/XabeeB2r9YAjeH8t_AyJajv8J9vWfi0JSuahG2btY9Y.cache +0 -0
  363. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Xx7TAZrWsq8G47CvWSohcFrCTk5Yx9kdFkU45F8jGc4.cache +0 -0
  364. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/YAoqbIyUsvV2Myvqk_JOlvdY9o_IMiSJUV25BjmZD8k.cache +1 -0
  365. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/YEWPdrFSX2o43we9Nd71gsXd-rP4O8_nfLrKLJ4M_Qk.cache +0 -0
  366. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/YI497ZAcHZFm7OEM4DQeJRzGCs6DY2FNtz8ceCyRnhM.cache +1 -0
  367. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/YJrbLTXlD0cB4YBVa7vGAmMeb54gENhYmTrmbMjzn_I.cache +1 -0
  368. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/YNX3jBBdrhe4hbJgogpIKCQnYcXOHfHLNYTm0NXxSik.cache +2 -0
  369. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/YVAkhE0tsqtB6apzKDD3sTZg1F0UMDdx9_G252_sdMo.cache +1 -0
  370. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/YW2tvkxkGLm9evIxX50cMKA0O9fKdfbXR6KRofjpdUQ.cache +2 -0
  371. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Z0G-uJgMndDiZXAOODdSYl7qTuyOjLmNPd0kR5TTc7w.cache +2 -0
  372. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Z1cDa3Uy2crmC_5OixahDNAz2Nodt9NgdDNKQ1DODQU.cache +0 -0
  373. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ZEzNascre4Ax-gW-V6BcrhY0cUK3F5HXAUnLBiZpkck.cache +0 -0
  374. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ZplTY4AUnfDtCwAZIjAX5nc9sjSsD_qQJ7lkitXSc4A.cache +2 -0
  375. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/Zt_H2bFWW4gg1gQRGbcBIJH1OdanHvDLaL1RAORkU_Q.cache +0 -0
  376. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ZvtIF3wzEBk6_gZLGkmi43SRU5ILsl4q9MZYHwJOi3A.cache +1 -0
  377. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_4NQHOGETSMi-4oU9tKVA3q-hTvkKHLVS_X3bX7YY8o.cache +2 -0
  378. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_8CY4bNTiHFjwwtfqHvkaM141dolX0KLVYcGBg9lNP8.cache +1 -0
  379. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_R24SCzGt_qxdv4k8tY-xsPHycv8ZIAHAEtrD-0blzk.cache +0 -0
  380. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_WZguNETYwnU8DxmU1SsvuxUeCCh_jI1yReJICiZHeI.cache +0 -0
  381. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_fkAHiiJ-E7F0mnINADMMePolcbPM7dgMDMVfTpBClk.cache +1 -0
  382. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_jMUq6u1IxdSK7cZQ8b77B0wwz1RHlDNE_Sl64flItM.cache +1 -0
  383. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/_k2-NHwGlsM_XVTvC1qXhXaAYkLBiHWEOqrBDhoPSoI.cache +2 -0
  384. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/a2CZ6Ha3vvWH-vZiRDk52B2VeI5LFMmtWbrT9swVHUQ.cache +1 -0
  385. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/a34pOT8onjqQrLAFE-XBalK4AHpWcFXLAtV365pcOvA.cache +1 -0
  386. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/a5c_UvuvlMHKX8wo_1AOTdA4VIVcjyoYoHXfboTg-aw.cache +0 -0
  387. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aED9e_8YobVispjr3kt4M2DdOIhR3Be0i9Gdcd9j7QA.cache +1 -0
  388. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aIicsZEd3Na5Cv4vGbBOjxSt14YnRWmDseeuzNElqV0.cache +2 -0
  389. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aMxTamRyB3oJudeSlVBOip_sPwKr9B-vHcWWhd-wYFY.cache +1 -0
  390. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aOhGu2r_vpR5pCd_ZJVcwnDnAeqVitIdKOpQtcIN1jI.cache +0 -0
  391. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aRK7IzNSJakddXD8xUdWrPTYYIb12MCY5r6XAqBS9dQ.cache +0 -0
  392. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/adgOltJhhsgMVW79-BgZZWBofeDs9NnJ9HV0COTaTVw.cache +2 -0
  393. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aeMYMaWMoJsUTP9urG3ogBmg0St6LGA9dzXqCYiAVT8.cache +0 -0
  394. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/aqtZNlfk4yyLMsNrX3MyifgxHOE8DDeVQkjM40VDEXg.cache +0 -0
  395. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/b3PC_3YTEyF9Ioyis8-8J3qgNB_UNNCYeKbtgDIwSu4.cache +0 -0
  396. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/b6HCeywoYfGztdkKY23ld_KVqMVA7ngDK8eV-sU_bzA.cache +1 -0
  397. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bHrWZ2H2aBcoy--tZWwfM5xrvAAIMjgHkGsG5GemavY.cache +0 -0
  398. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bdopj8i3d9D43jkiZj5uRpMEBJvOk0ly-C4I_PO-_XY.cache +2 -0
  399. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bp00VD9iLnrmqzmSWQgsFTJZfuhRkzOdEu1i9YMTsEY.cache +1 -0
  400. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/by7cYB7den93qB5jwHi2k7VdlbMJquPWQCzw4cF5Rrw.cache +0 -0
  401. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/byFbHmtI-alvAvi3TUb6su1kR0Y8HobUWJn_zCfjVR4.cache +0 -0
  402. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/bzqfWJ3yLJ7fR9Pv2bAbIVQF7mCuFpDVFLbWvUYUXnE.cache +2 -0
  403. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/cEvTGeB6REehSrGLapwmErBo466YSg-UG3auOPeQ2iY.cache +0 -0
  404. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/cNIy4HPFdmXkh-Bt7GaKaUAhDGHK6r7MIhzPMu3XWXk.cache +3 -0
  405. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ccR9jWKBwCGUU-Hb9RaoDk-T7peFveSf3Y8CmgVCshs.cache +1 -0
  406. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/d0GAB4H_XpaThdIDYv0LMmaDsBm66BIuQnqymgVYVfs.cache +53 -0
  407. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/d1tyt3J7AAWEUyGk8Zmnd-nvllYVv8m_hkBXcsmjJR4.cache +1 -0
  408. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/dEwl6qN15ON95JSm5f8L0Mn2UUG43OnQG4s9Osf5-98.cache +1 -0
  409. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/dLv6xT4dzOJZR_yn5eNpmgrihMAtYZTXU3wyujiAfxw.cache +0 -0
  410. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/drwIX3VqmehI4SesLy9N3wXi6bVuoozFCMoyCcmxOH4.cache +0 -0
  411. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/dtD3PzvzPJ-XIPDEsXp9mBqXuLaNUQCDO1ueDTX6I9A.cache +1 -0
  412. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/dwfcfldbjYgu7zjFo2eyda3UZqdfBOa0dz7A_E0mRe8.cache +1 -0
  413. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/dxIxT34hpMPLVaUVUo12Mzu7SEBF39pNPpnIsgznwqM.cache +1 -0
  414. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/eHhGJ9wnliltih_V7-MebyzxXQgiemkBEo_H1SFfiU0.cache +1 -0
  415. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/eONDOK_89ooFXP1BKmoWtQ1rlKaxNuQYcyU1RSbj1H0.cache +0 -0
  416. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/eQOSchBZen82FDyaKaU0WjLqXjcP8kf0omlXglge9lM.cache +68 -0
  417. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/eWibJVUjhvrQccQsH2lzFAfneRDN4WtVlCe27sIXXLQ.cache +2 -0
  418. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/eYItUu2KZIccTO2DSHBfUT5P7cjFF1Kqo-UG5AwWPCE.cache +1 -0
  419. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/enDHYPOERtHR9kAatuyQjPkyVOHjb189h5PphKOu68I.cache +0 -0
  420. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/erSDKtty5CmsZClC0leuBWg7d2A-1c4V8F1ScswRBEE.cache +1 -0
  421. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ew3vPBE2-7DXuXzBHJJFkuNdXM3GaeXy3vkLuVyAuos.cache +1 -0
  422. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/eylRdcTNmCjRYLMTHf2ubd47AKOyrGiGRliEXpaMEmk.cache +0 -0
  423. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/f-mp7sTuJr6UUaeqSbFD6xGgTz7IJxdg0S9H7q6HHKk.cache +0 -0
  424. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/fJRRAIbdsHh0ZE3eC_Kv5zLZ5DeVW570vJY7S1rP4Pk.cache +2 -0
  425. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/fJY-pyRbDpjFEZ3yqdnmydVSeWShIGcrt9glBBsOeL8.cache +0 -0
  426. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/fMtHvEp9-A76IFy-6ZrswaCi36fdrImDZgpEgkmOWbc.cache +1 -0
  427. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/fPAITgfk-HsWdCBCJwYoMn6DZKVn70SncGeO-wPNRs0.cache +1 -0
  428. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ffOc1CYJFug6zO20U9AeJXJs4bfIgpQF8v22kEEg9hM.cache +2 -0
  429. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/fwzS49_yom1SGGdZsew-Ms9mMsbPyi9RGUOFKUhHEbc.cache +1 -0
  430. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/g65ot3y0a_U5ZAarObk5ZbdyowprwbURE-pYY_DqpLI.cache +1 -0
  431. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gNGmN_-JJPwhRGnrccUKb22f24sVWaPNBePatMwqcoc.cache +1 -0
  432. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gP6j3d1R-8EYSsD1upPSYraS0vOT8nd0a6ihbntLEyc.cache +2 -0
  433. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gP_7MCihEG-VelaVXqk0v69StsfzEQDqrmuGUu0PVCs.cache +1 -0
  434. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/g_OtwtQs5DPjLOFEXNuRBqZNpCQNFHEIrZdMR8reLDA.cache +1 -0
  435. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gezISAVzT-rW7YxmETJ66hnIAJrgjH7-QRtjI7LnZfM.cache +1 -0
  436. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gfZRrnVK7Tvpnya-XL8nkpKBVEVWVHYwlvGWqo53DFw.cache +1 -0
  437. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ghSonKV04FIn-8_XWUY1pwwJJ3g5t31VeHcClRPCrDw.cache +1 -0
  438. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gv4MCw6uStR3ZxtiMjkHfPGoDEP9rb8ErmlAJvePm4U.cache +2 -0
  439. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/gzu0VbryQ1AnI7njmi_lNFEjqhbIQieo-mF8ifqwn4w.cache +0 -0
  440. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hCE_3iy_WHxABbMZRruS_04bIx5430BTrWXp6H5Bmn0.cache +2 -0
  441. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hDmm5ZGbyKdcpO0qTO2lZVoRWYxlW0nwdq3HdJgFsHk.cache +1 -0
  442. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hGtzaBNpipUYnmP47SlViUEKqkuxhDPm0H24bCH6KQ8.cache +1 -0
  443. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hIX6vRGeYSKhZi9H4l82okramfEzRrOTHo3xx45zHqw.cache +0 -0
  444. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hOYy2UBYWFsmTboZ1uIuteDkDr7uquuOQoWqSUNmsko.cache +1 -0
  445. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hUUzdPRMPBUMFTebQCZVowh3xXeUWraCxqmY6rUraVc.cache +2 -0
  446. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/h_NACKvreU9AGWlJXlfjq7k1EOVN58vvBsT5yAXPB9I.cache +1 -0
  447. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hji_zP1DxDFKvyYyr7bxGC6Gsoe6deMUMIr9MHIc-dI.cache +3 -0
  448. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/hz7DDBd72mfD-rbx6PvaUP4cKCP2WTGPRyYQ8FqIXa0.cache +1 -0
  449. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/i-m8VTBgmRptpMX01kzUrm8DRJjOCQc6g4Zl4Mse64s.cache +0 -0
  450. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/iAaJYNfgqSxngJ9vndiPIBj6qNt8YC9dlzIYLCmjzgc.cache +1 -0
  451. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/iYVJ9--UX0HAufG-0nVH5fNpxgt361aAHgKQVPvPiSc.cache +1 -0
  452. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ibjx86-9-YZjSJu4ayLuXDCbqDvT0LL17ObMMOOv350.cache +1 -0
  453. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/icBR4v5JYq9YfehV8FfQVuDz3FfhqXZ0gtLQzelotAk.cache +1 -0
  454. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/iddyWmf3sySc9MxLYYp6YMluipbwIdNqEMxeO0Z2OmU.cache +1 -0
  455. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ih4JB7hE9AnlAES5rckRwW_DR62mkNY73UgoCF6C1a4.cache +0 -0
  456. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/inKSfAELUHVp9_l1CC27zCDbojcGQAF_BFe9c6QleZM.cache +1 -0
  457. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/indElnjVtJGDNKz43WowqOKul2iB3DNmgkxP7Fzib_M.cache +1 -0
  458. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ioqy6A7SvNuE1h-hBFo-uaHG1BkRX4lirLU7xnJte0M.cache +2 -0
  459. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/j0CHtNZTLZr-rF-72qGzD3YKwdk1rOV8wIqRE2NTECc.cache +2 -0
  460. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/j0F696NQ8uL_rujtdyyRrb1zt3SkHpCqMea5DNRg-t0.cache +1 -0
  461. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/j8E4lQ61ONdOVN5GGQ9LzXsTeh0mRhy909cXNENmYC0.cache +2 -0
  462. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/jLSba7Zmn7NIrC3kd71QVar3ic7lyIhGP9-VF4z4uCo.cache +2 -0
  463. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/jdAnKy3Ekbv1dKiZXhh42tzUL5I83gWXsCLrkHzXK-M.cache +1 -0
  464. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/jf2RJESQhnU16uYBZt0S6E9FVdCE_mi_5FIaMvab9Ag.cache +0 -0
  465. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/jhhhABZXP2EgPmp8JYq9Ixv33B-7RaPDa6RbYZvlcAE.cache +1 -0
  466. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/jkTbpDeD8hr6tDOrfo-nO_U40bSSkX_tBpVMDPWVfmc.cache +1 -0
  467. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/jlzbKKii0w0Icj6osOLCLgu01n4tSv-ts6TFCKma7Bs.cache +1 -0
  468. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/jpDhLCnxF40zOPgErxSPTv4I0-C2kp5YJ2Unb9BsAt4.cache +0 -0
  469. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ju6mhG5nSI_bG4TofrGIm3YCaa0kbBWFI3g9HvEcWTo.cache +1 -0
  470. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kE4RccYo_hOwBRmG8C1CJNaZK7Mnl5FfQuHf8rBzy9s.cache +1 -0
  471. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kEZkSdMMmfx-oB8YkpV5-_FmYE-ro-jaoeCnxfN0Dsk.cache +0 -0
  472. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kIVngRNPCMdBmrbk6HntK7u56aQAcbbh_7nuvbMu6gM.cache +1 -0
  473. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kIwML0Ryx2P7lbH-ETIHmEJWmGh5Ej6O2PQnRUQG8-Y.cache +1 -0
  474. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kLMtHHZocgHbLZf8NOHbOsXuzff3ekTqZu_5Podox6k.cache +1 -0
  475. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kORrO8zaU0CwlByylA7Heh4GYlU7nt9UMGHBQsmO5Mw.cache +1 -0
  476. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kTdjlCFiDW238n4dNBb6XUnz76dCZesNx5e6qkR4eys.cache +1 -0
  477. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/k_4093NucvNYTn-KeGq7va-6qbFpJq_ET51gK_JGy_I.cache +2 -0
  478. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ki8Y45bwgs5fG1g_cHJrUQeTJKbCxPHibeYtF8M8hmg.cache +1 -0
  479. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kjDvGQ0P0xKu_D6z5BJXe1et18xK6MW5pnrFt8NU1RU.cache +2 -0
  480. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/kpe49KDDZ8ufPkq8ZYN6gogmQfjp7yl3cE66q8xeJdw.cache +0 -0
  481. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/l6PfhLSqfbG_ztnx4ewaCIhdYJRyt3nFD5Cm6KML1zo.cache +0 -0
  482. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lDUwnUX2btcbRKZAG-v_XsxNfnE-d-3igiKOA51bCp8.cache +0 -0
  483. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lQ0VbLQBFl6wYboPcP-DXAd7cMYlMssP_pHS6rcdgtY.cache +0 -0
  484. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lQFJ2MPBtZvTFGL0Xor7FNzQeYennzZ1ZWHoSioEzbY.cache +2 -0
  485. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lXafjge_angOWVwz8My9TBqNZeNWBNk2O8-2OBO8KOg.cache +0 -0
  486. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lXxZUR1IYiVxI0YvlpSudLpYoCCAhHMCeU7FU-lCfys.cache +1 -0
  487. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/lq6M5BVRmYEooZYv2e_kJvrrHftvxIH24WehxH1q_zs.cache +2 -0
  488. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/m6M5ubsMYWUnEqhTTgxg_Fm0deBnJsWVqKFPOwx2vJY.cache +1 -0
  489. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/m9b9lqn5n_9e3fXX2CNoL5wg5ioiUeQmeZFrCvo44P4.cache +0 -0
  490. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/mCrg7pP7wDixHnlc4EpdrUgsK_V6nzo9AJZ_dtW_6NA.cache +0 -0
  491. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/mJjFB9Dsa06CabMQFJ3j6pgKae5gKJ5hz7GzYHEoQa8.cache +0 -0
  492. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/mOiXVQJb3TmF0gxGofXyGTCC9T8igK6foLVOYhaviNE.cache +0 -0
  493. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/mRQTXPYfJQr9c8JBkwVUFj5Jyb6MceDsphW2GMRFbMA.cache +2 -0
  494. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/mTLi8OfIJ6n0lXFXFm_1VKuqCHrlhp06knn42q81Ckk.cache +0 -0
  495. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/mjeda3foeYdDjcl1rNavjqdM_slCOKbdu_HWnTcJFV4.cache +1 -0
  496. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/muENZyR3ygFUC7sRMSbLskpU9Sq2v2sUuMqsGFb-83A.cache +2 -0
  497. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/n-Bpo7ZCVD4qvRUJTJzUebWzAm39cezIcB_JyV6eIsM.cache +1 -0
  498. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/n0l_k2e696SbvZ-4MfnidHEGhBLcINQ5JH_BaBu4tic.cache +26 -0
  499. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/n1w4EpPhTiltlqKpMMfBB2BgfIEHd8bNdUR5uK-uzJo.cache +0 -0
  500. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nJQepNghrUbJsJr4MfTO6bbEQPcIHxDmLbcpnVi3qec.cache +1 -0
  501. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nKoeJwqqlmP3Ji8yXVdDmz91U2dfbvDLuT8o04kz0LQ.cache +0 -0
  502. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nMNtTgrUuMWxr6AQEKlWDgygh7JCQWE7RyFOrrfs06s.cache +2 -0
  503. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nQuq7p4aOz8qb3dtygP62fy3ElYuE33AWzZp02Nhtng.cache +0 -0
  504. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nV6YJkpNH5Nv0LpfOVl9TePJaT58YU6mdHcoBfpZ8HM.cache +0 -0
  505. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nodgRBIwhDTeaqHwlVUsHdjtE8WgZ5PqwBf7siVl8KY.cache +1 -0
  506. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/nyX8PfxYnWz4h9467Vy0VGoYWYdFQKbI-ko4Wq_2dbw.cache +1 -0
  507. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/oCy7DXSa8fzyvoMhTfqEuzcsfRaoWYLVfCpqbUXaeNE.cache +20 -0
  508. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/oTmI9EHj_q_bB5C3kNavyrYcIlcEZQEOIGNixry4OUo.cache +0 -0
  509. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/odJheN3MJ6dJzXcD7YSZnKb2wb39dAUqZ-qDAyHwFRo.cache +0 -0
  510. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/okhBT78IhyL9uczL9PD6oibnJpQpTYrmNovZjEzBrmY.cache +2 -0
  511. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/oxEccPf11nhiEX1pq5O84wWcL0yoLv59AsDdtkHYHuY.cache +1 -0
  512. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/oxkCWSXfRqa2nyJd6iphP0gvxvMH6RfuhUpTFHoWLSU.cache +0 -0
  513. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/oyA9QW9Xy_VXY4BjS3jlkqIzDUIvwc28qfc8dtxSxiA.cache +2 -0
  514. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/pQbGvYPMVILni5OqpQbhfrGmQRsUw_xM-h6HJgdG1Js.cache +2 -0
  515. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/pU32-WpHs6iIy4SGWirUHXBd_gzCKSKbzVpWuCe4GrY.cache +0 -0
  516. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/pUO259MFioOXhJdCOz8SSrPsg2A0j7VGNLwkIGRREpY.cache +0 -0
  517. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/pXRVbZr0UPa8bJAvL5QN1Ub7ZvugVGTA5wXqdICk_hc.cache +0 -0
  518. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/pmA_5PEMBJhupS4XjbMTiNn8ndhmpOg_c26zohiZHSw.cache +0 -0
  519. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/q65Nhc8L0XdQOGAI95z1fBKujGaAqqGCEQ3PLTwoKq0.cache +0 -0
  520. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/q6nI7m5GRCFact4LCQ_d4JPJdvsjDQR5L4cpuHy92D4.cache +1 -0
  521. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/q8JMzTlxF2G9ehigWn2Lqkl9TUwcSq2c0O_Jp7egnbo.cache +1 -0
  522. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/q9KjjNVsIDzsLH5E0ybC9fKE4UZFL8Dm2nL3P0PpfaQ.cache +1 -0
  523. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/qMjpriql3MQ_GvPMHZWrGGtDI-gG7bsG3Gqq0vt8auc.cache +1 -0
  524. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/qNdCTm-8z0BhVPemLg5kV5r1aQ1uIputp-txgwi8Uis.cache +1 -0
  525. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/qO1-FYj2m7668jkVNhRm_DjOCu19sXLUtlrjA3JYk3w.cache +0 -0
  526. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/qcc6r4oVQFn4tW39XVbwvJpxsynU3TTMsD7DR3iKY2Y.cache +0 -0
  527. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/qq3dpY5gB8s6Ed2Ae_GsEGJwjfViWsmzSWA2Syf9fuw.cache +0 -0
  528. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/rAoFJnvzJJPqiku2L1C6Eu3RLkH6q33WDKPh9mS42QM.cache +2 -0
  529. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/rQ_OFN0DNu37PR_U0dpRXMAVx5ApGF6k7vQQEjXZoT4.cache +20 -0
  530. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/rbHsPtn4l2m5StHTPyIGf6_oYJH7a0b9ptDWCbTyc4c.cache +0 -0
  531. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/rohTTrlqk_CGNoUDnayKs20jiWtdkf9qEFma11n2e0o.cache +1 -0
  532. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/sHRFQnOPIkCOttJA4azzbS85_KFuirN1AFvdD5qlaUo.cache +1 -0
  533. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/sars8ZNb1Ay7bb4jQu58M90iwx53VxllToVcWLGHCo0.cache +2 -0
  534. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/swKPhQM4j-t98-V0I4t5BQ8upLpMc_xnh1hcGRjD_8g.cache +2 -0
  535. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/t4jtQNzHWfjex4ZpBJ85KfJ1XPuC6DQjb_xuj2Mp8RM.cache +0 -0
  536. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/t9tImKT3_99PezbJiT3mj3FrSwX6slVvUIhuBNvdG-U.cache +1 -0
  537. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/tHNWKF627DLroPl1zJrzL0yJSelp7aAROKltTOhHlnI.cache +1 -0
  538. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/todqd8W0QtMaTsQ2dsUQVnZsSZ03DfWcU2LJC7uEMBU.cache +1 -0
  539. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/trtloi-D6qhrjI_3QA-xgPDJtndxfbrbU1jGIo5YDg0.cache +1 -0
  540. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/tt_zEgCY9yBkT_Iz8BQc8Fx3UpaQkrY-9zeNVPCz0pU.cache +2 -0
  541. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/tu0vi701yEnxcFfOzoVqeOwHUT7RlKYl_xo3GNvLqvI.cache +1 -0
  542. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/tv_L8vQpEcLF45Yg2iaX0r9aD2LNZiecDQvOKD-Hf1I.cache +1 -0
  543. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/u20P5htBpXZzBRPcSxMGhY7mFKT6nBPQ_OTjTLJtYgw.cache +2 -0
  544. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/u7R9mp3upU1isvrZs9TI1yYUmUCN7ggNIFcX1yQ93Cc.cache +2 -0
  545. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/u7qgy_IgdI1wA3NSdqN5joBTm9nAmv3UcRX-z0nXYlM.cache +0 -0
  546. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/uClOEQABP9ouLsymBpTlUOb_iANYH2n5DdcF9Gkv43s.cache +0 -0
  547. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/uKG-VLCk8WL6LiVgFzotaUsPTLPqw6LueDcFVR4CFzM.cache +1 -0
  548. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/uTe4f4s8bOOwuAi75Lhqb6p6Ibwe-5ExKL0kuZpD1Ac.cache +1 -0
  549. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/u_VtbMb9j1xWJdCX-4cDLiItEYUQ0wLEay47adBO548.cache +0 -0
  550. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ukCQjO-ppwsLeQsvgjy1Qln2cUJAawUutVzG4OpsY1g.cache +0 -0
  551. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ung31TM0_2YtnNEaUBygoYD2fztst8YjLZV_14O5D2Y.cache +1 -0
  552. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/usCWYgKLwWqQpdO_VEiBPL21mCPfYOdVbW0qOpQ-R7I.cache +0 -0
  553. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/uvfXwImUfnSylRVLACSLA8zugET5lOFQrgdOHxB0p0o.cache +1 -0
  554. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/uwi4WNBUWx6z39m848hmzX8MSOZbajLsYsx_h4FRAvo.cache +0 -0
  555. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/uxTP-V1kzurafBnJ85hKRT0bxIjCdI1NtC5X_9u2Oho.cache +1 -0
  556. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/uyV4TYUJYFmsVpycrc7CkysXYZgmYpl0FTDs8PShZFg.cache +1 -0
  557. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/v3F05Vk4fz5cPf0lL4EaQq4P73Tal904QOuhrImmCKc.cache +2 -0
  558. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/v7LlbVe3SOUEtReryWZL9phuLkxoEnpYGTlEPlckUSM.cache +1 -0
  559. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vABHXSbKX7K3Yp62SAOzmhZQpten5UqYaEK4xfoYisU.cache +0 -0
  560. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vAi-c7QE_8j6AUUcALrREFLu3YoCQr1JHiMEPfMQNRk.cache +0 -0
  561. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vDDKB13O5yEmF5JyJLfmeOA70hJOqmfAS1Tw64_DrBs.cache +1 -0
  562. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vDJVdCUhT62yyxF23q0uB-FHyUJAJsUIIsoX9jODskk.cache +2 -0
  563. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vEuWoy67NI0EOyq507T9VNVAUFVoZR9_gg7DH8WEobA.cache +0 -0
  564. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vHxPnpSR9dQ3DyXwYqUn0nJsQEdN5Xgn_yeBC7bsPbg.cache +1 -0
  565. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vLYxj2yBu1Zuy6Y2cdmese1ja4WL-GvMHESmhJkSaIQ.cache +1 -0
  566. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vMTuzDLzR0yA6rdeedkJy2I5KFLc30ASGuq4vC0abco.cache +1 -0
  567. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vR0wTRItJloiUayH2XcCBDfmmiLwCJTUJ6dXL-83vLA.cache +0 -0
  568. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/v_WPq8DiVue19gzXmsBksT529NE24H3fukZdbUk3Dy0.cache +1 -0
  569. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/viKC7yddDapak99AtEt6cVw216GzUa0pSMVNF4lhf0Y.cache +1 -0
  570. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/vmWrlKFloMmE3KxJW4a8SBuvcu9TyqZ19YuuWj-1rLw.cache +1 -0
  571. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/w3IKhDJUCATGLDkzNWVp-GScvijpy3ypPlTm66ALRYM.cache +2 -0
  572. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/wKvG0FAQN1F6VKwmrkJ-9BtubK3WtaU0bmcQBGCIrWU.cache +1 -0
  573. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/whuZipkGOf0_q8Lohf76CXFe1stX1UNBdUyPmGk821k.cache +1 -0
  574. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/wuvy4VErWSjRu4MeN4ji-lWNnh00eCx_6nRliAeR-fk.cache +1 -0
  575. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/xGlIbh_4RWsPb1wFD8A3mrBxFr_EaoTM2mve5gDHJWk.cache +1 -0
  576. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/xSWUyBvn8gMZ9F-EAY4z6_asaDDKbw-36Dx65gh8XPs.cache +0 -0
  577. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/xUDW_Cq3U7TOxxqgoSrcuvSWrImEkonzpLZN-EPAut8.cache +2 -0
  578. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/xWljbkyvG_q_4A7J0RDU9u06DM-PH9cURdVCmsR5b-Q.cache +1 -0
  579. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/x_D5iTVQz6qDPNR1C6w0paCQS2KgXKELmeGRd3zd74k.cache +0 -0
  580. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/xadE8jWkyxRxO8HexZZewJDCoOnjhLk4AYeYG9NlJ6E.cache +0 -0
  581. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/xr47Idf1ZXHdbuE9H4jOoIhL_SRK2osF_SnBRVGwakY.cache +0 -0
  582. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/xsaDiWkUAaULXgDAXE4ed-Em89krERV7q9_OdE1j7mk.cache +2 -0
  583. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/xyaHNZT05YWuz_sCo9kERDF985kC2U-Gl-0lgE6oN9s.cache +3 -0
  584. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/y9KWRdO8cFoQ_n-xntPYkXCp_EsyhNNKpFJMkfCaLXI.cache +1 -0
  585. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yA0cnqsnx7GHlCly6U5SRU03q3Ywmb-I-bbWkqwFVEw.cache +1 -0
  586. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yMtgf-4MFojZDe0yN3pMtal-Xt7bJyeJoEIoB63M_KY.cache +1 -0
  587. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yOVY_xPEbEBkPrnB6A9dlKjXoaxfHeXB5nrrCiE4UoI.cache +2 -0
  588. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yXMMUVDK5BB3IsB5nXVTN2LdX2UHaZfCRzTYwPeveFo.cache +1 -0
  589. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ycmKNOPEVDHv9uDokJ4PH_K2A_wuenWp-v9IC1miOn4.cache +1 -0
  590. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yowr6UiaUcAfe3qhEsBwFHEtQ7md0_kqf0p3VXLVB4g.cache +1 -0
  591. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/ypAMwMLZ-LVirVnk8vsxh0LBek1IytbYs-RpWNk7kTg.cache +2 -0
  592. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/yufolkWYEMuHyjhgm6I3jeakDxxk_XIwXK39T5QVJ3I.cache +1 -0
  593. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/z8CEcEX2MMa3jIsmmBe-bqS7riMJPeaZg1YIHc8pMCg.cache +1 -0
  594. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zGTdUHLhLUZM8ad4vUfXIDDAotp7wxFL9asfqPoe2So.cache +0 -0
  595. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zNKiZvyNswOgT7hqE-vp5kBp33eddUa0eCt3fTrD8uU.cache +0 -0
  596. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zTuzdj_fP8IkthReA1j3x5_ioNCbni1h9f83tmt1jn0.cache +2 -0
  597. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zcTDXBEN-TiGWSGEt7xqZnjYkBAHHjAi-1Ng4C7dSL0.cache +0 -0
  598. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zjCZ0yuc3LR7PRhjUbxmCaXb-Pd_iRqjX6UeK4MLBYE.cache +1 -0
  599. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zu1thmhwRDUKaHnnRGkI30bV22dJNLdKzLLygJrIZCI.cache +1 -0
  600. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zugkh89jMjPPoUn5M931aPnQtN-D0ckNlxRtiTSgzT4.cache +1 -0
  601. data/spec/dummy/tmp/cache/assets/development/sprockets/v3.0/zxqF6v6r4k6gQmn8sPbPSPYIvttMnxvx3z8nOATdFuw.cache +0 -0
  602. data/spec/dummy/tmp/react-rails/JSXTransformer.js +15919 -0
  603. data/spec/dummy/tmp/react-rails/react.js +21642 -0
  604. data/spec/integration/navigation_test.rb +10 -0
  605. data/spec/javascripts/support/jasmine.yml +50 -0
  606. data/spec/revelry_data_test.rb +7 -0
  607. data/spec/spec_helper.rb +87 -0
  608. metadata +1316 -0
@@ -0,0 +1,638 @@
1
+ Rev.Store = class Store {
2
+ /*
3
+ * # Constructor
4
+ */
5
+
6
+ /**
7
+ * Create a base data store and associate it with a component.
8
+ *
9
+ * Example:
10
+ *
11
+ * ```
12
+ * constructor(props) {
13
+ * super(props)
14
+ * this.store = new Store(this)
15
+ * }
16
+ * ```
17
+ *
18
+ * @constructor
19
+ * @param {React.Component} component - The component to associate this store
20
+ * with. It will be re-rendered as data is updated.
21
+ */
22
+ constructor(component) {
23
+ this.attach(component)
24
+ _.extend(this, Backbone.Events)
25
+ this.errors = {}
26
+ this.loadPrimary(component.props)
27
+ }
28
+
29
+ /**
30
+ * Load `data` from the JSON API response as the 'primary resource' on this
31
+ * store. Account for both arrays and single resources. Do nothing if there
32
+ * is no `data` on the resp
33
+ * @param {Object} resp - the JSON API style response object
34
+ */
35
+ loadPrimary(resp) {
36
+ if(!resp.data) {
37
+ return
38
+ }
39
+ // Load `data` from the props by default. Assign it to `this.primary`
40
+ if(_.isArray(resp.data)) {
41
+ this.loadPrimaryCollection(resp)
42
+ } else {
43
+ this.loadPrimaryModel(resp)
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Load `data` into a model for the singular resource case
49
+ * @param {Object} props - the JSON API style response object
50
+ */
51
+ loadPrimaryModel(props) {
52
+ let resourceName = _.singularize(props.data.type)
53
+ // If our type is 'foos', make this.foo with App.Models.Foo and load
54
+ // `props.data` into it
55
+ this.primary = this.new(
56
+ resourceName,
57
+ App.Models[_.str.classify(resourceName)],
58
+ props.data
59
+ )
60
+ this.handleTopLevelLinks(props.links)
61
+ return this.primary
62
+ }
63
+
64
+ /**
65
+ * Load `data` into a collection for the multiple resource case
66
+ * @param {Object} props - the JSON API style response object
67
+ */
68
+ loadPrimaryCollection(props) {
69
+ // TODO: How do we handle polymorphic collections as primary?
70
+ if(props.data.length > 0) {
71
+ let resourceName = props.data[0].type
72
+ this.loadCollectionsFrom(props.data)
73
+ this.primary = this[resourceName]
74
+ this.handleTopLevelLinks(props.links)
75
+ return this.primary
76
+ }
77
+ return null
78
+ }
79
+
80
+ handleTopLevelLinks(links) {
81
+ if(this.primary && this.primary.handleLinks) {
82
+ this.primary.handleLinks(links)
83
+ }
84
+ }
85
+
86
+ // TODO: Split each of these sections out as a module once we have the time
87
+
88
+ /*
89
+ * # Interacting with the attached component
90
+ */
91
+
92
+ /**
93
+ * Attach to a component so we force a render when the store is updated
94
+ * @private
95
+ * @param {React.Component} component - The component to which to attach.
96
+ */
97
+ attach(component) {
98
+ if(component && component.forceUpdate) {
99
+ this.__changeCallback = component.forceUpdate.bind(component)
100
+ } else if(Rev.env == 'development') {
101
+ console.warn('You initialized a store without an attached component')
102
+ }
103
+ }
104
+
105
+ /**
106
+ * Detach the attached component so it will not receive any more updates and so
107
+ * we don't have a dangling reference
108
+ * @private
109
+ */
110
+ detach() {
111
+ this.__changeCallback = null
112
+ this.stopListening()
113
+ }
114
+
115
+ /**
116
+ * Called when we have changed the data in the store to tell the attached
117
+ * component that it is time to re-render
118
+ * @protected
119
+ */
120
+ triggerChange() {
121
+ if(this.__changeCallback) {
122
+ this.__changeCallback()
123
+ } else {
124
+ if(Rev.env == 'development') {
125
+ console.warn('Change triggered on detached store.')
126
+ }
127
+ }
128
+ }
129
+
130
+ /*
131
+ * # Working with models
132
+ */
133
+
134
+ /**
135
+ * Get or create a collection for a given resource type
136
+ * For example `getCollectionForResourceName('beers')` would either
137
+ * find `store.beers` or create a new `Beer.Collection` at `store.beers`.
138
+ * @protected
139
+ * @param {String} resourceName - The name of the resource class (API object).
140
+ */
141
+ getCollectionForResourceName(resourceName) {
142
+ if(Rev.env == 'development' && !resourceName) {
143
+ throw 'resourceName arg was not given to getCollectionForResourceName'
144
+ }
145
+
146
+ if(this[resourceName]) {
147
+ return this[resourceName]
148
+ } else {
149
+ let modelClass = _.str.classify(_.singularize(resourceName))
150
+ let collectionClass = App.Models[modelClass].Collection
151
+ return this.new(resourceName, collectionClass)
152
+ }
153
+ }
154
+
155
+ /**
156
+ * Loop through an array of objects, and put into collections based on their
157
+ * type. For example, if the list was:
158
+ *
159
+ * Example:
160
+ * ```
161
+ * [
162
+ * {type: 'users', id: '1'},
163
+ * {type: 'messages', id: '1'},
164
+ * {type: 'users', id: '2'}
165
+ * ]
166
+ * ```
167
+ * We'd end up with a collections this.users with two entries, and
168
+ * this.messages with one entry.
169
+ * @protected
170
+ * @param {Array} list - The list of data objects to consume and place in
171
+ * collections. Each should contain a 'type' property.
172
+ */
173
+ loadCollectionsFrom(list) {
174
+ return (list || []).map(this.loadIntoCollection.bind(this))
175
+ }
176
+
177
+ /**
178
+ * Load one item into the collection which corresponds to its resource type.
179
+ * @protected
180
+ * @param {Object} item - The item to load into the collection. It must have
181
+ * a 'type' property which corresponds to its resource type.
182
+ */
183
+ loadIntoCollection(item) {
184
+ let collection = this.getCollectionForResourceName(item.type)
185
+ return collection.add(item, {silent: true})
186
+ }
187
+
188
+ /**
189
+ * Look through the list, find the first item with the given JSON API type
190
+ *
191
+ */
192
+ findByType(list, type) {
193
+ if(!type) {
194
+ throw 'Type not given in call to findByType'
195
+ }
196
+
197
+ return _(list).find((item) => {
198
+ return item.type == type
199
+ })
200
+ }
201
+
202
+ filterByType(list, type) {
203
+ if(!type) {
204
+ throw 'Type not given in call to filterByType'
205
+ }
206
+
207
+ return _(list).filter((item) => {
208
+ return item.type == type
209
+ })
210
+ }
211
+
212
+ // Create a new instance of klass, with the attributes 'defaults' and store
213
+ // it in this[handle]. Bind events for our event handling
214
+ // NOTE: I think I'll change this API before we go public. Not sure about
215
+ // the automatic binding anymore.
216
+ new(handle, klass, defaults) {
217
+ if(this[handle]) {
218
+ // So we don't leak event handlers if this is a re-assignment
219
+ this.stopListening(this[handle])
220
+ }
221
+
222
+ this[handle] = new klass(defaults)
223
+ this.listenTo(this[handle], 'change', this.triggerChange)
224
+ this.listenTo(this[handle], 'error', this.errorHandler(handle))
225
+ this.bindEvents(handle)
226
+ return this[handle]
227
+ }
228
+
229
+ // Call .save() on the model at this[handle].
230
+ // NOTE: We may move away from backbone, so this may eventually handle AJAX
231
+ // directly.
232
+ save(handle, attributes, options) {
233
+ // First save the related items, then save the model to which handle points
234
+ // Note that if relationships is not set or empty, this will immediately
235
+ // call the inner function (and save)
236
+ this.saveRelations(handle, (options || {}).relationships, () => {
237
+ this.lookupHandle(handle).save(attributes, options)
238
+ })
239
+ }
240
+
241
+ // Look through the associations of handle which are named in 'relationships'
242
+ // and save any unsaved related items (in parallel), then call a callback when
243
+ // all the saves have been completed (either success or failure)
244
+ saveRelations(handle, relationships, callback) {
245
+ let unsaveds = this.unsavedRelatedModels(handle, relationships)
246
+ if(_.isEmpty(relationships) || _.isEmpty(unsaveds)) {
247
+ return callback()
248
+ }
249
+
250
+ let groupCallback = _.after(unsaveds.length, callback)
251
+ unsaveds.map((mdl) => {
252
+ mdl.save(null, {complete: groupCallback})
253
+ })
254
+ }
255
+
256
+ // Look through the associations of handle which are named in 'relationships'
257
+ // and return all the unsaved (new or changed) objects
258
+ unsavedRelatedModels(handle, relationships) {
259
+ // Return early if relationships is unset or empty
260
+ if(_.isEmpty(relationships)) {
261
+ return []
262
+ }
263
+
264
+ let unsaveds = []
265
+ relationships.forEach((relationName) => {
266
+ _.mapIfArray(this.getLink(handle, relationName), (model) => {
267
+ if(model.hasChanged() || model.isNew()) {
268
+ unsaveds.push(model)
269
+ }
270
+ })
271
+ })
272
+ return unsaveds
273
+ }
274
+
275
+ /*
276
+ * SECTION: JSON path utilties
277
+ */
278
+
279
+ // Return the object at JSON path 'handle'
280
+ lookupHandle(handle) {
281
+ return JSONPath({ json: this, path: handle })[0]
282
+ }
283
+
284
+ // Split the path, and return the path of the object which contains the object
285
+ // at `path`.
286
+ // 'contact.links.user' -> 'contact.links'
287
+ parentPath(path) {
288
+ var parts = path.split('.')
289
+ parts.pop()
290
+ return parts.join('.')
291
+ }
292
+
293
+ // Split the path and return just the last part, the final attribute name
294
+ // 'contact.name.' -> 'name'
295
+ childPath(path) {
296
+ var parts = path.split('.')
297
+ return parts[parts.length - 1]
298
+ }
299
+
300
+ // Return the object which contains the object at the given path.
301
+ // E.g. if your store is like this:
302
+ // {
303
+ // "contact": {
304
+ // "name": "foo"
305
+ // }
306
+ // }
307
+ // parentPath('contact.name') -> {"name": "foo"}
308
+ // We primarily use this in setters, so that we can update the parent object
309
+ // with the new value of a child.
310
+ parent(path) {
311
+ if(this.parentPath(path) == '') {
312
+ return this;
313
+ }
314
+ return JSONPath({ json: this, path: this.parentPath(path) })[0]
315
+ }
316
+
317
+ /*
318
+ * SECTION: Setters and getters
319
+ */
320
+
321
+ // Get the value of the model attribute at path
322
+ // Assumes that the parent of the attribute is a backbone model/collection or
323
+ // at the least, responds to `get`
324
+ // E.g. if my store is
325
+ // {
326
+ // "contact": { // A backbone model
327
+ // ...,
328
+ // attributes: {
329
+ // name: 'Mr. Foo Bar'
330
+ // }
331
+ // }
332
+ // }
333
+ // then store.get('contact.name') -> 'Mr. Foo Bar'
334
+ get(path) {
335
+ let parent = this.parent(path)
336
+ if(parent.get && parent != this) {
337
+ return parent.get(this.childPath(path))
338
+ } else {
339
+ return parent[this.childPath(path)]
340
+ }
341
+ }
342
+
343
+ // Set the value of the model attribute at path
344
+ // Similar to get in operation, but sets the value instead of simply
345
+ // returning it.
346
+ // TODO: Figure out our action-lifecycle and update batching strategy
347
+ set(path, value) {
348
+ let parent = this.parent(path)
349
+ if(parent.set && parent != this) {
350
+ parent.set(this.childPath(path), value)
351
+ } else {
352
+ parent[this.childPath(path)] = value
353
+ this.triggerChange()
354
+ }
355
+ }
356
+
357
+ // Traverse a included related resources, following a JSON API
358
+ // linkage-included structure: http://jsonapi.org/format/#fetching-includes
359
+ // It assumes you have already loaded the objects into collections named
360
+ // after their types (e.g. with loadCollectionFrom)
361
+ // - Takes variable arguments. The first is the path of the base resource,
362
+ // and each additional argument is a related item named link which should be
363
+ // followed.
364
+ getLink(target, ...relatedItemNames) {
365
+ var target = this.lookupHandle(arguments[0])
366
+
367
+ let relationsLen = relatedItemNames.length
368
+ for(let i = 0; i < relationsLen; i++) {
369
+ let linkName = relatedItemNames[i]
370
+
371
+ target = _.flatMapIfArray(target, (target2) => {
372
+ return this.followLinkFromTarget(target2, linkName)
373
+ })
374
+ if(!target) {
375
+ return
376
+ }
377
+ }
378
+ return target
379
+ }
380
+
381
+ linkExists(target, linkName) {
382
+ if(target) {
383
+ var linkRecords = this.linksAndRelationships(target)
384
+ return target &&
385
+ linkRecords &&
386
+ linkRecords[linkName] &&
387
+ this.linkageForName(linkRecords, linkName)
388
+ } else {
389
+ return false
390
+ }
391
+ }
392
+
393
+ // Get target's linkName link and then look up and return the associated
394
+ // object
395
+ followLinkFromTarget(target, linkName) {
396
+ let linkage
397
+ if(this.linkExists(target, linkName)) {
398
+ return this.lookupLinkage(
399
+ this.linkageForName(this.linksAndRelationships(target), linkName)
400
+ )
401
+ }
402
+ }
403
+
404
+ // Take a linkage object that looks like {"id": "1", "type": "persons"}
405
+ // or an array of linkage objects, and look up the corresponding objects
406
+ lookupLinkage(linkage) {
407
+ return _.mapIfArray(linkage, (linkageItem) => {
408
+ if(linkageItem.id) {
409
+ // Saved linkage item (has id)
410
+ return this[linkageItem.type].get(linkageItem.id)
411
+ } else {
412
+ // Unsaved linkage item (compare on cid instead)
413
+ return this[linkageItem.type].find((candidateRelated) => {
414
+ return candidateRelated.cid == linkageItem.cid
415
+ })
416
+ }
417
+ })
418
+ }
419
+
420
+ // help deal with key name differences between JSON API < 1 and JSON API >= 1
421
+ // by supporting both 'links' and 'relationships'
422
+ // Can handle single targets, or an array of targets (via mapIfArray)
423
+ // If target is array-like, then we return an array of linkage/relationship
424
+ // objects
425
+ linksAndRelationships(target) {
426
+ return _.mapIfArray(target, (targetItem) => {
427
+ return _.extend({}, targetItem.get('links'), targetItem.get('relationships'))
428
+ })
429
+ }
430
+
431
+ // help deal with key name differences between JSON API < 1 and JSON API >= 1
432
+ // by supporting both 'data' and 'linkage'
433
+ linkageForName(links, linkName) {
434
+ return (links[linkName].data || links[linkName].linkage)
435
+ }
436
+
437
+
438
+ // Follow a set of links from a base handle and then set the value of the last
439
+ // link to a new value (which is a linkage object as defined by JSON API)
440
+ setLink(/* handle, links..., newValue */) {
441
+ // parsing out the variable args
442
+ let argCount = arguments.length
443
+ let newValue = _(arguments).last()
444
+ let childLinkName = arguments[argCount - 2]
445
+ let parentArgs = Array.prototype.slice.call(arguments, 0, argCount - 2)
446
+
447
+ // lookup the object which contains the terminal link we want to set
448
+ let parent = this.getLink.apply(this, parentArgs)
449
+
450
+ // Actually set the linkage to the new linkage object and make sure to
451
+ // trigger a re-render
452
+ this.linksAndRelationships(parent)[childLinkName].data = newValue
453
+ this.triggerChange()
454
+ }
455
+
456
+ // Friendly method for setting a relation. This handles both sides of the
457
+ // operation: 1. Updating the collection of objects of the type, so that the
458
+ // new value is present in the collection (and can be linked to) and 2.
459
+ // actually updating the link in the parent resource, associated the parent
460
+ // and related objects
461
+ setRelation() {
462
+ // Build a linkage (or array of linkages) for the new value of the relation
463
+ let newValue = _(arguments).last()
464
+ let newValueLink = this.linkageForObject(newValue)
465
+
466
+ let setLinkArgs = Array.prototype.slice.call(arguments)
467
+ setLinkArgs[setLinkArgs.length - 1] = newValueLink
468
+
469
+ this.setLink.apply(this, setLinkArgs)
470
+ }
471
+
472
+ // Take an object, make sure it is stored in its type collection, and then
473
+ // provide the linkage object needed to associate it with other items
474
+ linkageForObject(valueObject) {
475
+ if(_.isArray(valueObject)) {
476
+ return this.linkageAttributes(this.loadCollectionsFrom(valueObject))
477
+ } else {
478
+ return this.linkageAttributes(this.loadIntoCollection(valueObject))
479
+ }
480
+ }
481
+
482
+ // Take a full object and convert it to the corresponding linkage as defined
483
+ // for JSON API
484
+ linkageAttributes(relatedObject) {
485
+ return _.mapIfArray(relatedObject, (item) => {
486
+ return {
487
+ id: item.id,
488
+ type: item.type || item.get('type'),
489
+ cid: item.cid,
490
+ }
491
+ })
492
+ }
493
+
494
+ pathForModel(model) {
495
+ let type = model.get('type')
496
+ let index = this[type].indexOf(model)
497
+ return `${type}.models[${index}]`
498
+ }
499
+
500
+ /*
501
+ * SECTION: Model event handling
502
+ */
503
+
504
+ // Read the declarative event map and bind the appropriate event handlers
505
+ bindEvents(handle) {
506
+ var eventDefs = this.handlersForHandle(handle)
507
+
508
+ _(eventDefs).each((value, key) => {
509
+ this.listenTo(this.lookupHandle(handle), key, value.bind(this))
510
+ })
511
+ }
512
+
513
+ /**
514
+ * Lookup the event handlers in the declarative map for the object referenced
515
+ * by the given handle. Also merge in the default handlers
516
+ * @param {String} handle - the handle of the object to look up the event
517
+ * handlers for
518
+ */
519
+ handlersForHandle(handle) {
520
+ let handlers = {}
521
+ let specs = this.handlerSpecs(handle)
522
+ let defaults = this.defaultEventHandlers()
523
+ let defaultHandler, specHandler
524
+
525
+ let allKeys = _.union(_.keys(specs), _.keys(defaults))
526
+
527
+ _.forEach(allKeys, (key) => {
528
+ defaultHandler = defaults[key]
529
+ specHandler = specs[key]
530
+ handlers[key] = this.makeCompoundHandler(defaultHandler, specHandler)
531
+ })
532
+
533
+ return handlers
534
+ }
535
+
536
+ makeCompoundHandler(firstFn, secondFn) {
537
+ if(firstFn && secondFn) {
538
+ return (...eventArgs) => {
539
+ firstFn.apply(this, eventArgs)
540
+ secondFn.apply(this, eventArgs)
541
+ }
542
+ } else {
543
+ return firstFn || secondFn
544
+ }
545
+ }
546
+
547
+ handlerSpecs(handle) {
548
+ return ((this.events && this.events[handle]) || {})
549
+ }
550
+
551
+ /**
552
+ * Default event handlers for any newly allocated model or collection on the
553
+ * store. Currently, this is one generic sync handler that processes related
554
+ * items into collections and handles new top level links (i.e. pagination)
555
+ */
556
+ defaultEventHandlers() {
557
+ return {
558
+ sync: this.handleDefaultSync.bind(this)
559
+ }
560
+ }
561
+
562
+ /**
563
+ * Default sync handler. Processes included items into collections so we can
564
+ * look them up via links later. Also handles new pagination info from the
565
+ * top level links.
566
+ */
567
+ handleDefaultSync(modelOrCollection, resp, options) {
568
+ // If the thing we synced was the main collection, the top level links
569
+ // object contains our pagination stuff. Make sure that gets set on the
570
+ // collection
571
+ if(modelOrCollection == this.primary) {
572
+ this.handleTopLevelLinks(resp.links)
573
+ }
574
+ this.loadCollectionsFrom(resp.included)
575
+ this.triggerChange()
576
+ }
577
+
578
+ unbindEvents(handle) {
579
+ this.stopListening(this.lookupHandle(handle))
580
+ }
581
+
582
+ // Return an error handler bound to this, and curry in the handle so it is
583
+ // available when the handler is called
584
+ errorHandler(handle) {
585
+ return this.handleError.bind(this, handle)
586
+ }
587
+
588
+ // Default error behavior-- process the errors in the JSON API format,
589
+ // and put them in an errors object so we can display them later
590
+ // http://jsonapi.org/format/#errors
591
+ handleError(handle, model, resp, options) {
592
+ var error, path, parent, index
593
+ // If we don't have JSON API errors, skip the rest of this method.
594
+ // We'll still get the error in the console for diagnostic purposes.
595
+ if(!resp || !resp.responseJSON || !resp.responseJSON.errors) {
596
+ return
597
+ }
598
+ var errors = resp.responseJSON.errors
599
+
600
+ for(error of errors) {
601
+ path = handle;
602
+ parent = this.lookupHandle(handle)
603
+
604
+ if(parent.length != null) {
605
+ index = parent.indexOf(model)
606
+ /* parent is array or collection */
607
+ if(parent.models) {
608
+ path = `${handle}.models[${index}]`
609
+ } else {
610
+ path = `${handle}[${index}]`
611
+ }
612
+ }
613
+
614
+ // TODO: Remove support for error.path once JSON API Resources no longer
615
+ // sends it.
616
+ if(error.path){
617
+ path += _.dasherize(error.path).replace('/', '.')
618
+ } else if(error.source && error.source.pointer) {
619
+ let attributeName = _.last(error.source.pointer.split('/'))
620
+ path += '.' + _.dasherize(attributeName)
621
+ }
622
+
623
+ if(this.errors[path] == null) {
624
+ this.errors[path] = []
625
+ }
626
+ this.errors[path].push(error.detail)
627
+ }
628
+ this.triggerChange()
629
+ }
630
+
631
+ resetErrors() {
632
+ this.errors = {}
633
+ }
634
+
635
+ resetErrorFor(handle) {
636
+ this.errors[handle] = null
637
+ }
638
+ }
@@ -0,0 +1,32 @@
1
+ _.mixin({
2
+ // Strip an object any keys paired with null values
3
+ compactObject: function(object) {
4
+ let newObject = _.extend({}, object)
5
+ _(newObject).each((v, k) => {
6
+ if(v == null) {
7
+ delete newObject[k]
8
+ }
9
+ })
10
+ return newObject
11
+ },
12
+ // If arrayOrObject is an array, map over it with iteree, otherwise pass
13
+ // arrayOrObject to iteree once. Useful for removing conditionals from methods
14
+ // that need to handle individual items and also handle arrays of items by
15
+ // performing the same operation on each item. This is common when processing
16
+ // JSON API structures.
17
+ mapIfArray: function(arrayOrObject, iteree) {
18
+ if(_.isArray(arrayOrObject)) {
19
+ return arrayOrObject.map(iteree)
20
+ } else {
21
+ return iteree(arrayOrObject)
22
+ }
23
+ },
24
+ // Similar to mapIfArray from above, but it also flattens the resulting array
25
+ flatMapIfArray: function(arrayOrObject, iteree) {
26
+ if(_.isArray(arrayOrObject)) {
27
+ return _.flatten(arrayOrObject.map(iteree))
28
+ } else {
29
+ return iteree(arrayOrObject)
30
+ }
31
+ },
32
+ })
@@ -0,0 +1,10 @@
1
+ //= require revelry_data/utils
2
+ //= require revelry/extensions/mixins
3
+ //= require vendor/underscore.inflections
4
+ //= require vendor/backbone-jsonapi
5
+ //= require vendor/jsonpath
6
+ //= require revelry_data/models/BaseModel
7
+ //= require revelry_data/models/BaseCollection
8
+ //= require revelry_data/store
9
+ //= require_tree ./revelry_data/mixins
10
+ //= require_tree ./revelry_data/components