yellow-brick-road 0.1.1

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 (233) hide show
  1. data/README.rst +148 -0
  2. data/Rakefile +37 -0
  3. data/lib/tasks/yellow-brick-road_tasks.rake +4 -0
  4. data/lib/yellow-brick-road.rb +6 -0
  5. data/lib/yellow-brick-road/config.rb +15 -0
  6. data/lib/yellow-brick-road/directive_processor.rb +68 -0
  7. data/lib/yellow-brick-road/engine.rb +22 -0
  8. data/lib/yellow-brick-road/soy_processor.rb +56 -0
  9. data/lib/yellow-brick-road/utils.rb +38 -0
  10. data/lib/yellow-brick-road/version.rb +3 -0
  11. data/test/dummy/Rakefile +7 -0
  12. data/test/dummy/app/assets/javascripts/application.js +12 -0
  13. data/test/dummy/app/assets/javascripts/closure-deps.js +4 -0
  14. data/test/dummy/app/assets/javascripts/my-closure/simple.js.soy +14 -0
  15. data/test/dummy/app/assets/javascripts/my-closure/start.js +25 -0
  16. data/test/dummy/app/assets/stylesheets/application.css +7 -0
  17. data/test/dummy/app/controllers/application_controller.rb +7 -0
  18. data/test/dummy/app/helpers/application_helper.rb +2 -0
  19. data/test/dummy/app/views/application/index.html.erb +0 -0
  20. data/test/dummy/app/views/layouts/application.html.erb +18 -0
  21. data/test/dummy/config.ru +4 -0
  22. data/test/dummy/config/application.rb +51 -0
  23. data/test/dummy/config/boot.rb +10 -0
  24. data/test/dummy/config/environment.rb +5 -0
  25. data/test/dummy/config/environments/development.rb +30 -0
  26. data/test/dummy/config/environments/production.rb +60 -0
  27. data/test/dummy/config/environments/test.rb +39 -0
  28. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  29. data/test/dummy/config/initializers/inflections.rb +10 -0
  30. data/test/dummy/config/initializers/mime_types.rb +5 -0
  31. data/test/dummy/config/initializers/secret_token.rb +7 -0
  32. data/test/dummy/config/initializers/session_store.rb +8 -0
  33. data/test/dummy/config/initializers/wrap_parameters.rb +10 -0
  34. data/test/dummy/config/initializers/yellow_brick_road.rb +2 -0
  35. data/test/dummy/config/locales/en.yml +5 -0
  36. data/test/dummy/config/routes.rb +58 -0
  37. data/test/dummy/log/development.log +13924 -0
  38. data/test/dummy/log/test.log +0 -0
  39. data/test/dummy/public/404.html +26 -0
  40. data/test/dummy/public/422.html +26 -0
  41. data/test/dummy/public/500.html +26 -0
  42. data/test/dummy/public/favicon.ico +0 -0
  43. data/test/dummy/script/rails +6 -0
  44. data/test/dummy/tmp/cache/assets/BE0/120/sprockets%2F751842b8c6750008c7310d182600d173 +142 -0
  45. data/test/dummy/tmp/cache/assets/C19/950/sprockets%2F142437f1d8d9424007b4a882a5429333 +1372 -0
  46. data/test/dummy/tmp/cache/assets/C4B/D00/sprockets%2F400f22c081529179ce3d079457de3009 +806 -0
  47. data/test/dummy/tmp/cache/assets/C5A/EE0/sprockets%2Fb711429ed948c503b718d077037780f8 +0 -0
  48. data/test/dummy/tmp/cache/assets/C5B/A80/sprockets%2F508569b474262724c61a461f7777dab7 +1118 -0
  49. data/test/dummy/tmp/cache/assets/C6C/660/sprockets%2F2c298b3b02232a21527680685a3efc30 +9289 -0
  50. data/test/dummy/tmp/cache/assets/C72/8A0/sprockets%2F167b265129e30d87d253c406db305c60 +293 -0
  51. data/test/dummy/tmp/cache/assets/C7E/9F0/sprockets%2F89862076204c62c4593ac20de32da909 +9 -0
  52. data/test/dummy/tmp/cache/assets/C8B/5F0/sprockets%2Fc6a4470b5c21e285e829a99365839b24 +0 -0
  53. data/test/dummy/tmp/cache/assets/C92/D20/sprockets%2F2e618f7805f445889aec94885a500f03 +457 -0
  54. data/test/dummy/tmp/cache/assets/C98/FD0/sprockets%2Fb11442af041f96e87a43a1dc11231745 +283 -0
  55. data/test/dummy/tmp/cache/assets/CA3/520/sprockets%2F5379d7143c6c52b11b88dc0ab5436133 +277 -0
  56. data/test/dummy/tmp/cache/assets/CA5/450/sprockets%2F6bb727c9312a749134ad67323a317f0d +73 -0
  57. data/test/dummy/tmp/cache/assets/CA5/4F0/sprockets%2Feeb7de7771527700af194c0441d29101 +709 -0
  58. data/test/dummy/tmp/cache/assets/CA6/E90/sprockets%2F611f68180f43c4181f06ae5c5f8201e2 +1546 -0
  59. data/test/dummy/tmp/cache/assets/CA7/310/sprockets%2F45664cf816315200b574e029fde6f10a +0 -0
  60. data/test/dummy/tmp/cache/assets/CA9/9D0/sprockets%2F2672e32464cf7267c4ba3d028f54b153 +224 -0
  61. data/test/dummy/tmp/cache/assets/CAB/5A0/sprockets%2F7f50e0289f150c8636ac9253129bc13c +2556 -0
  62. data/test/dummy/tmp/cache/assets/CB5/7E0/sprockets%2F42ff6672683b2029233a800e7539eeee +474 -0
  63. data/test/dummy/tmp/cache/assets/CB6/DC0/sprockets%2F2f9882155bb2d4d3ab5d708951857c60 +494 -0
  64. data/test/dummy/tmp/cache/assets/CBB/680/sprockets%2F1dc336d96fb52df34b458185559922b5 +1018 -0
  65. data/test/dummy/tmp/cache/assets/CBC/640/sprockets%2F67d2e0d9e5129d237e575d2780c64b47 +1260 -0
  66. data/test/dummy/tmp/cache/assets/CBE/550/sprockets%2Fd680cac830e0b3408ba910f0b0421147 +25 -0
  67. data/test/dummy/tmp/cache/assets/CC7/790/sprockets%2F69941f32a12e4f99d4a57f65386d870d +608 -0
  68. data/test/dummy/tmp/cache/assets/CCB/F80/sprockets%2Fa865701ef2ec41155e524772c31a1a2b +1088 -0
  69. data/test/dummy/tmp/cache/assets/CCE/580/sprockets%2F879411ed27ed1c557d57853d8f579b56 +0 -0
  70. data/test/dummy/tmp/cache/assets/CD0/070/sprockets%2F6748fe8481965f260d9c56b7f9f508a2 +1530 -0
  71. data/test/dummy/tmp/cache/assets/CD4/750/sprockets%2Faf3505141ecb3169ce41ce519d136924 +0 -0
  72. data/test/dummy/tmp/cache/assets/CD6/A90/sprockets%2F3f55ac75b9fb8426312116bcb940a580 +2539 -0
  73. data/test/dummy/tmp/cache/assets/CD9/6C0/sprockets%2F5e2458bc52da90ba349a66035e3b6752 +0 -0
  74. data/test/dummy/tmp/cache/assets/CD9/F50/sprockets%2F9008bf696500cfae1d61f045f209181e +256 -0
  75. data/test/dummy/tmp/cache/assets/CDB/B40/sprockets%2F53529a22c994570a0df4742c0bfe61f4 +0 -0
  76. data/test/dummy/tmp/cache/assets/CDC/D10/sprockets%2F1e775b4ff06b4401c07503ce95a839b5 +75 -0
  77. data/test/dummy/tmp/cache/assets/CDE/CD0/sprockets%2F141066798b4acf07053f7e3a6cb4e555 +1613 -0
  78. data/test/dummy/tmp/cache/assets/CE1/760/sprockets%2F245fe11803630fe30d0cf8a869886ab5 +357 -0
  79. data/test/dummy/tmp/cache/assets/CE1/FA0/sprockets%2F863d1650ef066e4a2168bc57c7c0e096 +0 -0
  80. data/test/dummy/tmp/cache/assets/CE2/310/sprockets%2Fd38075d5592ecaf82e43526c03b467c4 +1545 -0
  81. data/test/dummy/tmp/cache/assets/CE2/420/sprockets%2F30f2e8f30477e80cf6416dfe27307c07 +204 -0
  82. data/test/dummy/tmp/cache/assets/CE2/D70/sprockets%2F467c44b63644e0f44dd06a585f36f1a6 +522 -0
  83. data/test/dummy/tmp/cache/assets/CE3/670/sprockets%2Fddd11860b444cd0f9996be0c46762318 +796 -0
  84. data/test/dummy/tmp/cache/assets/CE4/0B0/sprockets%2Ff11535d785c0d34349c64d673bd4b28f +1105 -0
  85. data/test/dummy/tmp/cache/assets/CE4/590/sprockets%2Fd68edcc87a4ae302794093081b45b819 +10 -0
  86. data/test/dummy/tmp/cache/assets/CE4/D60/sprockets%2F61772e4a60b616f74da91b838a2f4f82 +0 -0
  87. data/test/dummy/tmp/cache/assets/CE6/DD0/sprockets%2F2fe073024a2bf26bd98458388b57af37 +1355 -0
  88. data/test/dummy/tmp/cache/assets/CE7/160/sprockets%2Fba1f9939f031b4356ec1869d40fc2747 +1261 -0
  89. data/test/dummy/tmp/cache/assets/CE8/C70/sprockets%2Fc6c9ba3c677b5e2af8520395192c9445 +173 -0
  90. data/test/dummy/tmp/cache/assets/CEA/8B0/sprockets%2Ff77e549cb6d37604105f35d4e67d8c21 +511 -0
  91. data/test/dummy/tmp/cache/assets/CEA/AA0/sprockets%2F5f816982c86d2e6b72b2f5f65c51d070 +1529 -0
  92. data/test/dummy/tmp/cache/assets/CEA/C10/sprockets%2F9dcd541e67c299ab076a44a2183872f8 +0 -0
  93. data/test/dummy/tmp/cache/assets/CF1/5A0/sprockets%2F1a697695edf2bb7b49a2896904218bc7 +115 -0
  94. data/test/dummy/tmp/cache/assets/CF4/480/sprockets%2F5e99c77e93f4a522c84357e62b25e0f7 +43 -0
  95. data/test/dummy/tmp/cache/assets/CF7/460/sprockets%2Fd12ea9733fe3c92456f57f9145569b9c +0 -0
  96. data/test/dummy/tmp/cache/assets/CF7/470/sprockets%2F2897897a166ca3369fecb88f83f211b5 +435 -0
  97. data/test/dummy/tmp/cache/assets/CFA/760/sprockets%2Fa9024adba14091e0635c6874d1db4e22 +0 -0
  98. data/test/dummy/tmp/cache/assets/D01/F30/sprockets%2Fe639a15b6e0cca37d12443b408e1166f +25 -0
  99. data/test/dummy/tmp/cache/assets/D02/9F0/sprockets%2Fb99eae308897fe88cb9414b96824098b +0 -0
  100. data/test/dummy/tmp/cache/assets/D03/330/sprockets%2F1e003cdb3e7dcc9307e84090ad457127 +454 -0
  101. data/test/dummy/tmp/cache/assets/D03/8B0/sprockets%2Ff74632bddf2c0b2018ca7b736309380e +365 -0
  102. data/test/dummy/tmp/cache/assets/D05/0A0/sprockets%2Fe57658220260db13eb5577aef42cb61b +257 -0
  103. data/test/dummy/tmp/cache/assets/D05/920/sprockets%2F909507434dcc270db4853e4c147f0aac +31 -0
  104. data/test/dummy/tmp/cache/assets/D08/510/sprockets%2Fa567be6cb6d7310096f1739b25a5a3f0 +50 -0
  105. data/test/dummy/tmp/cache/assets/D08/9F0/sprockets%2F1d61d2c89ca50957066bacc5b69011f5 +1424 -0
  106. data/test/dummy/tmp/cache/assets/D0A/790/sprockets%2Feb16913e6504c9b0d3be431de39e4751 +300 -0
  107. data/test/dummy/tmp/cache/assets/D0C/C50/sprockets%2Fd6613bee8b40d50459af6b52a7084f34 +796 -0
  108. data/test/dummy/tmp/cache/assets/D0D/030/sprockets%2Fba3f13b4a444679e8bc2549226ec743b +21 -0
  109. data/test/dummy/tmp/cache/assets/D0D/350/sprockets%2F2670bce036d485e15d059c0f1e98f24a +207 -0
  110. data/test/dummy/tmp/cache/assets/D13/270/sprockets%2F497cb163e6317e3fc1565d832f406cfb +348 -0
  111. data/test/dummy/tmp/cache/assets/D13/380/sprockets%2F786d003c9c7fb759dd26c1030c087cf6 +813 -0
  112. data/test/dummy/tmp/cache/assets/D13/7C0/sprockets%2F528d22310a9ab8e6fba08d82844ce795 +0 -0
  113. data/test/dummy/tmp/cache/assets/D15/F60/sprockets%2Fa28394e3f80365b5bc86794dd46daa22 +0 -0
  114. data/test/dummy/tmp/cache/assets/D18/500/sprockets%2Fd22c2d97d1db2154f2f7592906e957ea +1001 -0
  115. data/test/dummy/tmp/cache/assets/D1B/C70/sprockets%2F1c04848b1e1d6e8e33b8581f8c8128ff +223 -0
  116. data/test/dummy/tmp/cache/assets/D1C/600/sprockets%2Fa0601f99147f59ddd6266e6aff077e14 +0 -0
  117. data/test/dummy/tmp/cache/assets/D1E/470/sprockets%2Fb3933e694547b78bf6fb15f44a4623fe +53 -0
  118. data/test/dummy/tmp/cache/assets/D1F/480/sprockets%2F545164168becf42b289efc8708f1db68 +1278 -0
  119. data/test/dummy/tmp/cache/assets/D21/630/sprockets%2F0a14114729c14637f2e8f122acabd1ab +823 -0
  120. data/test/dummy/tmp/cache/assets/D24/A90/sprockets%2F21c8a0d48c51b8585ba03bc112ecd153 +692 -0
  121. data/test/dummy/tmp/cache/assets/D25/D30/sprockets%2F3b937f4c16d2aa0a28fc02a0e922712b +1441 -0
  122. data/test/dummy/tmp/cache/assets/D25/F30/sprockets%2Fe251527c0c018f4b4ad44b2ad7064fb0 +2255 -0
  123. data/test/dummy/tmp/cache/assets/D26/DE0/sprockets%2F761ac1bdb0739cc56fa0c1224b137b09 +0 -0
  124. data/test/dummy/tmp/cache/assets/D2A/C30/sprockets%2F978fe7268754f451c59b9ccb323ffa56 +0 -0
  125. data/test/dummy/tmp/cache/assets/D2B/0F0/sprockets%2Fbf223af03335cfc08a71e549e10c0e27 +2539 -0
  126. data/test/dummy/tmp/cache/assets/D2E/6D0/sprockets%2F9e7fda3affb389313cc50223f01c0324 +0 -0
  127. data/test/dummy/tmp/cache/assets/D2F/110/sprockets%2F3730ffe2ed34c1219d580bd1615ea7b0 +2239 -0
  128. data/test/dummy/tmp/cache/assets/D2F/F10/sprockets%2F9cac242f0bf5ec00079ea3a463e26552 +153 -0
  129. data/test/dummy/tmp/cache/assets/D30/1D0/sprockets%2Fd690a26a0b0ae138c1c48d257a7674bc +589 -0
  130. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  131. data/test/dummy/tmp/cache/assets/D36/940/sprockets%2Fb4ba462ac9f4aac561c36e60367c1378 +572 -0
  132. data/test/dummy/tmp/cache/assets/D37/090/sprockets%2F2f2e71ebbc240014ebf648f0917e854a +798 -0
  133. data/test/dummy/tmp/cache/assets/D3A/440/sprockets%2F6d332243647c841dea36ed822cdfc23e +165 -0
  134. data/test/dummy/tmp/cache/assets/D3B/5A0/sprockets%2F82e05cf8c88ba8cb1c87e50d51372a03 +0 -0
  135. data/test/dummy/tmp/cache/assets/D41/B30/sprockets%2Fba1b93913dd01d83ac9a96df334456f8 +0 -0
  136. data/test/dummy/tmp/cache/assets/D43/D90/sprockets%2F04f3a5926d5a7672456dc7afa73d0c7f +38 -0
  137. data/test/dummy/tmp/cache/assets/D45/1F0/sprockets%2F1bfa855d9c10ff2431a9a548958cc5e4 +83 -0
  138. data/test/dummy/tmp/cache/assets/D45/B10/sprockets%2F643f3d9b216e48df952b7f150a46a7ec +60 -0
  139. data/test/dummy/tmp/cache/assets/D46/040/sprockets%2F199546844e5939721a5afcbcce4ea43a +143 -0
  140. data/test/dummy/tmp/cache/assets/D49/320/sprockets%2Fd8123eb229e34c9f507f7b1876f1c4ee +506 -0
  141. data/test/dummy/tmp/cache/assets/D49/750/sprockets%2Ff41ef1c0832b7294fb15588ff5c783cb +0 -0
  142. data/test/dummy/tmp/cache/assets/D49/930/sprockets%2F1071926698fa55abc71e1b6fd966dfe1 +72 -0
  143. data/test/dummy/tmp/cache/assets/D49/D10/sprockets%2Fb67b8d7cc7579352a91694f9ae10cdb0 +127 -0
  144. data/test/dummy/tmp/cache/assets/D4A/160/sprockets%2Fcbd8988b5e18d153eff6230d72e9046a +516 -0
  145. data/test/dummy/tmp/cache/assets/D4A/2B0/sprockets%2Ffcdf002d38fd938bf7226b46b76706c8 +1101 -0
  146. data/test/dummy/tmp/cache/assets/D4E/2F0/sprockets%2F77cb87ae57f0d8c25cdaa74181a64997 +1441 -0
  147. data/test/dummy/tmp/cache/assets/D4F/060/sprockets%2Fa9e66b39ada7394a29bf44f3a682f665 +511 -0
  148. data/test/dummy/tmp/cache/assets/D50/BD0/sprockets%2F88650dd57ef64075462e6dae757dbe2c +0 -0
  149. data/test/dummy/tmp/cache/assets/D53/CA0/sprockets%2Fa85032e82709a043fbb2ec00e04f2bbd +0 -0
  150. data/test/dummy/tmp/cache/assets/D54/BF0/sprockets%2F91970514ff528e8d2bfd81f1ec83c9c8 +240 -0
  151. data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +10 -0
  152. data/test/dummy/tmp/cache/assets/D56/500/sprockets%2F75ebadd035f1324b194034af92eac3a0 +0 -0
  153. data/test/dummy/tmp/cache/assets/D5A/900/sprockets%2F5729f77d97fdee53b1942cf17f6f05e4 +474 -0
  154. data/test/dummy/tmp/cache/assets/D5A/D50/sprockets%2F81bace3db2c2f1241175ff3c5009d08c +0 -0
  155. data/test/dummy/tmp/cache/assets/D5B/C70/sprockets%2Fe64119a9db7017b7ab3b0da1b6076f0d +44 -0
  156. data/test/dummy/tmp/cache/assets/D5E/4D0/sprockets%2F756f25e4ad861a050cdc41bb8414e4ab +126 -0
  157. data/test/dummy/tmp/cache/assets/D5E/730/sprockets%2Fd30caf70b387c4604326bdda32aeb549 +0 -0
  158. data/test/dummy/tmp/cache/assets/D5E/AA0/sprockets%2F790dd07caaaacb30ceb0174664e90817 +136 -0
  159. data/test/dummy/tmp/cache/assets/D64/D30/sprockets%2Fe4bd8f60a3a446274c3cb2f5d16563ac +590 -0
  160. data/test/dummy/tmp/cache/assets/D66/400/sprockets%2Fecb7401d20daf25605a7afad3a793778 +0 -0
  161. data/test/dummy/tmp/cache/assets/D67/250/sprockets%2F8422eb26855ca9c953a3bf1aeade8004 +0 -0
  162. data/test/dummy/tmp/cache/assets/D69/900/sprockets%2F28ae64f52cb18f77b1a1bd9c51293da4 +0 -0
  163. data/test/dummy/tmp/cache/assets/D6A/870/sprockets%2F1ece6a51b42f9280f4cee9020c94b72e +197 -0
  164. data/test/dummy/tmp/cache/assets/D6B/DD0/sprockets%2F9a0abc735e27fc61dab019788518eba4 +164 -0
  165. data/test/dummy/tmp/cache/assets/D6E/CC0/sprockets%2F8b4fbcec2475e7203b8859baf8e310a3 +0 -0
  166. data/test/dummy/tmp/cache/assets/D72/470/sprockets%2Fbc0c6d850e7c769e83d58eb3e6061b2a +2556 -0
  167. data/test/dummy/tmp/cache/assets/D72/9D0/sprockets%2F9402daf6da6f7eed331a9d78216cb761 +0 -0
  168. data/test/dummy/tmp/cache/assets/D74/070/sprockets%2F91ae68f698a39bd7d0d11150fc46e4cd +418 -0
  169. data/test/dummy/tmp/cache/assets/D74/7F0/sprockets%2F22dad1069ea6a8f29ae757c44e18ec83 +0 -0
  170. data/test/dummy/tmp/cache/assets/D75/3C0/sprockets%2F44e2ae51b97853d8ecda7b264a267c7d +1630 -0
  171. data/test/dummy/tmp/cache/assets/D77/780/sprockets%2Ffa2abdfb0b62867c346f79187b8e42d5 +823 -0
  172. data/test/dummy/tmp/cache/assets/D79/850/sprockets%2F4d540586ed379fd9a70fa0b7ce4f5b27 +306 -0
  173. data/test/dummy/tmp/cache/assets/D7A/B60/sprockets%2F5925c92f48caff053d08853dc69e5bba +0 -0
  174. data/test/dummy/tmp/cache/assets/D81/C90/sprockets%2F19aca5c835efce74878c23e581e2a89e +2239 -0
  175. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +11228 -0
  176. data/test/dummy/tmp/cache/assets/D8B/B10/sprockets%2Fbb7a2305a8f2832631863bbababb67be +301 -0
  177. data/test/dummy/tmp/cache/assets/D92/3B0/sprockets%2F93dc71f411faf72ec8ef0b5d217b51a0 +505 -0
  178. data/test/dummy/tmp/cache/assets/D92/EE0/sprockets%2Ffd051ea0abf6be6970754aa732e40c8b +289 -0
  179. data/test/dummy/tmp/cache/assets/D93/810/sprockets%2F7dc1ac5e1b83ba5144e34cf156d48a8a +471 -0
  180. data/test/dummy/tmp/cache/assets/D94/020/sprockets%2F35cb4ce22488fb5bdd260508ca47a3fb +239 -0
  181. data/test/dummy/tmp/cache/assets/D94/EC0/sprockets%2F8b900fba18f8e046f5f12e6d1f0ac15b +74 -0
  182. data/test/dummy/tmp/cache/assets/D95/470/sprockets%2F5be5d361a52575c433831b5e8cccbace +9273 -0
  183. data/test/dummy/tmp/cache/assets/D97/9D0/sprockets%2F524a2a94a88c1d392dabcba654e365fc +103 -0
  184. data/test/dummy/tmp/cache/assets/D9D/800/sprockets%2Ff8387220eb4dda9b29a37b5deb9f2a40 +54 -0
  185. data/test/dummy/tmp/cache/assets/D9E/DD0/sprockets%2Fb6b4ffad6485eda046b327a196e8c44a +0 -0
  186. data/test/dummy/tmp/cache/assets/DA1/0A0/sprockets%2F359c94aee6ba2e15fc9666aa4de311c8 +166 -0
  187. data/test/dummy/tmp/cache/assets/DA1/0D0/sprockets%2F798de3c28452e164a7fc1a3a6e8cdb4b +652 -0
  188. data/test/dummy/tmp/cache/assets/DA3/CB0/sprockets%2Fdfad6bb1857a8af91f98ba137c18504e +815 -0
  189. data/test/dummy/tmp/cache/assets/DA4/E10/sprockets%2Fbda7705734ace95f12a7d79df9c14af2 +1354 -0
  190. data/test/dummy/tmp/cache/assets/DA5/E30/sprockets%2F2e6707a119e94a784efbadca18d7e8d1 +129 -0
  191. data/test/dummy/tmp/cache/assets/DA6/4B0/sprockets%2F4f7a708b6aa2d42eb577493dea7cef55 +115 -0
  192. data/test/dummy/tmp/cache/assets/DA8/A10/sprockets%2F0ae5bbb4ca200e74db3b64d72c2be120 +0 -0
  193. data/test/dummy/tmp/cache/assets/DA9/3F0/sprockets%2Fdd0af9cfd65fb7d02fe778c8f6015361 +499 -0
  194. data/test/dummy/tmp/cache/assets/DA9/780/sprockets%2Fe3559a635e8f92dec7727a3db2ae7b4c +813 -0
  195. data/test/dummy/tmp/cache/assets/DAC/0E0/sprockets%2F04cef8243a9ef7321846debc977ea8db +607 -0
  196. data/test/dummy/tmp/cache/assets/DB1/260/sprockets%2Fb879ff7530bf8cc175e0c7e70dc4e79b +0 -0
  197. data/test/dummy/tmp/cache/assets/DB4/4C0/sprockets%2F30a76cbd98dedb56742cd8ecaf858757 +0 -0
  198. data/test/dummy/tmp/cache/assets/DBD/7E0/sprockets%2F236fb1ac5ed9f2e3fe32203acc3a842d +0 -0
  199. data/test/dummy/tmp/cache/assets/DC2/DF0/sprockets%2Fe233bcaba8beff15626c35cb5e0e0936 +845 -0
  200. data/test/dummy/tmp/cache/assets/DC4/600/sprockets%2F59c96aa6c1cbebc61bff6c050a5351d7 +225 -0
  201. data/test/dummy/tmp/cache/assets/DC5/030/sprockets%2Fcb2fe864a0177eec19017c43ce9aa4ad +187 -0
  202. data/test/dummy/tmp/cache/assets/DC8/A60/sprockets%2F9fcb9f5c3f679ce749ee4c3f93869ba6 +74 -0
  203. data/test/dummy/tmp/cache/assets/DCB/D40/sprockets%2Ffd5542bfb7660a8d8cac3a2e46fb01f8 +828 -0
  204. data/test/dummy/tmp/cache/assets/DCC/020/sprockets%2F0c129c5f2784c96fa1dc3da6c19c1efc +128 -0
  205. data/test/dummy/tmp/cache/assets/DCF/520/sprockets%2F975162fb97a3ec7033db5f2fdba4fcd3 +70 -0
  206. data/test/dummy/tmp/cache/assets/DD0/000/sprockets%2F0d5d631cce6f0b078bb29cf98b3d78bb +276 -0
  207. data/test/dummy/tmp/cache/assets/DD0/C90/sprockets%2F84eeca4ef8f5eb29b13f7e1ea3c71324 +591 -0
  208. data/test/dummy/tmp/cache/assets/DD6/710/sprockets%2F9e83f2ebbe3e349efca2de390e15d635 +204 -0
  209. data/test/dummy/tmp/cache/assets/DE1/830/sprockets%2Fd23d3cafef2e2a9055bc103dffc1a023 +208 -0
  210. data/test/dummy/tmp/cache/assets/DEB/470/sprockets%2Fae2de0fcbc2214b71d3f2a875d2bc8c3 +2255 -0
  211. data/test/dummy/tmp/cache/assets/DEE/690/sprockets%2F5d824bcadef29060cc13eed71af4b4d0 +550 -0
  212. data/test/dummy/tmp/cache/assets/DF0/5D0/sprockets%2F25a875eb0a5d4c49bcc3fa39ea0adb26 +567 -0
  213. data/test/dummy/tmp/cache/assets/DF3/E20/sprockets%2Fada770c49a5d6b38d1cc43ed4d51c1fc +0 -0
  214. data/test/dummy/tmp/cache/assets/DF5/C80/sprockets%2F03ad7d7b3a8feba9ed9be82ae2083b20 +340 -0
  215. data/test/dummy/tmp/cache/assets/DF6/560/sprockets%2Fafceb2b55eb108efe4446dfb02b519b8 +0 -0
  216. data/test/dummy/tmp/cache/assets/DFC/030/sprockets%2Fcbdd3679eaba219b4e1ff20677af1c6f +1371 -0
  217. data/test/dummy/tmp/cache/assets/E00/970/sprockets%2F8bc6dde8d05c382dd07cbcec70f54e09 +378 -0
  218. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  219. data/test/dummy/tmp/cache/assets/E12/2F0/sprockets%2F5c45062ecfbe512dcba176ba6ddacc00 +523 -0
  220. data/test/dummy/tmp/cache/assets/E21/5D0/sprockets%2Fd4fe6d611bfb0e63c04de5dbfb128a8a +0 -0
  221. data/test/dummy/tmp/cache/assets/E22/770/sprockets%2F2ccebcabfbb9b59159e4b73b3b30a74d +208 -0
  222. data/test/dummy/tmp/cache/assets/E31/A90/sprockets%2F26b98bbbc15eee9b370c7dcde88d16aa +394 -0
  223. data/test/dummy/tmp/cache/assets/E31/E30/sprockets%2Ffbdafcc4e2f44bb9fc653bcf9625b750 +284 -0
  224. data/test/dummy/tmp/cache/assets/E37/1C0/sprockets%2Fa5eb45fc86dafe2bee4e4fa3f53c4785 +0 -0
  225. data/test/dummy/tmp/cache/assets/E4C/960/sprockets%2F13fd6e4bfdf031acb3dedca8d0f407b4 +1277 -0
  226. data/test/dummy/tmp/cache/assets/E88/330/sprockets%2Fe02d0adb5529ffafcea1b9e5ccf69a5b +669 -0
  227. data/test/dummy/tmp/pids/server.pid +1 -0
  228. data/test/dummy/tmp/simple.js.js +20 -0
  229. data/test/dummy/tmp/soy-1325274421.js +20 -0
  230. data/test/dummy/tmp/soy-1325286267.js +20 -0
  231. data/test/test_helper.rb +10 -0
  232. data/test/yellow-brick-road_test.rb +7 -0
  233. metadata +538 -0
