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.
- data/README.rst +148 -0
- data/Rakefile +37 -0
- data/lib/tasks/yellow-brick-road_tasks.rake +4 -0
- data/lib/yellow-brick-road.rb +6 -0
- data/lib/yellow-brick-road/config.rb +15 -0
- data/lib/yellow-brick-road/directive_processor.rb +68 -0
- data/lib/yellow-brick-road/engine.rb +22 -0
- data/lib/yellow-brick-road/soy_processor.rb +56 -0
- data/lib/yellow-brick-road/utils.rb +38 -0
- data/lib/yellow-brick-road/version.rb +3 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +12 -0
- data/test/dummy/app/assets/javascripts/closure-deps.js +4 -0
- data/test/dummy/app/assets/javascripts/my-closure/simple.js.soy +14 -0
- data/test/dummy/app/assets/javascripts/my-closure/start.js +25 -0
- data/test/dummy/app/assets/stylesheets/application.css +7 -0
- data/test/dummy/app/controllers/application_controller.rb +7 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/application/index.html.erb +0 -0
- data/test/dummy/app/views/layouts/application.html.erb +18 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +51 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +30 -0
- data/test/dummy/config/environments/production.rb +60 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +10 -0
- data/test/dummy/config/initializers/yellow_brick_road.rb +2 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +58 -0
- data/test/dummy/log/development.log +13924 -0
- data/test/dummy/log/test.log +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/tmp/cache/assets/BE0/120/sprockets%2F751842b8c6750008c7310d182600d173 +142 -0
- data/test/dummy/tmp/cache/assets/C19/950/sprockets%2F142437f1d8d9424007b4a882a5429333 +1372 -0
- data/test/dummy/tmp/cache/assets/C4B/D00/sprockets%2F400f22c081529179ce3d079457de3009 +806 -0
- data/test/dummy/tmp/cache/assets/C5A/EE0/sprockets%2Fb711429ed948c503b718d077037780f8 +0 -0
- data/test/dummy/tmp/cache/assets/C5B/A80/sprockets%2F508569b474262724c61a461f7777dab7 +1118 -0
- data/test/dummy/tmp/cache/assets/C6C/660/sprockets%2F2c298b3b02232a21527680685a3efc30 +9289 -0
- data/test/dummy/tmp/cache/assets/C72/8A0/sprockets%2F167b265129e30d87d253c406db305c60 +293 -0
- data/test/dummy/tmp/cache/assets/C7E/9F0/sprockets%2F89862076204c62c4593ac20de32da909 +9 -0
- data/test/dummy/tmp/cache/assets/C8B/5F0/sprockets%2Fc6a4470b5c21e285e829a99365839b24 +0 -0
- data/test/dummy/tmp/cache/assets/C92/D20/sprockets%2F2e618f7805f445889aec94885a500f03 +457 -0
- data/test/dummy/tmp/cache/assets/C98/FD0/sprockets%2Fb11442af041f96e87a43a1dc11231745 +283 -0
- data/test/dummy/tmp/cache/assets/CA3/520/sprockets%2F5379d7143c6c52b11b88dc0ab5436133 +277 -0
- data/test/dummy/tmp/cache/assets/CA5/450/sprockets%2F6bb727c9312a749134ad67323a317f0d +73 -0
- data/test/dummy/tmp/cache/assets/CA5/4F0/sprockets%2Feeb7de7771527700af194c0441d29101 +709 -0
- data/test/dummy/tmp/cache/assets/CA6/E90/sprockets%2F611f68180f43c4181f06ae5c5f8201e2 +1546 -0
- data/test/dummy/tmp/cache/assets/CA7/310/sprockets%2F45664cf816315200b574e029fde6f10a +0 -0
- data/test/dummy/tmp/cache/assets/CA9/9D0/sprockets%2F2672e32464cf7267c4ba3d028f54b153 +224 -0
- data/test/dummy/tmp/cache/assets/CAB/5A0/sprockets%2F7f50e0289f150c8636ac9253129bc13c +2556 -0
- data/test/dummy/tmp/cache/assets/CB5/7E0/sprockets%2F42ff6672683b2029233a800e7539eeee +474 -0
- data/test/dummy/tmp/cache/assets/CB6/DC0/sprockets%2F2f9882155bb2d4d3ab5d708951857c60 +494 -0
- data/test/dummy/tmp/cache/assets/CBB/680/sprockets%2F1dc336d96fb52df34b458185559922b5 +1018 -0
- data/test/dummy/tmp/cache/assets/CBC/640/sprockets%2F67d2e0d9e5129d237e575d2780c64b47 +1260 -0
- data/test/dummy/tmp/cache/assets/CBE/550/sprockets%2Fd680cac830e0b3408ba910f0b0421147 +25 -0
- data/test/dummy/tmp/cache/assets/CC7/790/sprockets%2F69941f32a12e4f99d4a57f65386d870d +608 -0
- data/test/dummy/tmp/cache/assets/CCB/F80/sprockets%2Fa865701ef2ec41155e524772c31a1a2b +1088 -0
- data/test/dummy/tmp/cache/assets/CCE/580/sprockets%2F879411ed27ed1c557d57853d8f579b56 +0 -0
- data/test/dummy/tmp/cache/assets/CD0/070/sprockets%2F6748fe8481965f260d9c56b7f9f508a2 +1530 -0
- data/test/dummy/tmp/cache/assets/CD4/750/sprockets%2Faf3505141ecb3169ce41ce519d136924 +0 -0
- data/test/dummy/tmp/cache/assets/CD6/A90/sprockets%2F3f55ac75b9fb8426312116bcb940a580 +2539 -0
- data/test/dummy/tmp/cache/assets/CD9/6C0/sprockets%2F5e2458bc52da90ba349a66035e3b6752 +0 -0
- data/test/dummy/tmp/cache/assets/CD9/F50/sprockets%2F9008bf696500cfae1d61f045f209181e +256 -0
- data/test/dummy/tmp/cache/assets/CDB/B40/sprockets%2F53529a22c994570a0df4742c0bfe61f4 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/D10/sprockets%2F1e775b4ff06b4401c07503ce95a839b5 +75 -0
- data/test/dummy/tmp/cache/assets/CDE/CD0/sprockets%2F141066798b4acf07053f7e3a6cb4e555 +1613 -0
- data/test/dummy/tmp/cache/assets/CE1/760/sprockets%2F245fe11803630fe30d0cf8a869886ab5 +357 -0
- data/test/dummy/tmp/cache/assets/CE1/FA0/sprockets%2F863d1650ef066e4a2168bc57c7c0e096 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/310/sprockets%2Fd38075d5592ecaf82e43526c03b467c4 +1545 -0
- data/test/dummy/tmp/cache/assets/CE2/420/sprockets%2F30f2e8f30477e80cf6416dfe27307c07 +204 -0
- data/test/dummy/tmp/cache/assets/CE2/D70/sprockets%2F467c44b63644e0f44dd06a585f36f1a6 +522 -0
- data/test/dummy/tmp/cache/assets/CE3/670/sprockets%2Fddd11860b444cd0f9996be0c46762318 +796 -0
- data/test/dummy/tmp/cache/assets/CE4/0B0/sprockets%2Ff11535d785c0d34349c64d673bd4b28f +1105 -0
- data/test/dummy/tmp/cache/assets/CE4/590/sprockets%2Fd68edcc87a4ae302794093081b45b819 +10 -0
- data/test/dummy/tmp/cache/assets/CE4/D60/sprockets%2F61772e4a60b616f74da91b838a2f4f82 +0 -0
- data/test/dummy/tmp/cache/assets/CE6/DD0/sprockets%2F2fe073024a2bf26bd98458388b57af37 +1355 -0
- data/test/dummy/tmp/cache/assets/CE7/160/sprockets%2Fba1f9939f031b4356ec1869d40fc2747 +1261 -0
- data/test/dummy/tmp/cache/assets/CE8/C70/sprockets%2Fc6c9ba3c677b5e2af8520395192c9445 +173 -0
- data/test/dummy/tmp/cache/assets/CEA/8B0/sprockets%2Ff77e549cb6d37604105f35d4e67d8c21 +511 -0
- data/test/dummy/tmp/cache/assets/CEA/AA0/sprockets%2F5f816982c86d2e6b72b2f5f65c51d070 +1529 -0
- data/test/dummy/tmp/cache/assets/CEA/C10/sprockets%2F9dcd541e67c299ab076a44a2183872f8 +0 -0
- data/test/dummy/tmp/cache/assets/CF1/5A0/sprockets%2F1a697695edf2bb7b49a2896904218bc7 +115 -0
- data/test/dummy/tmp/cache/assets/CF4/480/sprockets%2F5e99c77e93f4a522c84357e62b25e0f7 +43 -0
- data/test/dummy/tmp/cache/assets/CF7/460/sprockets%2Fd12ea9733fe3c92456f57f9145569b9c +0 -0
- data/test/dummy/tmp/cache/assets/CF7/470/sprockets%2F2897897a166ca3369fecb88f83f211b5 +435 -0
- data/test/dummy/tmp/cache/assets/CFA/760/sprockets%2Fa9024adba14091e0635c6874d1db4e22 +0 -0
- data/test/dummy/tmp/cache/assets/D01/F30/sprockets%2Fe639a15b6e0cca37d12443b408e1166f +25 -0
- data/test/dummy/tmp/cache/assets/D02/9F0/sprockets%2Fb99eae308897fe88cb9414b96824098b +0 -0
- data/test/dummy/tmp/cache/assets/D03/330/sprockets%2F1e003cdb3e7dcc9307e84090ad457127 +454 -0
- data/test/dummy/tmp/cache/assets/D03/8B0/sprockets%2Ff74632bddf2c0b2018ca7b736309380e +365 -0
- data/test/dummy/tmp/cache/assets/D05/0A0/sprockets%2Fe57658220260db13eb5577aef42cb61b +257 -0
- data/test/dummy/tmp/cache/assets/D05/920/sprockets%2F909507434dcc270db4853e4c147f0aac +31 -0
- data/test/dummy/tmp/cache/assets/D08/510/sprockets%2Fa567be6cb6d7310096f1739b25a5a3f0 +50 -0
- data/test/dummy/tmp/cache/assets/D08/9F0/sprockets%2F1d61d2c89ca50957066bacc5b69011f5 +1424 -0
- data/test/dummy/tmp/cache/assets/D0A/790/sprockets%2Feb16913e6504c9b0d3be431de39e4751 +300 -0
- data/test/dummy/tmp/cache/assets/D0C/C50/sprockets%2Fd6613bee8b40d50459af6b52a7084f34 +796 -0
- data/test/dummy/tmp/cache/assets/D0D/030/sprockets%2Fba3f13b4a444679e8bc2549226ec743b +21 -0
- data/test/dummy/tmp/cache/assets/D0D/350/sprockets%2F2670bce036d485e15d059c0f1e98f24a +207 -0
- data/test/dummy/tmp/cache/assets/D13/270/sprockets%2F497cb163e6317e3fc1565d832f406cfb +348 -0
- data/test/dummy/tmp/cache/assets/D13/380/sprockets%2F786d003c9c7fb759dd26c1030c087cf6 +813 -0
- data/test/dummy/tmp/cache/assets/D13/7C0/sprockets%2F528d22310a9ab8e6fba08d82844ce795 +0 -0
- data/test/dummy/tmp/cache/assets/D15/F60/sprockets%2Fa28394e3f80365b5bc86794dd46daa22 +0 -0
- data/test/dummy/tmp/cache/assets/D18/500/sprockets%2Fd22c2d97d1db2154f2f7592906e957ea +1001 -0
- data/test/dummy/tmp/cache/assets/D1B/C70/sprockets%2F1c04848b1e1d6e8e33b8581f8c8128ff +223 -0
- data/test/dummy/tmp/cache/assets/D1C/600/sprockets%2Fa0601f99147f59ddd6266e6aff077e14 +0 -0
- data/test/dummy/tmp/cache/assets/D1E/470/sprockets%2Fb3933e694547b78bf6fb15f44a4623fe +53 -0
- data/test/dummy/tmp/cache/assets/D1F/480/sprockets%2F545164168becf42b289efc8708f1db68 +1278 -0
- data/test/dummy/tmp/cache/assets/D21/630/sprockets%2F0a14114729c14637f2e8f122acabd1ab +823 -0
- data/test/dummy/tmp/cache/assets/D24/A90/sprockets%2F21c8a0d48c51b8585ba03bc112ecd153 +692 -0
- data/test/dummy/tmp/cache/assets/D25/D30/sprockets%2F3b937f4c16d2aa0a28fc02a0e922712b +1441 -0
- data/test/dummy/tmp/cache/assets/D25/F30/sprockets%2Fe251527c0c018f4b4ad44b2ad7064fb0 +2255 -0
- data/test/dummy/tmp/cache/assets/D26/DE0/sprockets%2F761ac1bdb0739cc56fa0c1224b137b09 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/C30/sprockets%2F978fe7268754f451c59b9ccb323ffa56 +0 -0
- data/test/dummy/tmp/cache/assets/D2B/0F0/sprockets%2Fbf223af03335cfc08a71e549e10c0e27 +2539 -0
- data/test/dummy/tmp/cache/assets/D2E/6D0/sprockets%2F9e7fda3affb389313cc50223f01c0324 +0 -0
- data/test/dummy/tmp/cache/assets/D2F/110/sprockets%2F3730ffe2ed34c1219d580bd1615ea7b0 +2239 -0
- data/test/dummy/tmp/cache/assets/D2F/F10/sprockets%2F9cac242f0bf5ec00079ea3a463e26552 +153 -0
- data/test/dummy/tmp/cache/assets/D30/1D0/sprockets%2Fd690a26a0b0ae138c1c48d257a7674bc +589 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D36/940/sprockets%2Fb4ba462ac9f4aac561c36e60367c1378 +572 -0
- data/test/dummy/tmp/cache/assets/D37/090/sprockets%2F2f2e71ebbc240014ebf648f0917e854a +798 -0
- data/test/dummy/tmp/cache/assets/D3A/440/sprockets%2F6d332243647c841dea36ed822cdfc23e +165 -0
- data/test/dummy/tmp/cache/assets/D3B/5A0/sprockets%2F82e05cf8c88ba8cb1c87e50d51372a03 +0 -0
- data/test/dummy/tmp/cache/assets/D41/B30/sprockets%2Fba1b93913dd01d83ac9a96df334456f8 +0 -0
- data/test/dummy/tmp/cache/assets/D43/D90/sprockets%2F04f3a5926d5a7672456dc7afa73d0c7f +38 -0
- data/test/dummy/tmp/cache/assets/D45/1F0/sprockets%2F1bfa855d9c10ff2431a9a548958cc5e4 +83 -0
- data/test/dummy/tmp/cache/assets/D45/B10/sprockets%2F643f3d9b216e48df952b7f150a46a7ec +60 -0
- data/test/dummy/tmp/cache/assets/D46/040/sprockets%2F199546844e5939721a5afcbcce4ea43a +143 -0
- data/test/dummy/tmp/cache/assets/D49/320/sprockets%2Fd8123eb229e34c9f507f7b1876f1c4ee +506 -0
- data/test/dummy/tmp/cache/assets/D49/750/sprockets%2Ff41ef1c0832b7294fb15588ff5c783cb +0 -0
- data/test/dummy/tmp/cache/assets/D49/930/sprockets%2F1071926698fa55abc71e1b6fd966dfe1 +72 -0
- data/test/dummy/tmp/cache/assets/D49/D10/sprockets%2Fb67b8d7cc7579352a91694f9ae10cdb0 +127 -0
- data/test/dummy/tmp/cache/assets/D4A/160/sprockets%2Fcbd8988b5e18d153eff6230d72e9046a +516 -0
- data/test/dummy/tmp/cache/assets/D4A/2B0/sprockets%2Ffcdf002d38fd938bf7226b46b76706c8 +1101 -0
- data/test/dummy/tmp/cache/assets/D4E/2F0/sprockets%2F77cb87ae57f0d8c25cdaa74181a64997 +1441 -0
- data/test/dummy/tmp/cache/assets/D4F/060/sprockets%2Fa9e66b39ada7394a29bf44f3a682f665 +511 -0
- data/test/dummy/tmp/cache/assets/D50/BD0/sprockets%2F88650dd57ef64075462e6dae757dbe2c +0 -0
- data/test/dummy/tmp/cache/assets/D53/CA0/sprockets%2Fa85032e82709a043fbb2ec00e04f2bbd +0 -0
- data/test/dummy/tmp/cache/assets/D54/BF0/sprockets%2F91970514ff528e8d2bfd81f1ec83c9c8 +240 -0
- data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +10 -0
- data/test/dummy/tmp/cache/assets/D56/500/sprockets%2F75ebadd035f1324b194034af92eac3a0 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/900/sprockets%2F5729f77d97fdee53b1942cf17f6f05e4 +474 -0
- data/test/dummy/tmp/cache/assets/D5A/D50/sprockets%2F81bace3db2c2f1241175ff3c5009d08c +0 -0
- data/test/dummy/tmp/cache/assets/D5B/C70/sprockets%2Fe64119a9db7017b7ab3b0da1b6076f0d +44 -0
- data/test/dummy/tmp/cache/assets/D5E/4D0/sprockets%2F756f25e4ad861a050cdc41bb8414e4ab +126 -0
- data/test/dummy/tmp/cache/assets/D5E/730/sprockets%2Fd30caf70b387c4604326bdda32aeb549 +0 -0
- data/test/dummy/tmp/cache/assets/D5E/AA0/sprockets%2F790dd07caaaacb30ceb0174664e90817 +136 -0
- data/test/dummy/tmp/cache/assets/D64/D30/sprockets%2Fe4bd8f60a3a446274c3cb2f5d16563ac +590 -0
- data/test/dummy/tmp/cache/assets/D66/400/sprockets%2Fecb7401d20daf25605a7afad3a793778 +0 -0
- data/test/dummy/tmp/cache/assets/D67/250/sprockets%2F8422eb26855ca9c953a3bf1aeade8004 +0 -0
- data/test/dummy/tmp/cache/assets/D69/900/sprockets%2F28ae64f52cb18f77b1a1bd9c51293da4 +0 -0
- data/test/dummy/tmp/cache/assets/D6A/870/sprockets%2F1ece6a51b42f9280f4cee9020c94b72e +197 -0
- data/test/dummy/tmp/cache/assets/D6B/DD0/sprockets%2F9a0abc735e27fc61dab019788518eba4 +164 -0
- data/test/dummy/tmp/cache/assets/D6E/CC0/sprockets%2F8b4fbcec2475e7203b8859baf8e310a3 +0 -0
- data/test/dummy/tmp/cache/assets/D72/470/sprockets%2Fbc0c6d850e7c769e83d58eb3e6061b2a +2556 -0
- data/test/dummy/tmp/cache/assets/D72/9D0/sprockets%2F9402daf6da6f7eed331a9d78216cb761 +0 -0
- data/test/dummy/tmp/cache/assets/D74/070/sprockets%2F91ae68f698a39bd7d0d11150fc46e4cd +418 -0
- data/test/dummy/tmp/cache/assets/D74/7F0/sprockets%2F22dad1069ea6a8f29ae757c44e18ec83 +0 -0
- data/test/dummy/tmp/cache/assets/D75/3C0/sprockets%2F44e2ae51b97853d8ecda7b264a267c7d +1630 -0
- data/test/dummy/tmp/cache/assets/D77/780/sprockets%2Ffa2abdfb0b62867c346f79187b8e42d5 +823 -0
- data/test/dummy/tmp/cache/assets/D79/850/sprockets%2F4d540586ed379fd9a70fa0b7ce4f5b27 +306 -0
- data/test/dummy/tmp/cache/assets/D7A/B60/sprockets%2F5925c92f48caff053d08853dc69e5bba +0 -0
- data/test/dummy/tmp/cache/assets/D81/C90/sprockets%2F19aca5c835efce74878c23e581e2a89e +2239 -0
- data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +11228 -0
- data/test/dummy/tmp/cache/assets/D8B/B10/sprockets%2Fbb7a2305a8f2832631863bbababb67be +301 -0
- data/test/dummy/tmp/cache/assets/D92/3B0/sprockets%2F93dc71f411faf72ec8ef0b5d217b51a0 +505 -0
- data/test/dummy/tmp/cache/assets/D92/EE0/sprockets%2Ffd051ea0abf6be6970754aa732e40c8b +289 -0
- data/test/dummy/tmp/cache/assets/D93/810/sprockets%2F7dc1ac5e1b83ba5144e34cf156d48a8a +471 -0
- data/test/dummy/tmp/cache/assets/D94/020/sprockets%2F35cb4ce22488fb5bdd260508ca47a3fb +239 -0
- data/test/dummy/tmp/cache/assets/D94/EC0/sprockets%2F8b900fba18f8e046f5f12e6d1f0ac15b +74 -0
- data/test/dummy/tmp/cache/assets/D95/470/sprockets%2F5be5d361a52575c433831b5e8cccbace +9273 -0
- data/test/dummy/tmp/cache/assets/D97/9D0/sprockets%2F524a2a94a88c1d392dabcba654e365fc +103 -0
- data/test/dummy/tmp/cache/assets/D9D/800/sprockets%2Ff8387220eb4dda9b29a37b5deb9f2a40 +54 -0
- data/test/dummy/tmp/cache/assets/D9E/DD0/sprockets%2Fb6b4ffad6485eda046b327a196e8c44a +0 -0
- data/test/dummy/tmp/cache/assets/DA1/0A0/sprockets%2F359c94aee6ba2e15fc9666aa4de311c8 +166 -0
- data/test/dummy/tmp/cache/assets/DA1/0D0/sprockets%2F798de3c28452e164a7fc1a3a6e8cdb4b +652 -0
- data/test/dummy/tmp/cache/assets/DA3/CB0/sprockets%2Fdfad6bb1857a8af91f98ba137c18504e +815 -0
- data/test/dummy/tmp/cache/assets/DA4/E10/sprockets%2Fbda7705734ace95f12a7d79df9c14af2 +1354 -0
- data/test/dummy/tmp/cache/assets/DA5/E30/sprockets%2F2e6707a119e94a784efbadca18d7e8d1 +129 -0
- data/test/dummy/tmp/cache/assets/DA6/4B0/sprockets%2F4f7a708b6aa2d42eb577493dea7cef55 +115 -0
- data/test/dummy/tmp/cache/assets/DA8/A10/sprockets%2F0ae5bbb4ca200e74db3b64d72c2be120 +0 -0
- data/test/dummy/tmp/cache/assets/DA9/3F0/sprockets%2Fdd0af9cfd65fb7d02fe778c8f6015361 +499 -0
- data/test/dummy/tmp/cache/assets/DA9/780/sprockets%2Fe3559a635e8f92dec7727a3db2ae7b4c +813 -0
- data/test/dummy/tmp/cache/assets/DAC/0E0/sprockets%2F04cef8243a9ef7321846debc977ea8db +607 -0
- data/test/dummy/tmp/cache/assets/DB1/260/sprockets%2Fb879ff7530bf8cc175e0c7e70dc4e79b +0 -0
- data/test/dummy/tmp/cache/assets/DB4/4C0/sprockets%2F30a76cbd98dedb56742cd8ecaf858757 +0 -0
- data/test/dummy/tmp/cache/assets/DBD/7E0/sprockets%2F236fb1ac5ed9f2e3fe32203acc3a842d +0 -0
- data/test/dummy/tmp/cache/assets/DC2/DF0/sprockets%2Fe233bcaba8beff15626c35cb5e0e0936 +845 -0
- data/test/dummy/tmp/cache/assets/DC4/600/sprockets%2F59c96aa6c1cbebc61bff6c050a5351d7 +225 -0
- data/test/dummy/tmp/cache/assets/DC5/030/sprockets%2Fcb2fe864a0177eec19017c43ce9aa4ad +187 -0
- data/test/dummy/tmp/cache/assets/DC8/A60/sprockets%2F9fcb9f5c3f679ce749ee4c3f93869ba6 +74 -0
- data/test/dummy/tmp/cache/assets/DCB/D40/sprockets%2Ffd5542bfb7660a8d8cac3a2e46fb01f8 +828 -0
- data/test/dummy/tmp/cache/assets/DCC/020/sprockets%2F0c129c5f2784c96fa1dc3da6c19c1efc +128 -0
- data/test/dummy/tmp/cache/assets/DCF/520/sprockets%2F975162fb97a3ec7033db5f2fdba4fcd3 +70 -0
- data/test/dummy/tmp/cache/assets/DD0/000/sprockets%2F0d5d631cce6f0b078bb29cf98b3d78bb +276 -0
- data/test/dummy/tmp/cache/assets/DD0/C90/sprockets%2F84eeca4ef8f5eb29b13f7e1ea3c71324 +591 -0
- data/test/dummy/tmp/cache/assets/DD6/710/sprockets%2F9e83f2ebbe3e349efca2de390e15d635 +204 -0
- data/test/dummy/tmp/cache/assets/DE1/830/sprockets%2Fd23d3cafef2e2a9055bc103dffc1a023 +208 -0
- data/test/dummy/tmp/cache/assets/DEB/470/sprockets%2Fae2de0fcbc2214b71d3f2a875d2bc8c3 +2255 -0
- data/test/dummy/tmp/cache/assets/DEE/690/sprockets%2F5d824bcadef29060cc13eed71af4b4d0 +550 -0
- data/test/dummy/tmp/cache/assets/DF0/5D0/sprockets%2F25a875eb0a5d4c49bcc3fa39ea0adb26 +567 -0
- data/test/dummy/tmp/cache/assets/DF3/E20/sprockets%2Fada770c49a5d6b38d1cc43ed4d51c1fc +0 -0
- data/test/dummy/tmp/cache/assets/DF5/C80/sprockets%2F03ad7d7b3a8feba9ed9be82ae2083b20 +340 -0
- data/test/dummy/tmp/cache/assets/DF6/560/sprockets%2Fafceb2b55eb108efe4446dfb02b519b8 +0 -0
- data/test/dummy/tmp/cache/assets/DFC/030/sprockets%2Fcbdd3679eaba219b4e1ff20677af1c6f +1371 -0
- data/test/dummy/tmp/cache/assets/E00/970/sprockets%2F8bc6dde8d05c382dd07cbcec70f54e09 +378 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E12/2F0/sprockets%2F5c45062ecfbe512dcba176ba6ddacc00 +523 -0
- data/test/dummy/tmp/cache/assets/E21/5D0/sprockets%2Fd4fe6d611bfb0e63c04de5dbfb128a8a +0 -0
- data/test/dummy/tmp/cache/assets/E22/770/sprockets%2F2ccebcabfbb9b59159e4b73b3b30a74d +208 -0
- data/test/dummy/tmp/cache/assets/E31/A90/sprockets%2F26b98bbbc15eee9b370c7dcde88d16aa +394 -0
- data/test/dummy/tmp/cache/assets/E31/E30/sprockets%2Ffbdafcc4e2f44bb9fc653bcf9625b750 +284 -0
- data/test/dummy/tmp/cache/assets/E37/1C0/sprockets%2Fa5eb45fc86dafe2bee4e4fa3f53c4785 +0 -0
- data/test/dummy/tmp/cache/assets/E4C/960/sprockets%2F13fd6e4bfdf031acb3dedca8d0f407b4 +1277 -0
- data/test/dummy/tmp/cache/assets/E88/330/sprockets%2Fe02d0adb5529ffafcea1b9e5ccf69a5b +669 -0
- data/test/dummy/tmp/pids/server.pid +1 -0
- data/test/dummy/tmp/simple.js.js +20 -0
- data/test/dummy/tmp/soy-1325274421.js +20 -0
- data/test/dummy/tmp/soy-1325286267.js +20 -0
- data/test/test_helper.rb +10 -0
- data/test/yellow-brick-road_test.rb +7 -0
- metadata +538 -0
Binary file
|
@@ -0,0 +1,25 @@
|
|
1
|
+
o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325294621.441301:@value{ I"length:EFi�I"digest;
|
2
|
+
F"%599d128aadf6cac0779f910dbd670d6cI"source;
|
3
|
+
FI"�// This file was automatically generated from simple.js.soy.
|
4
|
+
// Please don't edit this file by hand.
|
5
|
+
|
6
|
+
goog.provide('examples.simple');
|
7
|
+
|
8
|
+
goog.require('soy');
|
9
|
+
goog.require('soy.StringBuilder');
|
10
|
+
|
11
|
+
|
12
|
+
/**
|
13
|
+
* @param {Object.<string, *>=} opt_data
|
14
|
+
* @param {soy.StringBuilder=} opt_sb
|
15
|
+
* @return {string}
|
16
|
+
* @notypecheck
|
17
|
+
*/
|
18
|
+
examples.simple.helloName = function(opt_data, opt_sb) {
|
19
|
+
var output = opt_sb || new soy.StringBuilder();
|
20
|
+
output.append((! opt_data.greetingWord) ? 'Hello ' + soy.$$escapeHtml(opt_data.name) + '!' : soy.$$escapeHtml(opt_data.greetingWord) + ' ' + soy.$$escapeHtml(opt_data.name) + '!');
|
21
|
+
return opt_sb ? '' : output.toString();
|
22
|
+
};
|
23
|
+
;
|
24
|
+
FI"
|
25
|
+
F"%7add0dde373c7ed67f086c0a109f4944
|
Binary file
|
@@ -0,0 +1,454 @@
|
|
1
|
+
o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325441613.677452:@value{ I"length:EFi"0I"digest;
|
2
|
+
F"%9dc4761d25629e75f802ad87dab8a144I"source;
|
3
|
+
FI""0// Copyright 2006 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 Datastructure: Hash Map.
|
19
|
+
*
|
20
|
+
* @author arv@google.com (Erik Arvidsson)
|
21
|
+
* @author jonp@google.com (Jon Perlow) Optimized for IE6
|
22
|
+
*
|
23
|
+
* This file contains an implementation of a Map structure. It implements a lot
|
24
|
+
* of the methods used in goog.structs so those functions work on hashes. For
|
25
|
+
* convenience with common usage the methods accept any type for the key, though
|
26
|
+
* internally they will be cast to strings.
|
27
|
+
*/
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
goog.provide('goog.structs.Map');
|
32
|
+
|
33
|
+
goog.require('goog.iter.Iterator');
|
34
|
+
goog.require('goog.iter.StopIteration');
|
35
|
+
goog.require('goog.object');
|
36
|
+
goog.require('goog.structs');
|
37
|
+
|
38
|
+
|
39
|
+
|
40
|
+
/**
|
41
|
+
* Class for Hash Map datastructure.
|
42
|
+
* @param {*=} opt_map Map or Object to initialize the map with.
|
43
|
+
* @param {...*} var_args If 2 or more arguments are present then they
|
44
|
+
* will be used as key-value pairs.
|
45
|
+
* @constructor
|
46
|
+
*/
|
47
|
+
goog.structs.Map = function(opt_map, var_args) {
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Underlying JS object used to implement the map.
|
51
|
+
* @type {!Object}
|
52
|
+
* @private
|
53
|
+
*/
|
54
|
+
this.map_ = {};
|
55
|
+
|
56
|
+
/**
|
57
|
+
* An array of keys. This is necessary for two reasons:
|
58
|
+
* 1. Iterating the keys using for (var key in this.map_) allocates an
|
59
|
+
* object for every key in IE which is really bad for IE6 GC perf.
|
60
|
+
* 2. Without a side data structure, we would need to escape all the keys
|
61
|
+
* as that would be the only way we could tell during iteration if the
|
62
|
+
* key was an internal key or a property of the object.
|
63
|
+
*
|
64
|
+
* This array can contain deleted keys so it's necessary to check the map
|
65
|
+
* as well to see if the key is still in the map (this doesn't require a
|
66
|
+
* memory allocation in IE).
|
67
|
+
* @type {!Array.<string>}
|
68
|
+
* @private
|
69
|
+
*/
|
70
|
+
this.keys_ = [];
|
71
|
+
|
72
|
+
var argLength = arguments.length;
|
73
|
+
|
74
|
+
if (argLength > 1) {
|
75
|
+
if (argLength % 2) {
|
76
|
+
throw Error('Uneven number of arguments');
|
77
|
+
}
|
78
|
+
for (var i = 0; i < argLength; i += 2) {
|
79
|
+
this.set(arguments[i], arguments[i + 1]);
|
80
|
+
}
|
81
|
+
} else if (opt_map) {
|
82
|
+
this.addAll(/** @type {Object} */ (opt_map));
|
83
|
+
}
|
84
|
+
};
|
85
|
+
|
86
|
+
|
87
|
+
/**
|
88
|
+
* The number of key value pairs in the map.
|
89
|
+
* @private
|
90
|
+
* @type {number}
|
91
|
+
*/
|
92
|
+
goog.structs.Map.prototype.count_ = 0;
|
93
|
+
|
94
|
+
|
95
|
+
/**
|
96
|
+
* Version used to detect changes while iterating.
|
97
|
+
* @private
|
98
|
+
* @type {number}
|
99
|
+
*/
|
100
|
+
goog.structs.Map.prototype.version_ = 0;
|
101
|
+
|
102
|
+
|
103
|
+
/**
|
104
|
+
* @return {number} The number of key-value pairs in the map.
|
105
|
+
*/
|
106
|
+
goog.structs.Map.prototype.getCount = function() {
|
107
|
+
return this.count_;
|
108
|
+
};
|
109
|
+
|
110
|
+
|
111
|
+
/**
|
112
|
+
* Returns the values of the map.
|
113
|
+
* @return {!Array} The values in the map.
|
114
|
+
*/
|
115
|
+
goog.structs.Map.prototype.getValues = function() {
|
116
|
+
this.cleanupKeysArray_();
|
117
|
+
|
118
|
+
var rv = [];
|
119
|
+
for (var i = 0; i < this.keys_.length; i++) {
|
120
|
+
var key = this.keys_[i];
|
121
|
+
rv.push(this.map_[key]);
|
122
|
+
}
|
123
|
+
return rv;
|
124
|
+
};
|
125
|
+
|
126
|
+
|
127
|
+
/**
|
128
|
+
* Returns the keys of the map.
|
129
|
+
* @return {!Array.<string>} Array of string values.
|
130
|
+
*/
|
131
|
+
goog.structs.Map.prototype.getKeys = function() {
|
132
|
+
this.cleanupKeysArray_();
|
133
|
+
return /** @type {!Array.<string>} */ (this.keys_.concat());
|
134
|
+
};
|
135
|
+
|
136
|
+
|
137
|
+
/**
|
138
|
+
* Whether the map contains the given key.
|
139
|
+
* @param {*} key The key to check for.
|
140
|
+
* @return {boolean} Whether the map contains the key.
|
141
|
+
*/
|
142
|
+
goog.structs.Map.prototype.containsKey = function(key) {
|
143
|
+
return goog.structs.Map.hasKey_(this.map_, key);
|
144
|
+
};
|
145
|
+
|
146
|
+
|
147
|
+
/**
|
148
|
+
* Whether the map contains the given value. This is O(n).
|
149
|
+
* @param {*} val The value to check for.
|
150
|
+
* @return {boolean} Whether the map contains the value.
|
151
|
+
*/
|
152
|
+
goog.structs.Map.prototype.containsValue = function(val) {
|
153
|
+
for (var i = 0; i < this.keys_.length; i++) {
|
154
|
+
var key = this.keys_[i];
|
155
|
+
if (goog.structs.Map.hasKey_(this.map_, key) && this.map_[key] == val) {
|
156
|
+
return true;
|
157
|
+
}
|
158
|
+
}
|
159
|
+
return false;
|
160
|
+
};
|
161
|
+
|
162
|
+
|
163
|
+
/**
|
164
|
+
* Whether this map is equal to the argument map.
|
165
|
+
* @param {goog.structs.Map} otherMap The map against which to test equality.
|
166
|
+
* @param {function(*, *) : boolean=} opt_equalityFn Optional equality function
|
167
|
+
* to test equality of values. If not specified, this will test whether
|
168
|
+
* the values contained in each map are identical objects.
|
169
|
+
* @return {boolean} Whether the maps are equal.
|
170
|
+
*/
|
171
|
+
goog.structs.Map.prototype.equals = function(otherMap, opt_equalityFn) {
|
172
|
+
if (this === otherMap) {
|
173
|
+
return true;
|
174
|
+
}
|
175
|
+
|
176
|
+
if (this.count_ != otherMap.getCount()) {
|
177
|
+
return false;
|
178
|
+
}
|
179
|
+
|
180
|
+
var equalityFn = opt_equalityFn || goog.structs.Map.defaultEquals;
|
181
|
+
|
182
|
+
this.cleanupKeysArray_();
|
183
|
+
for (var key, i = 0; key = this.keys_[i]; i++) {
|
184
|
+
if (!equalityFn(this.get(key), otherMap.get(key))) {
|
185
|
+
return false;
|
186
|
+
}
|
187
|
+
}
|
188
|
+
|
189
|
+
return true;
|
190
|
+
};
|
191
|
+
|
192
|
+
|
193
|
+
/**
|
194
|
+
* Default equality test for values.
|
195
|
+
* @param {*} a The first value.
|
196
|
+
* @param {*} b The second value.
|
197
|
+
* @return {boolean} Whether a and b reference the same object.
|
198
|
+
*/
|
199
|
+
goog.structs.Map.defaultEquals = function(a, b) {
|
200
|
+
return a === b;
|
201
|
+
};
|
202
|
+
|
203
|
+
|
204
|
+
/**
|
205
|
+
* @return {boolean} Whether the map is empty.
|
206
|
+
*/
|
207
|
+
goog.structs.Map.prototype.isEmpty = function() {
|
208
|
+
return this.count_ == 0;
|
209
|
+
};
|
210
|
+
|
211
|
+
|
212
|
+
/**
|
213
|
+
* Removes all key-value pairs from the map.
|
214
|
+
*/
|
215
|
+
goog.structs.Map.prototype.clear = function() {
|
216
|
+
this.map_ = {};
|
217
|
+
this.keys_.length = 0;
|
218
|
+
this.count_ = 0;
|
219
|
+
this.version_ = 0;
|
220
|
+
};
|
221
|
+
|
222
|
+
|
223
|
+
/**
|
224
|
+
* Removes a key-value pair based on the key. This is O(logN) amortized due to
|
225
|
+
* updating the keys array whenever the count becomes half the size of the keys
|
226
|
+
* in the keys array.
|
227
|
+
* @param {*} key The key to remove.
|
228
|
+
* @return {boolean} Whether object was removed.
|
229
|
+
*/
|
230
|
+
goog.structs.Map.prototype.remove = function(key) {
|
231
|
+
if (goog.structs.Map.hasKey_(this.map_, key)) {
|
232
|
+
delete this.map_[key];
|
233
|
+
this.count_--;
|
234
|
+
this.version_++;
|
235
|
+
|
236
|
+
// clean up the keys array if the threshhold is hit
|
237
|
+
if (this.keys_.length > 2 * this.count_) {
|
238
|
+
this.cleanupKeysArray_();
|
239
|
+
}
|
240
|
+
|
241
|
+
return true;
|
242
|
+
}
|
243
|
+
return false;
|
244
|
+
};
|
245
|
+
|
246
|
+
|
247
|
+
/**
|
248
|
+
* Cleans up the temp keys array by removing entries that are no longer in the
|
249
|
+
* map.
|
250
|
+
* @private
|
251
|
+
*/
|
252
|
+
goog.structs.Map.prototype.cleanupKeysArray_ = function() {
|
253
|
+
if (this.count_ != this.keys_.length) {
|
254
|
+
// First remove keys that are no longer in the map.
|
255
|
+
var srcIndex = 0;
|
256
|
+
var destIndex = 0;
|
257
|
+
while (srcIndex < this.keys_.length) {
|
258
|
+
var key = this.keys_[srcIndex];
|
259
|
+
if (goog.structs.Map.hasKey_(this.map_, key)) {
|
260
|
+
this.keys_[destIndex++] = key;
|
261
|
+
}
|
262
|
+
srcIndex++;
|
263
|
+
}
|
264
|
+
this.keys_.length = destIndex;
|
265
|
+
}
|
266
|
+
|
267
|
+
if (this.count_ != this.keys_.length) {
|
268
|
+
// If the count still isn't correct, that means we have duplicates. This can
|
269
|
+
// happen when the same key is added and removed multiple times. Now we have
|
270
|
+
// to allocate one extra Object to remove the duplicates. This could have
|
271
|
+
// been done in the first pass, but in the common case, we can avoid
|
272
|
+
// allocating an extra object by only doing this when necessary.
|
273
|
+
var seen = {};
|
274
|
+
var srcIndex = 0;
|
275
|
+
var destIndex = 0;
|
276
|
+
while (srcIndex < this.keys_.length) {
|
277
|
+
var key = this.keys_[srcIndex];
|
278
|
+
if (!(goog.structs.Map.hasKey_(seen, key))) {
|
279
|
+
this.keys_[destIndex++] = key;
|
280
|
+
seen[key] = 1;
|
281
|
+
}
|
282
|
+
srcIndex++;
|
283
|
+
}
|
284
|
+
this.keys_.length = destIndex;
|
285
|
+
}
|
286
|
+
};
|
287
|
+
|
288
|
+
|
289
|
+
/**
|
290
|
+
* Returns the value for the given key. If the key is not found and the default
|
291
|
+
* value is not given this will return {@code undefined}.
|
292
|
+
* @param {*} key The key to get the value for.
|
293
|
+
* @param {*=} opt_val The value to return if no item is found for the given
|
294
|
+
* key, defaults to undefined.
|
295
|
+
* @return {*} The value for the given key.
|
296
|
+
*/
|
297
|
+
goog.structs.Map.prototype.get = function(key, opt_val) {
|
298
|
+
if (goog.structs.Map.hasKey_(this.map_, key)) {
|
299
|
+
return this.map_[key];
|
300
|
+
}
|
301
|
+
return opt_val;
|
302
|
+
};
|
303
|
+
|
304
|
+
|
305
|
+
/**
|
306
|
+
* Adds a key-value pair to the map.
|
307
|
+
* @param {*} key The key.
|
308
|
+
* @param {*} value The value to add.
|
309
|
+
*/
|
310
|
+
goog.structs.Map.prototype.set = function(key, value) {
|
311
|
+
if (!(goog.structs.Map.hasKey_(this.map_, key))) {
|
312
|
+
this.count_++;
|
313
|
+
this.keys_.push(key);
|
314
|
+
// Only change the version if we add a new key.
|
315
|
+
this.version_++;
|
316
|
+
}
|
317
|
+
this.map_[key] = value;
|
318
|
+
};
|
319
|
+
|
320
|
+
|
321
|
+
/**
|
322
|
+
* Adds multiple key-value pairs from another goog.structs.Map or Object.
|
323
|
+
* @param {Object} map Object containing the data to add.
|
324
|
+
*/
|
325
|
+
goog.structs.Map.prototype.addAll = function(map) {
|
326
|
+
var keys, values;
|
327
|
+
if (map instanceof goog.structs.Map) {
|
328
|
+
keys = map.getKeys();
|
329
|
+
values = map.getValues();
|
330
|
+
} else {
|
331
|
+
keys = goog.object.getKeys(map);
|
332
|
+
values = goog.object.getValues(map);
|
333
|
+
}
|
334
|
+
// we could use goog.array.forEach here but I don't want to introduce that
|
335
|
+
// dependency just for this.
|
336
|
+
for (var i = 0; i < keys.length; i++) {
|
337
|
+
this.set(keys[i], values[i]);
|
338
|
+
}
|
339
|
+
};
|
340
|
+
|
341
|
+
|
342
|
+
/**
|
343
|
+
* Clones a map and returns a new map.
|
344
|
+
* @return {!goog.structs.Map} A new map with the same key-value pairs.
|
345
|
+
*/
|
346
|
+
goog.structs.Map.prototype.clone = function() {
|
347
|
+
return new goog.structs.Map(this);
|
348
|
+
};
|
349
|
+
|
350
|
+
|
351
|
+
/**
|
352
|
+
* Returns a new map in which all the keys and values are interchanged
|
353
|
+
* (keys become values and values become keys). If multiple keys map to the
|
354
|
+
* same value, the chosen transposed value is implementation-dependent.
|
355
|
+
*
|
356
|
+
* It acts very similarly to {goog.object.transpose(Object)}.
|
357
|
+
*
|
358
|
+
* @return {!goog.structs.Map} The transposed map.
|
359
|
+
*/
|
360
|
+
goog.structs.Map.prototype.transpose = function() {
|
361
|
+
var transposed = new goog.structs.Map();
|
362
|
+
for (var i = 0; i < this.keys_.length; i++) {
|
363
|
+
var key = this.keys_[i];
|
364
|
+
var value = this.map_[key];
|
365
|
+
transposed.set(value, key);
|
366
|
+
}
|
367
|
+
|
368
|
+
return transposed;
|
369
|
+
};
|
370
|
+
|
371
|
+
|
372
|
+
/**
|
373
|
+
* @return {!Object} Object representation of the map.
|
374
|
+
*/
|
375
|
+
goog.structs.Map.prototype.toObject = function() {
|
376
|
+
this.cleanupKeysArray_();
|
377
|
+
var obj = {};
|
378
|
+
for (var i = 0; i < this.keys_.length; i++) {
|
379
|
+
var key = this.keys_[i];
|
380
|
+
obj[key] = this.map_[key];
|
381
|
+
}
|
382
|
+
return obj;
|
383
|
+
};
|
384
|
+
|
385
|
+
|
386
|
+
/**
|
387
|
+
* Returns an iterator that iterates over the keys in the map. Removal of keys
|
388
|
+
* while iterating might have undesired side effects.
|
389
|
+
* @return {!goog.iter.Iterator} An iterator over the keys in the map.
|
390
|
+
*/
|
391
|
+
goog.structs.Map.prototype.getKeyIterator = function() {
|
392
|
+
return this.__iterator__(true);
|
393
|
+
};
|
394
|
+
|
395
|
+
|
396
|
+
/**
|
397
|
+
* Returns an iterator that iterates over the values in the map. Removal of
|
398
|
+
* keys while iterating might have undesired side effects.
|
399
|
+
* @return {!goog.iter.Iterator} An iterator over the values in the map.
|
400
|
+
*/
|
401
|
+
goog.structs.Map.prototype.getValueIterator = function() {
|
402
|
+
return this.__iterator__(false);
|
403
|
+
};
|
404
|
+
|
405
|
+
|
406
|
+
/**
|
407
|
+
* Returns an iterator that iterates over the values or the keys in the map.
|
408
|
+
* This throws an exception if the map was mutated since the iterator was
|
409
|
+
* created.
|
410
|
+
* @param {boolean=} opt_keys True to iterate over the keys. False to iterate
|
411
|
+
* over the values. The default value is false.
|
412
|
+
* @return {!goog.iter.Iterator} An iterator over the values or keys in the map.
|
413
|
+
*/
|
414
|
+
goog.structs.Map.prototype.__iterator__ = function(opt_keys) {
|
415
|
+
// Clean up keys to minimize the risk of iterating over dead keys.
|
416
|
+
this.cleanupKeysArray_();
|
417
|
+
|
418
|
+
var i = 0;
|
419
|
+
var keys = this.keys_;
|
420
|
+
var map = this.map_;
|
421
|
+
var version = this.version_;
|
422
|
+
var selfObj = this;
|
423
|
+
|
424
|
+
var newIter = new goog.iter.Iterator;
|
425
|
+
newIter.next = function() {
|
426
|
+
while (true) {
|
427
|
+
if (version != selfObj.version_) {
|
428
|
+
throw Error('The map has changed since the iterator was created');
|
429
|
+
}
|
430
|
+
if (i >= keys.length) {
|
431
|
+
throw goog.iter.StopIteration;
|
432
|
+
}
|
433
|
+
var key = keys[i++];
|
434
|
+
return opt_keys ? key : map[key];
|
435
|
+
}
|
436
|
+
};
|
437
|
+
return newIter;
|
438
|
+
};
|
439
|
+
|
440
|
+
|
441
|
+
/**
|
442
|
+
* Safe way to test for hasOwnProperty. It even allows testing for
|
443
|
+
* 'hasOwnProperty'.
|
444
|
+
* @param {Object} obj The object to test for presence of the given key.
|
445
|
+
* @param {*} key The key to check for.
|
446
|
+
* @return {boolean} Whether the object has the key.
|
447
|
+
* @private
|
448
|
+
*/
|
449
|
+
goog.structs.Map.hasKey_ = function(obj, key) {
|
450
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
451
|
+
};
|
452
|
+
;
|
453
|
+
FI"
|
454
|
+
F"%d9b401a21ee54cec0d591d4be0556305
|