@@ -0,0 +1,72 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325458072.879573: @value{ I" length:EFi�I" digest;
2
+ F"%b034dc22bdc028fea740393c33184dbfI" source;
3
+ FI"�// Copyright 2010 The Closure Library Authors. All Rights Reserved.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS-IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+
17
+ /**
18
+ * @fileoverview Browser capability checks for the dom package.
19
+ *
20
+ */
21
+
22
+
23
+
24
+ goog.provide('goog.dom.BrowserFeature');
25
+
26
+ goog.require('goog.userAgent');
27
+
28
+
29
+ /**
30
+ * Enum of browser capabilities.
31
+ * @enum {boolean}
32
+ */
33
+ goog.dom.BrowserFeature = {
34
+ /**
35
+ * Whether attributes 'name' and 'type' can be added to an element after it's
36
+ * created. False in Internet Explorer prior to version 9.
37
+ */
38
+ CAN_ADD_NAME_OR_TYPE_ATTRIBUTES: !goog.userAgent.IE ||
39
+ goog.userAgent.isDocumentMode(9),
40
+
41
+ /**
42
+ * Whether we can use element.children to access an element's Element
43
+ * children. Available since Gecko 1.9.1, IE 9. (IE<9 also includes comment
44
+ * nodes in the collection.)
45
+ */
46
+ CAN_USE_CHILDREN_ATTRIBUTE: !goog.userAgent.GECKO && !goog.userAgent.IE ||
47
+ goog.userAgent.IE && goog.userAgent.isDocumentMode(9) ||
48
+ goog.userAgent.GECKO && goog.userAgent.isVersion('1.9.1'),
49
+
50
+ /**
51
+ * Opera, Safari 3, and Internet Explorer 9 all support innerText but they
52
+ * include text nodes in script and style tags. Not document-mode-dependent.
53
+ */
54
+ CAN_USE_INNER_TEXT: goog.userAgent.IE && !goog.userAgent.isVersion('9'),
55
+
56
+ /**
57
+ * MSIE, Opera, and Safari>=4 support element.parentElement to access an
58
+ * element's parent if it is an Element.
59
+ */
60
+ CAN_USE_PARENT_ELEMENT_PROPERTY: goog.userAgent.IE || goog.userAgent.OPERA ||
61
+ goog.userAgent.WEBKIT,
62
+
63
+ /**
64
+ * Whether NoScope elements need a scoped element written before them in
65
+ * innerHTML.
66
+ * MSDN: http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx#1
67
+ */
68
+ INNER_HTML_NEEDS_SCOPED_ELEMENT: goog.userAgent.IE
69
+ };
70
+ ;
71
+ FI"
72
+ F"%b550d825dffbbdcb0364fbbb4762852b
@@ -0,0 +1,127 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325458072.904162: @value{ I" length:EFi� I" digest;
2
+ F"%95793913811102f0d723f154411eb887I" source;
3
+ FI"� // Copyright 2007 The Closure Library Authors. All Rights Reserved.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS-IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+
17
+ /**
18
+ * @fileoverview Defines the goog.dom.TagName enum. This enumerates
19
+ * all html tag names specified by the W3C HTML 4.01 Specification.
20
+ * Reference http://www.w3.org/TR/html401/index/elements.html.
21
+ */
22
+
23
+ goog.provide('goog.dom.TagName');
24
+
25
+
26
+ /**
27
+ * Enum of all html tag names specified by the W3C HTML 4.01 Specification.
28
+ * Reference http://www.w3.org/TR/html401/index/elements.html
29
+ * @enum {string}
30
+ */
31
+ goog.dom.TagName = {
32
+ A: 'A',
33
+ ABBR: 'ABBR',
34
+ ACRONYM: 'ACRONYM',
35
+ ADDRESS: 'ADDRESS',
36
+ APPLET: 'APPLET',
37
+ AREA: 'AREA',
38
+ B: 'B',
39
+ BASE: 'BASE',
40
+ BASEFONT: 'BASEFONT',
41
+ BDO: 'BDO',
42
+ BIG: 'BIG',
43
+ BLOCKQUOTE: 'BLOCKQUOTE',
44
+ BODY: 'BODY',
45
+ BR: 'BR',
46
+ BUTTON: 'BUTTON',
47
+ CANVAS: 'CANVAS',
48
+ CAPTION: 'CAPTION',
49
+ CENTER: 'CENTER',
50
+ CITE: 'CITE',
51
+ CODE: 'CODE',
52
+ COL: 'COL',
53
+ COLGROUP: 'COLGROUP',
54
+ DD: 'DD',
55
+ DEL: 'DEL',
56
+ DFN: 'DFN',
57
+ DIR: 'DIR',
58
+ DIV: 'DIV',
59
+ DL: 'DL',
60
+ DT: 'DT',
61
+ EM: 'EM',
62
+ FIELDSET: 'FIELDSET',
63
+ FONT: 'FONT',
64
+ FORM: 'FORM',
65
+ FRAME: 'FRAME',
66
+ FRAMESET: 'FRAMESET',
67
+ H1: 'H1',
68
+ H2: 'H2',
69
+ H3: 'H3',
70
+ H4: 'H4',
71
+ H5: 'H5',
72
+ H6: 'H6',
73
+ HEAD: 'HEAD',
74
+ HR: 'HR',
75
+ HTML: 'HTML',
76
+ I: 'I',
77
+ IFRAME: 'IFRAME',
78
+ IMG: 'IMG',
79
+ INPUT: 'INPUT',
80
+ INS: 'INS',
81
+ ISINDEX: 'ISINDEX',
82
+ KBD: 'KBD',
83
+ LABEL: 'LABEL',
84
+ LEGEND: 'LEGEND',
85
+ LI: 'LI',
86
+ LINK: 'LINK',
87
+ MAP: 'MAP',
88
+ MENU: 'MENU',
89
+ META: 'META',
90
+ NOFRAMES: 'NOFRAMES',
91
+ NOSCRIPT: 'NOSCRIPT',
92
+ OBJECT: 'OBJECT',
93
+ OL: 'OL',
94
+ OPTGROUP: 'OPTGROUP',
95
+ OPTION: 'OPTION',
96
+ P: 'P',
97
+ PARAM: 'PARAM',
98
+ PRE: 'PRE',
99
+ Q: 'Q',
100
+ S: 'S',
101
+ SAMP: 'SAMP',
102
+ SCRIPT: 'SCRIPT',
103
+ SELECT: 'SELECT',
104
+ SMALL: 'SMALL',
105
+ SPAN: 'SPAN',
106
+ STRIKE: 'STRIKE',
107
+ STRONG: 'STRONG',
108
+ STYLE: 'STYLE',
109
+ SUB: 'SUB',
110
+ SUP: 'SUP',
111
+ TABLE: 'TABLE',
112
+ TBODY: 'TBODY',
113
+ TD: 'TD',
114
+ TEXTAREA: 'TEXTAREA',
115
+ TFOOT: 'TFOOT',
116
+ TH: 'TH',
117
+ THEAD: 'THEAD',
118
+ TITLE: 'TITLE',
119
+ TR: 'TR',
120
+ TT: 'TT',
121
+ U: 'U',
122
+ UL: 'UL',
123
+ VAR: 'VAR'
124
+ };
125
+ ;
126
+ FI"
127
+ F"%7fd7140c5a6b15a7807201bdf87b6946
@@ -0,0 +1,516 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325441614.563822: @value{I"
2
+ class:EFI"BundledAsset;
3
+ FI"id;
4
+ F"%28f388e6fc905c23f9be0ade944af9c4I"logical_path;
5
+ FI" closure/goog/debug/debug.js;
6
+ TI"
7
+ F"m/Volumes/Development/dev-web/yellow-brick-road/vendor/assets/closure-library/closure/goog/debug/debug.jsI"content_type;
8
+ FI"application/javascript;
9
+ FI"
10
+ mtime;
11
+ FI"2011-12-30T02:16:24+00:00;
12
+ FI" body;
13
+ FI"Z6// Copyright 2006 The Closure Library Authors. All Rights Reserved.
14
+ //
15
+ // Licensed under the Apache License, Version 2.0 (the "License");
16
+ // you may not use this file except in compliance with the License.
17
+ // You may obtain a copy of the License at
18
+ //
19
+ // http://www.apache.org/licenses/LICENSE-2.0
20
+ //
21
+ // Unless required by applicable law or agreed to in writing, software
22
+ // distributed under the License is distributed on an "AS-IS" BASIS,
23
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24
+ // See the License for the specific language governing permissions and
25
+ // limitations under the License.
26
+
27
+ /**
28
+ * @fileoverview Logging and debugging utilities.
29
+ *
30
+
31
+ * @see ../demos/debug.html
32
+ */
33
+
34
+
35
+ goog.provide('goog.debug');
36
+
37
+ goog.require('goog.array');
38
+ goog.require('goog.string');
39
+ goog.require('goog.structs.Set');
40
+ goog.require('goog.userAgent');
41
+
42
+
43
+ /**
44
+ * Catches onerror events fired by windows and similar objects.
45
+ * @param {function(Object)} logFunc The function to call with the error
46
+ * information.
47
+ * @param {boolean=} opt_cancel Whether to stop the error from reaching the
48
+ * browser.
49
+ * @param {Object=} opt_target Object that fires onerror events.
50
+ */
51
+ goog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) {
52
+ var target = opt_target || goog.global;
53
+ var oldErrorHandler = target.onerror;
54
+ var retVal = !!opt_cancel;
55
+
56
+ // Chrome interprets onerror return value backwards (http://crbug.com/92062)
57
+ // until it was fixed in webkit revision r94061 (Webkit 535.3). This
58
+ // workaround still needs to be skipped in Safari after the webkit change
59
+ // gets pushed out in Safari.
60
+ // See https://bugs.webkit.org/show_bug.cgi?id=67119
61
+ if (goog.userAgent.WEBKIT && !goog.userAgent.isVersion('535.3')) {
62
+ retVal = !retVal;
63
+ }
64
+ target.onerror = function(message, url, line) {
65
+ if (oldErrorHandler) {
66
+ oldErrorHandler(message, url, line);
67
+ }
68
+ logFunc({
69
+ message: message,
70
+ fileName: url,
71
+ line: line
72
+ });
73
+ return retVal;
74
+ };
75
+ };
76
+
77
+
78
+ /**
79
+ * Creates a string representing an object and all its properties.
80
+ * @param {Object|null|undefined} obj Object to expose.
81
+ * @param {boolean=} opt_showFn Show the functions as well as the properties,
82
+ * default is false.
83
+ * @return {string} The string representation of {@code obj}.
84
+ */
85
+ goog.debug.expose = function(obj, opt_showFn) {
86
+ if (typeof obj == 'undefined') {
87
+ return 'undefined';
88
+ }
89
+ if (obj == null) {
90
+ return 'NULL';
91
+ }
92
+ var str = [];
93
+
94
+ for (var x in obj) {
95
+ if (!opt_showFn && goog.isFunction(obj[x])) {
96
+ continue;
97
+ }
98
+ var s = x + ' = ';
99
+ /** @preserveTry */
100
+ try {
101
+ s += obj[x];
102
+ } catch (e) {
103
+ s += '*** ' + e + ' ***';
104
+ }
105
+ str.push(s);
106
+ }
107
+ return str.join('\n');
108
+ };
109
+
110
+
111
+ /**
112
+ * Creates a string representing a given primitive or object, and for an
113
+ * object, all its properties and nested objects. WARNING: If an object is
114
+ * given, it and all its nested objects will be modified. To detect reference
115
+ * cycles, this method identifies objects using goog.getUid() which mutates the
116
+ * object.
117
+ * @param {*} obj Object to expose.
118
+ * @param {boolean=} opt_showFn Also show properties that are functions (by
119
+ * default, functions are omitted).
120
+ * @return {string} A string representation of {@code obj}.
121
+ */
122
+ goog.debug.deepExpose = function(obj, opt_showFn) {
123
+ var previous = new goog.structs.Set();
124
+ var str = [];
125
+
126
+ var helper = function(obj, space) {
127
+ var nestspace = space + ' ';
128
+
129
+ var indentMultiline = function(str) {
130
+ return str.replace(/\n/g, '\n' + space);
131
+ };
132
+
133
+ /** @preserveTry */
134
+ try {
135
+ if (!goog.isDef(obj)) {
136
+ str.push('undefined');
137
+ } else if (goog.isNull(obj)) {
138
+ str.push('NULL');
139
+ } else if (goog.isString(obj)) {
140
+ str.push('"' + indentMultiline(obj) + '"');
141
+ } else if (goog.isFunction(obj)) {
142
+ str.push(indentMultiline(String(obj)));
143
+ } else if (goog.isObject(obj)) {
144
+ if (previous.contains(obj)) {
145
+ // TODO(user): This is a bug; it falsely detects non-loops as loops
146
+ // when the reference tree contains two references to the same object.
147
+ str.push('*** reference loop detected ***');
148
+ } else {
149
+ previous.add(obj);
150
+ str.push('{');
151
+ for (var x in obj) {
152
+ if (!opt_showFn && goog.isFunction(obj[x])) {
153
+ continue;
154
+ }
155
+ str.push('\n');
156
+ str.push(nestspace);
157
+ str.push(x + ' = ');
158
+ helper(obj[x], nestspace);
159
+ }
160
+ str.push('\n' + space + '}');
161
+ }
162
+ } else {
163
+ str.push(obj);
164
+ }
165
+ } catch (e) {
166
+ str.push('*** ' + e + ' ***');
167
+ }
168
+ };
169
+
170
+ helper(obj, '');
171
+ return str.join('');
172
+ };
173
+
174
+
175
+ /**
176
+ * Recursively outputs a nested array as a string.
177
+ * @param {Array} arr The array.
178
+ * @return {string} String representing nested array.
179
+ */
180
+ goog.debug.exposeArray = function(arr) {
181
+ var str = [];
182
+ for (var i = 0; i < arr.length; i++) {
183
+ if (goog.isArray(arr[i])) {
184
+ str.push(goog.debug.exposeArray(arr[i]));
185
+ } else {
186
+ str.push(arr[i]);
187
+ }
188
+ }
189
+ return '[ ' + str.join(', ') + ' ]';
190
+ };
191
+
192
+
193
+ /**
194
+ * Exposes an exception that has been caught by a try...catch and outputs the
195
+ * error with a stack trace.
196
+ * @param {Object} err Error object or string.
197
+ * @param {Function=} opt_fn Optional function to start stack trace from.
198
+ * @return {string} Details of exception.
199
+ */
200
+ goog.debug.exposeException = function(err, opt_fn) {
201
+ /** @preserveTry */
202
+ try {
203
+ var e = goog.debug.normalizeErrorObject(err);
204
+
205
+ // Create the error message
206
+ var error = 'Message: ' + goog.string.htmlEscape(e.message) +
207
+ '\nUrl: <a href="view-source:' + e.fileName + '" target="_new">' +
208
+ e.fileName + '</a>\nLine: ' + e.lineNumber + '\n\nBrowser stack:\n' +
209
+ goog.string.htmlEscape(e.stack + '-> ') +
210
+ '[end]\n\nJS stack traversal:\n' + goog.string.htmlEscape(
211
+ goog.debug.getStacktrace(opt_fn) + '-> ');
212
+ return error;
213
+ } catch (e2) {
214
+ return 'Exception trying to expose exception! You win, we lose. ' + e2;
215
+ }
216
+ };
217
+
218
+
219
+ /**
220
+ * Normalizes the error/exception object between browsers.
221
+ * @param {Object} err Raw error object.
222
+ * @return {Object} Normalized error object.
223
+ */
224
+ goog.debug.normalizeErrorObject = function(err) {
225
+ var href = goog.getObjectByName('window.location.href');
226
+ if (goog.isString(err)) {
227
+ return {
228
+ 'message': err,
229
+ 'name': 'Unknown error',
230
+ 'lineNumber': 'Not available',
231
+ 'fileName': href,
232
+ 'stack': 'Not available'
233
+ };
234
+ }
235
+
236
+ var lineNumber, fileName;
237
+ var threwError = false;
238
+
239
+ try {
240
+ lineNumber = err.lineNumber || err.line || 'Not available';
241
+ } catch (e) {
242
+ // Firefox 2 sometimes throws an error when accessing 'lineNumber':
243
+ // Message: Permission denied to get property UnnamedClass.lineNumber
244
+ lineNumber = 'Not available';
245
+ threwError = true;
246
+ }
247
+
248
+ try {
249
+ fileName = err.fileName || err.filename || err.sourceURL || href;
250
+ } catch (e) {
251
+ // Firefox 2 may also throw an error when accessing 'filename'.
252
+ fileName = 'Not available';
253
+ threwError = true;
254
+ }
255
+
256
+ // The IE Error object contains only the name and the message.
257
+ // The Safari Error object uses the line and sourceURL fields.
258
+ if (threwError || !err.lineNumber || !err.fileName || !err.stack) {
259
+ return {
260
+ 'message': err.message,
261
+ 'name': err.name,
262
+ 'lineNumber': lineNumber,
263
+ 'fileName': fileName,
264
+ 'stack': err.stack || 'Not available'
265
+ };
266
+ }
267
+
268
+ // Standards error object
269
+ return err;
270
+ };
271
+
272
+
273
+ /**
274
+ * Converts an object to an Error if it's a String,
275
+ * adds a stacktrace if there isn't one,
276
+ * and optionally adds an extra message.
277
+ * @param {Error|string} err the original thrown object or string.
278
+ * @param {string=} opt_message optional additional message to add to the
279
+ * error.
280
+ * @return {Error} If err is a string, it is used to create a new Error,
281
+ * which is enhanced and returned. Otherwise err itself is enhanced
282
+ * and returned.
283
+ */
284
+ goog.debug.enhanceError = function(err, opt_message) {
285
+ var error = typeof err == 'string' ? Error(err) : err;
286
+ if (!error.stack) {
287
+ error.stack = goog.debug.getStacktrace(arguments.callee.caller);
288
+ }
289
+ if (opt_message) {
290
+ // find the first unoccupied 'messageX' property
291
+ var x = 0;
292
+ while (error['message' + x]) {
293
+ ++x;
294
+ }
295
+ error['message' + x] = String(opt_message);
296
+ }
297
+ return error;
298
+ };
299
+
300
+
301
+ /**
302
+ * Gets the current stack trace. Simple and iterative - doesn't worry about
303
+ * catching circular references or getting the args.
304
+ * @param {number=} opt_depth Optional maximum depth to trace back to.
305
+ * @return {string} A string with the function names of all functions in the
306
+ * stack, separated by \n.
307
+ */
308
+ goog.debug.getStacktraceSimple = function(opt_depth) {
309
+ var sb = [];
310
+ var fn = arguments.callee.caller;
311
+ var depth = 0;
312
+
313
+ while (fn && (!opt_depth || depth < opt_depth)) {
314
+ sb.push(goog.debug.getFunctionName(fn));
315
+ sb.push('()\n');
316
+ /** @preserveTry */
317
+ try {
318
+ fn = fn.caller;
319
+ } catch (e) {
320
+ sb.push('[exception trying to get caller]\n');
321
+ break;
322
+ }
323
+ depth++;
324
+ if (depth >= goog.debug.MAX_STACK_DEPTH) {
325
+ sb.push('[...long stack...]');
326
+ break;
327
+ }
328
+ }
329
+ if (opt_depth && depth >= opt_depth) {
330
+ sb.push('[...reached max depth limit...]');
331
+ } else {
332
+ sb.push('[end]');
333
+ }
334
+
335
+ return sb.join('');
336
+ };
337
+
338
+
339
+ /**
340
+ * Max length of stack to try and output
341
+ * @type {number}
342
+ */
343
+ goog.debug.MAX_STACK_DEPTH = 50;
344
+
345
+
346
+ /**
347
+ * Gets the current stack trace, either starting from the caller or starting
348
+ * from a specified function that's currently on the call stack.
349
+ * @param {Function=} opt_fn Optional function to start getting the trace from.
350
+ * If not provided, defaults to the function that called this.
351
+ * @return {string} Stack trace.
352
+ */
353
+ goog.debug.getStacktrace = function(opt_fn) {
354
+ return goog.debug.getStacktraceHelper_(opt_fn || arguments.callee.caller, []);
355
+ };
356
+
357
+
358
+ /**
359
+ * Private helper for getStacktrace().
360
+ * @param {Function} fn Function to start getting the trace from.
361
+ * @param {Array} visited List of functions visited so far.
362
+ * @return {string} Stack trace starting from function fn.
363
+ * @private
364
+ */
365
+ goog.debug.getStacktraceHelper_ = function(fn, visited) {
366
+ var sb = [];
367
+
368
+ // Circular reference, certain functions like bind seem to cause a recursive
369
+ // loop so we need to catch circular references
370
+ if (goog.array.contains(visited, fn)) {
371
+ sb.push('[...circular reference...]');
372
+
373
+ // Traverse the call stack until function not found or max depth is reached
374
+ } else if (fn && visited.length < goog.debug.MAX_STACK_DEPTH) {
375
+ sb.push(goog.debug.getFunctionName(fn) + '(');
376
+ var args = fn.arguments;
377
+ for (var i = 0; i < args.length; i++) {
378
+ if (i > 0) {
379
+ sb.push(', ');
380
+ }
381
+ var argDesc;
382
+ var arg = args[i];
383
+ switch (typeof arg) {
384
+ case 'object':
385
+ argDesc = arg ? 'object' : 'null';
386
+ break;
387
+
388
+ case 'string':
389
+ argDesc = arg;
390
+ break;
391
+
392
+ case 'number':
393
+ argDesc = String(arg);
394
+ break;
395
+
396
+ case 'boolean':
397
+ argDesc = arg ? 'true' : 'false';
398
+ break;
399
+
400
+ case 'function':
401
+ argDesc = goog.debug.getFunctionName(arg);
402
+ argDesc = argDesc ? argDesc : '[fn]';
403
+ break;
404
+
405
+ case 'undefined':
406
+ default:
407
+ argDesc = typeof arg;
408
+ break;
409
+ }
410
+
411
+ if (argDesc.length > 40) {
412
+ argDesc = argDesc.substr(0, 40) + '...';
413
+ }
414
+ sb.push(argDesc);
415
+ }
416
+ visited.push(fn);
417
+ sb.push(')\n');
418
+ /** @preserveTry */
419
+ try {
420
+ sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited));
421
+ } catch (e) {
422
+ sb.push('[exception trying to get caller]\n');
423
+ }
424
+
425
+ } else if (fn) {
426
+ sb.push('[...long stack...]');
427
+ } else {
428
+ sb.push('[end]');
429
+ }
430
+ return sb.join('');
431
+ };
432
+
433
+
434
+ /**
435
+ * Set a custom function name resolver.
436
+ * @param {function(Function): string} resolver Resolves functions to their
437
+ * names.
438
+ */
439
+ goog.debug.setFunctionResolver = function(resolver) {
440
+ goog.debug.fnNameResolver_ = resolver;
441
+ };
442
+
443
+
444
+ /**
445
+ * Gets a function name
446
+ * @param {Function} fn Function to get name of.
447
+ * @return {string} Function's name.
448
+ */
449
+ goog.debug.getFunctionName = function(fn) {
450
+ if (goog.debug.fnNameCache_[fn]) {
451
+ return goog.debug.fnNameCache_[fn];
452
+ }
453
+ if (goog.debug.fnNameResolver_) {
454
+ var name = goog.debug.fnNameResolver_(fn);
455
+ if (name) {
456
+ goog.debug.fnNameCache_[fn] = name;
457
+ return name;
458
+ }
459
+ }
460
+
461
+ // Heuristically determine function name based on code.
462
+ var functionSource = String(fn);
463
+ if (!goog.debug.fnNameCache_[functionSource]) {
464
+ var matches = /function ([^\(]+)/.exec(functionSource);
465
+ if (matches) {
466
+ var method = matches[1];
467
+ goog.debug.fnNameCache_[functionSource] = method;
468
+ } else {
469
+ goog.debug.fnNameCache_[functionSource] = '[Anonymous]';
470
+ }
471
+ }
472
+
473
+ return goog.debug.fnNameCache_[functionSource];
474
+ };
475
+
476
+
477
+ /**
478
+ * Makes whitespace visible by replacing it with printable characters.
479
+ * This is useful in finding diffrences between the expected and the actual
480
+ * output strings of a testcase.
481
+ * @param {string} string whose whitespace needs to be made visible.
482
+ * @return {string} string whose whitespace is made visible.
483
+ */
484
+ goog.debug.makeWhitespaceVisible = function(string) {
485
+ return string.replace(/ /g, '[_]')
486
+ .replace(/\f/g, '[f]')
487
+ .replace(/\n/g, '[n]\n')
488
+ .replace(/\r/g, '[r]')
489
+ .replace(/\t/g, '[t]');
490
+ };
491
+
492
+
493
+ /**
494
+ * Hash map for storing function names that have already been looked up.
495
+ * @type {Object}
496
+ * @private
497
+ */
498
+ goog.debug.fnNameCache_ = {};
499
+
500
+
501
+ /**
502
+ * Resolves functions to their names. Resolved function names will be cached.
503
+ * @type {function(Function):string}
504
+ * @private
505
+ */
506
+ goog.debug.fnNameResolver_;
507
+ ;
508
+ FI"asset_paths;
509
+ F["m/Volumes/Development/dev-web/yellow-brick-road/vendor/assets/closure-library/closure/goog/debug/debug.jsI"dependency_paths;
510
+ F[{I" path;
511
+ F"m/Volumes/Development/dev-web/yellow-brick-road/vendor/assets/closure-library/closure/goog/debug/debug.jsI"
512
+ mtime;
513
+ FIu: Time
514
+ T: offsetiI"hexdigest;
515
+ F"%f4be67507d39a9cd7310c4819c404ff0I"
516
+ F"%46dde6621c301f4928e3b34efee9e3b5