iugu-ux 0.8.0 → 0.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. data/README.md +2 -0
  2. data/lib/iugu-ux/version.rb +1 -1
  3. data/sandbox/app/assets/javascripts/web-app/presenters/main-view.jst.eco +31 -12
  4. data/sandbox/app/assets/javascripts/web-app/usecode/root-view.coffee +0 -2
  5. data/sandbox/app/controllers/ui_library_controller.rb +0 -3
  6. data/sandbox/app/views/layouts/ui.html.haml +0 -1
  7. data/sandbox/app/views/ui_library/boiler.html.haml +2 -4
  8. data/sandbox/config/routes.rb +0 -1
  9. data/sandbox/log/development.log +20329 -0
  10. data/sandbox/tmp/cache/assets/BE9/020/sprockets%2Fe93a611416f4149c006c589432090903 +0 -0
  11. data/sandbox/tmp/cache/assets/C24/5F0/sprockets%2Fcb3028925f1090968337df085236f532 +0 -0
  12. data/sandbox/tmp/cache/assets/C3E/260/sprockets%2F4262142496540e6691d5bc0260a21eb5 +0 -0
  13. data/sandbox/tmp/cache/assets/C45/3F0/sprockets%2F0a178290fa722133d544643d13708fc6 +0 -0
  14. data/sandbox/tmp/cache/assets/C48/D00/sprockets%2F4a51b39094a347e3e325005c7847551c +0 -0
  15. data/sandbox/tmp/cache/assets/C49/3B0/sprockets%2F405c7112191eed23e8b860254281e763 +0 -0
  16. data/sandbox/tmp/cache/assets/C4F/3A0/sprockets%2F41918e8d7b402652a5649e4b7134d620 +0 -0
  17. data/sandbox/tmp/cache/assets/C53/BD0/sprockets%2F00196765c6f95bc1b670b0941172f829 +0 -0
  18. data/sandbox/tmp/cache/assets/C55/1B0/sprockets%2F413864885359794c0b415c5c012fd8b4 +0 -0
  19. data/sandbox/tmp/cache/assets/C5E/340/sprockets%2Fcaec1317015c08109f31f190314243b2 +0 -0
  20. data/sandbox/tmp/cache/assets/C60/360/sprockets%2Fb7a62e5a9315f80120493f865587d982 +0 -0
  21. data/sandbox/tmp/cache/assets/C62/3A0/sprockets%2Fad550974fd1050311169d4c5004a2e20 +0 -0
  22. data/sandbox/tmp/cache/assets/C6B/870/sprockets%2Fa90a46599772a03198988b6d444a678f +0 -0
  23. data/sandbox/tmp/cache/assets/C75/E10/sprockets%2Fb04a483530140d3348c160f58dc56d49 +0 -0
  24. data/sandbox/tmp/cache/assets/C7A/440/sprockets%2F3828a635611b4f542d38731a1e308f4e +0 -0
  25. data/sandbox/tmp/cache/assets/C7A/7B0/sprockets%2Fb5fc25d37349717a231120228a0e8d99 +0 -0
  26. data/sandbox/tmp/cache/assets/C7A/F30/sprockets%2F70249181577b261a3ea8851b530f1e7c +0 -0
  27. data/sandbox/tmp/cache/assets/C7F/4D0/sprockets%2F8e4b454014428723ac77c713ebf49613 +0 -0
  28. data/sandbox/tmp/cache/assets/C91/150/sprockets%2F084d158b90125d3acd60b07300f3324a +0 -0
  29. data/sandbox/tmp/cache/assets/CA2/760/sprockets%2Fb298c140b2372622351f1ef6b0815f3e +0 -0
  30. data/sandbox/tmp/cache/assets/CA3/610/sprockets%2F06183b0fa253d1afbf76a29801554914 +0 -0
  31. data/sandbox/tmp/cache/assets/CAB/2A0/sprockets%2F35a28a06551a3891e0582ee18e880d0d +0 -0
  32. data/sandbox/tmp/cache/assets/CAC/060/sprockets%2Fe72c3ba435988731c168b6441f1bc622 +0 -0
  33. data/sandbox/tmp/cache/assets/CB4/F00/sprockets%2Fb95d8a0b377ead5c5c59405670734228 +0 -0
  34. data/sandbox/tmp/cache/assets/CB9/9D0/sprockets%2F893272529e62fea11982e442c0df4c49 +0 -0
  35. data/sandbox/tmp/cache/assets/CBA/6A0/sprockets%2F964d3e9f13da420a6098981857d20c8b +0 -0
  36. data/sandbox/tmp/cache/assets/CBB/3F0/sprockets%2Feed6910664fe0a469ee6355e91212395 +0 -0
  37. data/sandbox/tmp/cache/assets/CBB/AA0/sprockets%2F34b613f862555697eb944a2ff6ac3526 +0 -0
  38. data/sandbox/tmp/cache/assets/CBB/E20/sprockets%2F00b2c2691b3a8da5553b13d123137c0c +0 -0
  39. data/sandbox/tmp/cache/assets/CBD/650/sprockets%2F1774801e748257cd49a236d458ce44fd +0 -0
  40. data/sandbox/tmp/cache/assets/CBF/870/sprockets%2F9de5a39e373d70d1455989c3a1c16676 +0 -0
  41. data/sandbox/tmp/cache/assets/CC7/EB0/sprockets%2F079d3b368c9e843b78c90079f26d628b +0 -0
  42. data/sandbox/tmp/cache/assets/CC8/510/sprockets%2F868a1670f8822e6b7847dd22e747a66f +0 -0
  43. data/sandbox/tmp/cache/assets/CCA/850/sprockets%2F1d05d32f046ec7313b0d3619a232d73f +0 -0
  44. data/sandbox/tmp/cache/assets/CCB/400/sprockets%2F1530d5680131ba31d7175dcb56e235ce +0 -0
  45. data/sandbox/tmp/cache/assets/CD0/590/sprockets%2F34362b49bb86e23a636817b55bab30c0 +0 -0
  46. data/sandbox/tmp/cache/assets/CD1/920/sprockets%2F570c0b1741c64e149720c9a70ef31a5e +0 -0
  47. data/sandbox/tmp/cache/assets/CD3/7E0/sprockets%2Fe1da4188365b15d4e56321fe11aa3476 +0 -0
  48. data/sandbox/tmp/cache/assets/CD7/0E0/sprockets%2Fb7291915fd78d50026c443b2c63fa6b0 +0 -0
  49. data/sandbox/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  50. data/sandbox/tmp/cache/assets/CDB/E30/sprockets%2F918458a88fec2cd01991c003b2318ab7 +0 -0
  51. data/sandbox/tmp/cache/assets/CDE/5C0/sprockets%2F794c70924436be60f2ec52426aa8cd61 +0 -0
  52. data/sandbox/tmp/cache/assets/CDF/2A0/sprockets%2Faceafc712241955028dc5b137364e869 +0 -0
  53. data/sandbox/tmp/cache/assets/CDF/EC0/sprockets%2Fa90760fc2f137785c7b810dcb9a40196 +0 -0
  54. data/sandbox/tmp/cache/assets/CE3/1C0/sprockets%2Ff617335dbdd40d03704f3d1249939f9c +0 -0
  55. data/sandbox/tmp/cache/assets/CE6/910/sprockets%2F4f1ef52dd511139b0d3f12f3879f6648 +0 -0
  56. data/sandbox/tmp/cache/assets/CE8/0F0/sprockets%2F12795deec07b2046d9467dd3f2e25809 +0 -0
  57. data/sandbox/tmp/cache/assets/CEA/5C0/sprockets%2Ff07ef674251629759e234ea642a3cc8e +0 -0
  58. data/sandbox/tmp/cache/assets/CED/340/sprockets%2F2f33f5d63e037a9f9b859f6c25139e30 +0 -0
  59. data/sandbox/tmp/cache/assets/CF1/CD0/sprockets%2Ff604c432d2de9f942882ecd8462578f0 +0 -0
  60. data/sandbox/tmp/cache/assets/CF5/E20/sprockets%2Ff31c0130a87c513e0e5ecea55135117c +0 -0
  61. data/sandbox/tmp/cache/assets/CFA/EE0/sprockets%2Fd95b64bc8b83485c8f3960c625885dc6 +0 -0
  62. data/sandbox/tmp/cache/assets/CFD/6C0/sprockets%2F1203d4bbdfe1aac02f896e2447006951 +0 -0
  63. data/sandbox/tmp/cache/assets/D05/8E0/sprockets%2F58046c1329c03b4cc2e5fa962f431ca8 +0 -0
  64. data/sandbox/tmp/cache/assets/D05/F60/sprockets%2Fb2725d240fe20257dc6a9e0b6a22399d +0 -0
  65. data/sandbox/tmp/cache/assets/D08/ED0/sprockets%2Fcb1aee736d3b287a872298b7741b012b +0 -0
  66. data/sandbox/tmp/cache/assets/D09/DB0/sprockets%2F21a7ee2fd49111e1378c6f7118fd230e +0 -0
  67. data/sandbox/tmp/cache/assets/D10/6D0/sprockets%2F966130263a0cbcd9c69c2f06789ad3d3 +0 -0
  68. data/sandbox/tmp/cache/assets/D10/8C0/sprockets%2F5d1e20d279d209b6fc1606d7de41f728 +0 -0
  69. data/sandbox/tmp/cache/assets/D10/E50/sprockets%2F86dbab9960f9195090301e2c42e1eeb8 +0 -0
  70. data/sandbox/tmp/cache/assets/D18/2F0/sprockets%2Fcc2e1640b5601b34eb61a4c333a2e31b +0 -0
  71. data/sandbox/tmp/cache/assets/D1A/B70/sprockets%2F47ae92dd9d034b32098b19bf8f2475a9 +0 -0
  72. data/sandbox/tmp/cache/assets/D1B/8C0/sprockets%2Fa2e16c5e5e97e98b526e7a6516f4622a +0 -0
  73. data/sandbox/tmp/cache/assets/D1E/7C0/sprockets%2Fb590b97f48766ae095ccf7b821361c6d +0 -0
  74. data/sandbox/tmp/cache/assets/D26/0C0/sprockets%2F44ba33f7338d8b57eb37f98e8c861e08 +0 -0
  75. data/sandbox/tmp/cache/assets/D2B/9B0/sprockets%2F4de45f7ee4e3076777bd571c66f8666b +0 -0
  76. data/sandbox/tmp/cache/assets/D2D/8C0/sprockets%2F6403fb17fb855b2dd047b010fbf8204d +0 -0
  77. data/sandbox/tmp/cache/assets/D2D/AF0/sprockets%2Fff24230f8cf22d156618240bb72ddb2a +0 -0
  78. data/sandbox/tmp/cache/assets/D2E/9D0/sprockets%2F9c0a2445ab6c0967470b5b22d4b1f8ba +0 -0
  79. data/sandbox/tmp/cache/assets/D2F/500/sprockets%2F4b69a31fdeabf6b46a1656d06b036043 +0 -0
  80. data/sandbox/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  81. data/sandbox/tmp/cache/assets/D34/280/sprockets%2F0fcf69c7e8fd9961e1158d70583e8f95 +0 -0
  82. data/sandbox/tmp/cache/assets/D34/3E0/sprockets%2F46a73c17c9a561115944df004dbbdd7b +0 -0
  83. data/sandbox/tmp/cache/assets/D35/AC0/sprockets%2F67d23b05f2a7bc455d0f5f408ca6d523 +0 -0
  84. data/sandbox/tmp/cache/assets/D36/930/sprockets%2Fc2a0ff7004c8ff6a483b33c8d17c2417 +0 -0
  85. data/sandbox/tmp/cache/assets/D37/1E0/sprockets%2Fc42800bd200fbf8edbdf9410949590a4 +0 -0
  86. data/sandbox/tmp/cache/assets/D37/B30/sprockets%2F9e0ec117e9064c55401b50c2abb8ff76 +0 -0
  87. data/sandbox/tmp/cache/assets/D39/880/sprockets%2F30ace94e10312e02fdf5d4a398393f8b +0 -0
  88. data/sandbox/tmp/cache/assets/D39/E50/sprockets%2F2e903f41216c9a5bfde3b77d1b9c1390 +0 -0
  89. data/sandbox/tmp/cache/assets/D3B/BC0/sprockets%2F19510a763bd1521ff5fc70ffe0d837d3 +0 -0
  90. data/sandbox/tmp/cache/assets/D3D/B80/sprockets%2F75df7c9d480cfbe1f976999e7647d771 +0 -0
  91. data/sandbox/tmp/cache/assets/D40/6C0/sprockets%2F5331b2ee1f23f57b9b2a96fd0a85b577 +0 -0
  92. data/sandbox/tmp/cache/assets/D40/8A0/sprockets%2F4483a17992b57cddb5dee15e327d30e3 +0 -0
  93. data/sandbox/tmp/cache/assets/D44/320/sprockets%2F27989e358a4a57b48c5e4062bff2aa4a +0 -0
  94. data/sandbox/tmp/cache/assets/D46/650/sprockets%2Fba1459a80d8874a816f88ffec22019ac +0 -0
  95. data/sandbox/tmp/cache/assets/D47/BA0/sprockets%2F6d287a845e176586f4aaa3f6b5f6ab51 +0 -0
  96. data/sandbox/tmp/cache/assets/D47/FD0/sprockets%2F279dd54295ff5a0e283a0e5730fff28c +0 -0
  97. data/sandbox/tmp/cache/assets/D48/370/sprockets%2Fb654fd37f9f63ec202a3636e29b94ef0 +0 -0
  98. data/sandbox/tmp/cache/assets/D4A/1A0/sprockets%2Fb746360a8b3ce79c57e74a9c15309fdd +0 -0
  99. data/sandbox/tmp/cache/assets/D4D/5C0/sprockets%2F66eaa47a7875ec8a24a5dbe465e75753 +0 -0
  100. data/sandbox/tmp/cache/assets/D4D/9B0/sprockets%2Febcc4e9d10b747864a29d16c13f5d899 +0 -0
  101. data/sandbox/tmp/cache/assets/D4F/810/sprockets%2Fa10070d6497ba2b4ea552d4a1bb444cb +0 -0
  102. data/sandbox/tmp/cache/assets/D55/310/sprockets%2F2b9be79ca64ec7d294d4825e21696ce9 +0 -0
  103. data/sandbox/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  104. data/sandbox/tmp/cache/assets/D5C/200/sprockets%2Fcd323e6f7545cee0b3ba1e84d7520b00 +0 -0
  105. data/sandbox/tmp/cache/assets/D5D/310/sprockets%2F5bbf50c40bff0ad1722051c86fe680e2 +0 -0
  106. data/sandbox/tmp/cache/assets/D5E/290/sprockets%2F22fb620af04e31f058ba64ec4386bb8a +0 -0
  107. data/sandbox/tmp/cache/assets/D62/490/sprockets%2Fd7c71cd09b0f551a237150dae69ca93a +0 -0
  108. data/sandbox/tmp/cache/assets/D62/690/sprockets%2F11532c31a6be258097db31bbeb9ff35d +0 -0
  109. data/sandbox/tmp/cache/assets/D66/BB0/sprockets%2F190ee4571dbbf206b6b26007fd9be9a2 +0 -0
  110. data/sandbox/tmp/cache/assets/D6A/ED0/sprockets%2Ff5d445fff783322a14283beb4eb5bc33 +0 -0
  111. data/sandbox/tmp/cache/assets/D6B/0F0/sprockets%2F3609df3f470bd24af26a51de476cef05 +0 -0
  112. data/sandbox/tmp/cache/assets/D6C/110/sprockets%2F2d5d9cd3d0adf965d07e64a3049d106e +0 -0
  113. data/sandbox/tmp/cache/assets/D6D/AA0/sprockets%2F1cb4a75912d38d0bdde6ee6770644d0f +0 -0
  114. data/sandbox/tmp/cache/assets/D6E/AE0/sprockets%2Fe193ea7b03f186ad2a9515fc78fa8c21 +0 -0
  115. data/sandbox/tmp/cache/assets/D6F/690/sprockets%2F1aa0aa2e0ecc490b1b0ede43013535c1 +0 -0
  116. data/sandbox/tmp/cache/assets/D70/320/sprockets%2Fb81a3eab4ea93cf21fd7585436b8a169 +0 -0
  117. data/sandbox/tmp/cache/assets/D70/5D0/sprockets%2F2ff973bae9120e8358ccbaa6395c2b19 +0 -0
  118. data/sandbox/tmp/cache/assets/D72/250/sprockets%2F68bd0a6d091ef3ba0a64b9762794d6de +0 -0
  119. data/sandbox/tmp/cache/assets/D72/680/sprockets%2F56c41c78c49d45b9ca0c358adea917f0 +0 -0
  120. data/sandbox/tmp/cache/assets/D74/0A0/sprockets%2Fc1392b79af6b88250b634479cbf2bcfc +0 -0
  121. data/sandbox/tmp/cache/assets/D79/5A0/sprockets%2Feb399a6f39a8dcd0bf011768e7153d8d +0 -0
  122. data/sandbox/tmp/cache/assets/D7A/D40/sprockets%2F4d2bc08f2787a3870ff93e0e0f7bc67e +0 -0
  123. data/sandbox/tmp/cache/assets/D7C/270/sprockets%2Fc15bcc081286a12c1751bfad1ac2f2a4 +0 -0
  124. data/sandbox/tmp/cache/assets/D7D/2C0/sprockets%2Fdc76b19d5f8ce4e6e4e9c735c223091f +0 -0
  125. data/sandbox/tmp/cache/assets/D88/B70/sprockets%2F9b378be843af782b809c5ce3d6f6d47f +0 -0
  126. data/sandbox/tmp/cache/assets/D89/670/sprockets%2Fbf838afe9adf908d9ec59bc552833285 +0 -0
  127. data/sandbox/tmp/cache/assets/D8C/D40/sprockets%2Fc4a00154a0e1c15a495ce4d49c9f0ccf +0 -0
  128. data/sandbox/tmp/cache/assets/D96/460/sprockets%2F510545dac5cc61f17bc4d1e8e740fec5 +0 -0
  129. data/sandbox/tmp/cache/assets/D96/940/sprockets%2F6a2c3af22b173eb975f382b4cdcd8c41 +0 -0
  130. data/sandbox/tmp/cache/assets/D96/E90/sprockets%2F0d5f451deca7e6811663f30afc3a4fd4 +0 -0
  131. data/sandbox/tmp/cache/assets/D97/180/sprockets%2F933323d1c368cfeda7a0cacdbd295933 +0 -0
  132. data/sandbox/tmp/cache/assets/D9E/000/sprockets%2F1e365d6ecdad349c6f900a3aa829cf18 +0 -0
  133. data/sandbox/tmp/cache/assets/D9F/020/sprockets%2Fd21cfdfa8182a8866e0ba904ef6561ea +0 -0
  134. data/sandbox/tmp/cache/assets/DA5/EA0/sprockets%2Fc2e6b41187b059dbddd8dbd7cb884482 +0 -0
  135. data/sandbox/tmp/cache/assets/DA7/DE0/sprockets%2Ff022dcf0c3c5fd7de3989f600dc7585c +0 -0
  136. data/sandbox/tmp/cache/assets/DA9/420/sprockets%2F4be564f02ffc16e32df33e92e43fb8f9 +0 -0
  137. data/sandbox/tmp/cache/assets/DAD/190/sprockets%2Fbee62a5d7a8cd35a33763f1cd879de59 +0 -0
  138. data/sandbox/tmp/cache/assets/DB5/EC0/sprockets%2Fde17edd0f2eca28280c1a27ac5c510c3 +0 -0
  139. data/sandbox/tmp/cache/assets/DBE/5E0/sprockets%2F7663abb4baaadfc7e6a48f1150f32b62 +0 -0
  140. data/sandbox/tmp/cache/assets/DBE/A00/sprockets%2F266ad056a1ae59c1b2934fcd2cad6cf0 +0 -0
  141. data/sandbox/tmp/cache/assets/DCA/FD0/sprockets%2F0b59a77adfc61bb863e708ba262ce6bd +0 -0
  142. data/sandbox/tmp/cache/assets/DCB/100/sprockets%2Fd313bd7561b538fb7f2c4ab89dba5b7b +0 -0
  143. data/sandbox/tmp/cache/assets/DCD/930/sprockets%2F6fd2f59e45a7f3c88a183ee00d1cccd0 +0 -0
  144. data/sandbox/tmp/cache/assets/DD0/140/sprockets%2Ff9c3eeef5e04c483a3d2e3fbf458a413 +0 -0
  145. data/sandbox/tmp/cache/assets/DD5/040/sprockets%2F8b8bc1dd8d844edda81c52b7bd29a926 +0 -0
  146. data/sandbox/tmp/cache/assets/DD6/B70/sprockets%2F2f433efcb60c276ccd93cfdce59687a1 +0 -0
  147. data/sandbox/tmp/cache/assets/DD7/9B0/sprockets%2F9f2c0826bd7ae7b745ae8da6db48c26e +0 -0
  148. data/sandbox/tmp/cache/assets/DD8/3B0/sprockets%2Fef4ddeef4487be0bf8c6412714f61e8a +0 -0
  149. data/sandbox/tmp/cache/assets/DE5/390/sprockets%2F24a1cda6893cebd53997dc859def67cd +0 -0
  150. data/sandbox/tmp/cache/assets/DF5/EF0/sprockets%2Fd1e83d1a6f55fafac76b4a2ac8541fd1 +0 -0
  151. data/sandbox/tmp/cache/assets/DFC/890/sprockets%2F2a2c6a1ea98a0cd7b5f7ff4ef7264b3c +0 -0
  152. data/sandbox/tmp/cache/assets/E05/2E0/sprockets%2F92ecbfa92baf6e394ce6c39d731b7cd2 +0 -0
  153. data/sandbox/tmp/cache/assets/E12/710/sprockets%2F7e9ee2069eafc7ddd7aff731dc9186d2 +0 -0
  154. data/sandbox/tmp/cache/assets/E38/420/sprockets%2Fd5e6ba266c8ebddcbf04b3099cf747ff +0 -0
  155. data/sandbox/tmp/cache/assets/E3F/FE0/sprockets%2Fbbbb6f82edbdac31a0c71ce0b04718ac +0 -0
  156. data/sandbox/tmp/cache/assets/E40/840/sprockets%2F0b2c9ee1f1fe00aad3bec06cbd08cd15 +0 -0
  157. data/sandbox/tmp/cache/assets/EC9/D10/sprockets%2F8dfe5ddb2cf1a7f77098fd9eb4ddbcab +0 -0
  158. data/sandbox/tmp/cache/sass/8e0849d701bca2f5a178ed1215813b1316068a4d/components.sassc +0 -0
  159. data/sandbox/tmp/cache/sass/8e0849d701bca2f5a178ed1215813b1316068a4d/reset.sassc +0 -0
  160. data/sandbox/tmp/cache/sass/8e0849d701bca2f5a178ed1215813b1316068a4d/variables.sassc +0 -0
  161. data/sandbox/tmp/cache/sass/e18337f0c19dfad20daa699fa9a096f70c37cd66/experiment.sassc +0 -0
  162. data/vendor/assets/javascripts/iugu-ux/components/base_resource.js.coffee +21 -0
  163. data/vendor/assets/javascripts/iugu-ux/components/base_resources.js.coffee +65 -0
  164. data/vendor/assets/javascripts/iugu-ux/components/iugu-ux-components.js +7 -1
  165. data/vendor/assets/javascripts/iugu-ux/components/iugu-ux-main.js.coffee +4 -2
  166. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-alert.jst.eco +6 -0
  167. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-dataset-record.jst.eco +6 -0
  168. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-dataset.jst.eco +2 -0
  169. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-navigator.jst.eco +6 -0
  170. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-paginator.jst.eco +19 -0
  171. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-responsive-box.jst.eco +2 -0
  172. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-scrollable-container.jst.eco +4 -0
  173. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-search-filter.jst.eco +15 -0
  174. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-search-range.jst.eco +5 -0
  175. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-search.jst.eco +3 -0
  176. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-table-row.jst.eco +3 -0
  177. data/vendor/assets/javascripts/iugu-ux/components/presenters/iugu-ui-table.jst.eco +19 -0
  178. data/vendor/assets/javascripts/iugu-ux/components/usecode/// +83 -0
  179. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-alert.js.coffee +17 -0
  180. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-base.js.coffee +83 -0
  181. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-dataset-record.js.coffee +17 -0
  182. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-dataset.js.coffee +47 -0
  183. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-navigator.js.coffee +47 -0
  184. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-paginator.js.coffee +58 -0
  185. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-responsive-box.js.coffee +83 -0
  186. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-scrollable-content.js.coffee +13 -0
  187. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-filter.js.coffee +55 -0
  188. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search-range.js.coffee +35 -0
  189. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-search.js.coffee +28 -0
  190. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-table.js.coffee +39 -0
  191. data/vendor/assets/javascripts/iugu-ux/components/usecode/iugu-ui-view.js.coffee +78 -0
  192. data/vendor/assets/javascripts/iugu-ux/iugu-ui-helpers.js.coffee +52 -0
  193. data/vendor/assets/javascripts/iugu-ux/iugu-ux.js +0 -1
  194. data/vendor/assets/javascripts/iugu-ux/web-app.js +5 -1
  195. data/vendor/assets/javascripts/vendor.js +5 -0
  196. data/vendor/assets/javascripts/vendor/async.js +700 -0
  197. data/vendor/assets/javascripts/vendor/backbone.paginator.js +833 -0
  198. data/vendor/assets/javascripts/vendor/backbone.validation.js +538 -0
  199. data/vendor/assets/javascripts/vendor/rivets.js +583 -0
  200. data/vendor/assets/javascripts/vendor/tasks.js.coffee +16 -0
  201. data/vendor/assets/javascripts/web-app/config.js.erb +2 -0
  202. data/vendor/assets/javascripts/web-app/helpers.coffee +5 -0
  203. data/vendor/assets/stylesheets/iugu-ux/components.sass +186 -0
  204. data/vendor/assets/stylesheets/iugu-ux/reset.sass +5 -0
  205. data/vendor/assets/stylesheets/iugu-ux/variables.sass +28 -0
  206. metadata +260 -44
  207. data/sandbox/app/assets/stylesheets/application.css +0 -3
  208. data/sandbox/app/assets/stylesheets/default-sprites.sass +0 -12
  209. data/sandbox/app/assets/stylesheets/experiment.sass +0 -181
  210. data/sandbox/app/assets/stylesheets/mq-styles.sass +0 -50
  211. data/sandbox/app/assets/stylesheets/mqtest.css +0 -6
  212. data/sandbox/app/assets/stylesheets/sandbox-sprites.css +0 -6
  213. data/sandbox/app/views/ui_library/mediaquery.html.haml +0 -5
@@ -9,4 +9,3 @@
9
9
  //= require ./capabilities
10
10
  //= require ./enable-prettify
11
11
  //= require ./web-app
12
- //= require ./components/iugu-ux-components.js
@@ -15,10 +15,14 @@
15
15
  //= require web-app/environment
16
16
  //= require web-app/config
17
17
  //= require web-app/comm
18
- //= require web-app/presenters
19
18
  //= require web-app/i18n-languages
20
19
  //= require web-app/i18n
21
20
  //= require web-app/sound
22
21
  //= require web-app/helpers
22
+
23
+ //= require ./iugu-ui-helpers.js
24
+ //= require ./components/iugu-ux-components.js
25
+
23
26
  //= require web-app/models
27
+ //= require web-app/presenters
24
28
  //= require web-app/usecode
@@ -16,3 +16,8 @@
16
16
  //= require ./vendor/mobiscroll.select-2.3.1
17
17
  //= require ./vendor/underscore
18
18
  //= require ./vendor/backbone
19
+ //= require ./vendor/backbone.validation.js
20
+ //= require ./vendor/backbone.paginator.js
21
+ //= require ./vendor/rivets.js
22
+ //= require ./vendor/async.js
23
+ //= require ./vendor/tasks.js
@@ -0,0 +1,700 @@
1
+ /*global setTimeout: false, console: false */
2
+ (function () {
3
+
4
+ var async = {};
5
+
6
+ // global on the server, window in the browser
7
+ var root = this,
8
+ previous_async = root.async;
9
+
10
+ async.noConflict = function () {
11
+ root.async = previous_async;
12
+ return async;
13
+ };
14
+
15
+ //// cross-browser compatiblity functions ////
16
+
17
+ var _forEach = function (arr, iterator) {
18
+ if (arr.forEach) {
19
+ return arr.forEach(iterator);
20
+ }
21
+ for (var i = 0; i < arr.length; i += 1) {
22
+ iterator(arr[i], i, arr);
23
+ }
24
+ };
25
+
26
+ var _map = function (arr, iterator) {
27
+ if (arr.map) {
28
+ return arr.map(iterator);
29
+ }
30
+ var results = [];
31
+ _forEach(arr, function (x, i, a) {
32
+ results.push(iterator(x, i, a));
33
+ });
34
+ return results;
35
+ };
36
+
37
+ var _reduce = function (arr, iterator, memo) {
38
+ if (arr.reduce) {
39
+ return arr.reduce(iterator, memo);
40
+ }
41
+ _forEach(arr, function (x, i, a) {
42
+ memo = iterator(memo, x, i, a);
43
+ });
44
+ return memo;
45
+ };
46
+
47
+ var _keys = function (obj) {
48
+ if (Object.keys) {
49
+ return Object.keys(obj);
50
+ }
51
+ var keys = [];
52
+ for (var k in obj) {
53
+ if (obj.hasOwnProperty(k)) {
54
+ keys.push(k);
55
+ }
56
+ }
57
+ return keys;
58
+ };
59
+
60
+ //// exported async module functions ////
61
+
62
+ //// nextTick implementation with browser-compatible fallback ////
63
+ if (typeof process === 'undefined' || !(process.nextTick)) {
64
+ async.nextTick = function (fn) {
65
+ setTimeout(fn, 0);
66
+ };
67
+ }
68
+ else {
69
+ async.nextTick = process.nextTick;
70
+ }
71
+
72
+ async.forEach = function (arr, iterator, callback) {
73
+ callback = callback || function () {};
74
+ if (!arr.length) {
75
+ return callback();
76
+ }
77
+ var completed = 0;
78
+ _forEach(arr, function (x) {
79
+ iterator(x, function (err) {
80
+ if (err) {
81
+ callback(err);
82
+ callback = function () {};
83
+ }
84
+ else {
85
+ completed += 1;
86
+ if (completed === arr.length) {
87
+ callback(null);
88
+ }
89
+ }
90
+ });
91
+ });
92
+ };
93
+
94
+ async.forEachSeries = function (arr, iterator, callback) {
95
+ callback = callback || function () {};
96
+ if (!arr.length) {
97
+ return callback();
98
+ }
99
+ var completed = 0;
100
+ var iterate = function () {
101
+ iterator(arr[completed], function (err) {
102
+ if (err) {
103
+ callback(err);
104
+ callback = function () {};
105
+ }
106
+ else {
107
+ completed += 1;
108
+ if (completed === arr.length) {
109
+ callback(null);
110
+ }
111
+ else {
112
+ iterate();
113
+ }
114
+ }
115
+ });
116
+ };
117
+ iterate();
118
+ };
119
+
120
+ async.forEachLimit = function (arr, limit, iterator, callback) {
121
+ callback = callback || function () {};
122
+ if (!arr.length || limit <= 0) {
123
+ return callback();
124
+ }
125
+ var completed = 0;
126
+ var started = 0;
127
+ var running = 0;
128
+
129
+ (function replenish () {
130
+ if (completed === arr.length) {
131
+ return callback();
132
+ }
133
+
134
+ while (running < limit && started < arr.length) {
135
+ started += 1;
136
+ running += 1;
137
+ iterator(arr[started - 1], function (err) {
138
+ if (err) {
139
+ callback(err);
140
+ callback = function () {};
141
+ }
142
+ else {
143
+ completed += 1;
144
+ running -= 1;
145
+ if (completed === arr.length) {
146
+ callback();
147
+ }
148
+ else {
149
+ replenish();
150
+ }
151
+ }
152
+ });
153
+ }
154
+ })();
155
+ };
156
+
157
+
158
+ var doParallel = function (fn) {
159
+ return function () {
160
+ var args = Array.prototype.slice.call(arguments);
161
+ return fn.apply(null, [async.forEach].concat(args));
162
+ };
163
+ };
164
+ var doSeries = function (fn) {
165
+ return function () {
166
+ var args = Array.prototype.slice.call(arguments);
167
+ return fn.apply(null, [async.forEachSeries].concat(args));
168
+ };
169
+ };
170
+
171
+
172
+ var _asyncMap = function (eachfn, arr, iterator, callback) {
173
+ var results = [];
174
+ arr = _map(arr, function (x, i) {
175
+ return {index: i, value: x};
176
+ });
177
+ eachfn(arr, function (x, callback) {
178
+ iterator(x.value, function (err, v) {
179
+ results[x.index] = v;
180
+ callback(err);
181
+ });
182
+ }, function (err) {
183
+ callback(err, results);
184
+ });
185
+ };
186
+ async.map = doParallel(_asyncMap);
187
+ async.mapSeries = doSeries(_asyncMap);
188
+
189
+
190
+ // reduce only has a series version, as doing reduce in parallel won't
191
+ // work in many situations.
192
+ async.reduce = function (arr, memo, iterator, callback) {
193
+ async.forEachSeries(arr, function (x, callback) {
194
+ iterator(memo, x, function (err, v) {
195
+ memo = v;
196
+ callback(err);
197
+ });
198
+ }, function (err) {
199
+ callback(err, memo);
200
+ });
201
+ };
202
+ // inject alias
203
+ async.inject = async.reduce;
204
+ // foldl alias
205
+ async.foldl = async.reduce;
206
+
207
+ async.reduceRight = function (arr, memo, iterator, callback) {
208
+ var reversed = _map(arr, function (x) {
209
+ return x;
210
+ }).reverse();
211
+ async.reduce(reversed, memo, iterator, callback);
212
+ };
213
+ // foldr alias
214
+ async.foldr = async.reduceRight;
215
+
216
+ var _filter = function (eachfn, arr, iterator, callback) {
217
+ var results = [];
218
+ arr = _map(arr, function (x, i) {
219
+ return {index: i, value: x};
220
+ });
221
+ eachfn(arr, function (x, callback) {
222
+ iterator(x.value, function (v) {
223
+ if (v) {
224
+ results.push(x);
225
+ }
226
+ callback();
227
+ });
228
+ }, function (err) {
229
+ callback(_map(results.sort(function (a, b) {
230
+ return a.index - b.index;
231
+ }), function (x) {
232
+ return x.value;
233
+ }));
234
+ });
235
+ };
236
+ async.filter = doParallel(_filter);
237
+ async.filterSeries = doSeries(_filter);
238
+ // select alias
239
+ async.select = async.filter;
240
+ async.selectSeries = async.filterSeries;
241
+
242
+ var _reject = function (eachfn, arr, iterator, callback) {
243
+ var results = [];
244
+ arr = _map(arr, function (x, i) {
245
+ return {index: i, value: x};
246
+ });
247
+ eachfn(arr, function (x, callback) {
248
+ iterator(x.value, function (v) {
249
+ if (!v) {
250
+ results.push(x);
251
+ }
252
+ callback();
253
+ });
254
+ }, function (err) {
255
+ callback(_map(results.sort(function (a, b) {
256
+ return a.index - b.index;
257
+ }), function (x) {
258
+ return x.value;
259
+ }));
260
+ });
261
+ };
262
+ async.reject = doParallel(_reject);
263
+ async.rejectSeries = doSeries(_reject);
264
+
265
+ var _detect = function (eachfn, arr, iterator, main_callback) {
266
+ eachfn(arr, function (x, callback) {
267
+ iterator(x, function (result) {
268
+ if (result) {
269
+ main_callback(x);
270
+ main_callback = function () {};
271
+ }
272
+ else {
273
+ callback();
274
+ }
275
+ });
276
+ }, function (err) {
277
+ main_callback();
278
+ });
279
+ };
280
+ async.detect = doParallel(_detect);
281
+ async.detectSeries = doSeries(_detect);
282
+
283
+ async.some = function (arr, iterator, main_callback) {
284
+ async.forEach(arr, function (x, callback) {
285
+ iterator(x, function (v) {
286
+ if (v) {
287
+ main_callback(true);
288
+ main_callback = function () {};
289
+ }
290
+ callback();
291
+ });
292
+ }, function (err) {
293
+ main_callback(false);
294
+ });
295
+ };
296
+ // any alias
297
+ async.any = async.some;
298
+
299
+ async.every = function (arr, iterator, main_callback) {
300
+ async.forEach(arr, function (x, callback) {
301
+ iterator(x, function (v) {
302
+ if (!v) {
303
+ main_callback(false);
304
+ main_callback = function () {};
305
+ }
306
+ callback();
307
+ });
308
+ }, function (err) {
309
+ main_callback(true);
310
+ });
311
+ };
312
+ // all alias
313
+ async.all = async.every;
314
+
315
+ async.sortBy = function (arr, iterator, callback) {
316
+ async.map(arr, function (x, callback) {
317
+ iterator(x, function (err, criteria) {
318
+ if (err) {
319
+ callback(err);
320
+ }
321
+ else {
322
+ callback(null, {value: x, criteria: criteria});
323
+ }
324
+ });
325
+ }, function (err, results) {
326
+ if (err) {
327
+ return callback(err);
328
+ }
329
+ else {
330
+ var fn = function (left, right) {
331
+ var a = left.criteria, b = right.criteria;
332
+ return a < b ? -1 : a > b ? 1 : 0;
333
+ };
334
+ callback(null, _map(results.sort(fn), function (x) {
335
+ return x.value;
336
+ }));
337
+ }
338
+ });
339
+ };
340
+
341
+ async.auto = function (tasks, callback) {
342
+ callback = callback || function () {};
343
+ var keys = _keys(tasks);
344
+ if (!keys.length) {
345
+ return callback(null);
346
+ }
347
+
348
+ var results = {};
349
+
350
+ var listeners = [];
351
+ var addListener = function (fn) {
352
+ listeners.unshift(fn);
353
+ };
354
+ var removeListener = function (fn) {
355
+ for (var i = 0; i < listeners.length; i += 1) {
356
+ if (listeners[i] === fn) {
357
+ listeners.splice(i, 1);
358
+ return;
359
+ }
360
+ }
361
+ };
362
+ var taskComplete = function () {
363
+ _forEach(listeners.slice(0), function (fn) {
364
+ fn();
365
+ });
366
+ };
367
+
368
+ addListener(function () {
369
+ if (_keys(results).length === keys.length) {
370
+ callback(null, results);
371
+ callback = function () {};
372
+ }
373
+ });
374
+
375
+ _forEach(keys, function (k) {
376
+ var task = (tasks[k] instanceof Function) ? [tasks[k]]: tasks[k];
377
+ var taskCallback = function (err) {
378
+ if (err) {
379
+ callback(err);
380
+ // stop subsequent errors hitting callback multiple times
381
+ callback = function () {};
382
+ }
383
+ else {
384
+ var args = Array.prototype.slice.call(arguments, 1);
385
+ if (args.length <= 1) {
386
+ args = args[0];
387
+ }
388
+ results[k] = args;
389
+ taskComplete();
390
+ }
391
+ };
392
+ var requires = task.slice(0, Math.abs(task.length - 1)) || [];
393
+ var ready = function () {
394
+ return _reduce(requires, function (a, x) {
395
+ return (a && results.hasOwnProperty(x));
396
+ }, true) && !results.hasOwnProperty(k);
397
+ };
398
+ if (ready()) {
399
+ task[task.length - 1](taskCallback, results);
400
+ }
401
+ else {
402
+ var listener = function () {
403
+ if (ready()) {
404
+ removeListener(listener);
405
+ task[task.length - 1](taskCallback, results);
406
+ }
407
+ };
408
+ addListener(listener);
409
+ }
410
+ });
411
+ };
412
+
413
+ async.waterfall = function (tasks, callback) {
414
+ callback = callback || function () {};
415
+ if (!tasks.length) {
416
+ return callback();
417
+ }
418
+ var wrapIterator = function (iterator) {
419
+ return function (err) {
420
+ if (err) {
421
+ callback(err);
422
+ callback = function () {};
423
+ }
424
+ else {
425
+ var args = Array.prototype.slice.call(arguments, 1);
426
+ var next = iterator.next();
427
+ if (next) {
428
+ args.push(wrapIterator(next));
429
+ }
430
+ else {
431
+ args.push(callback);
432
+ }
433
+ async.nextTick(function () {
434
+ iterator.apply(null, args);
435
+ });
436
+ }
437
+ };
438
+ };
439
+ wrapIterator(async.iterator(tasks))();
440
+ };
441
+
442
+ async.parallel = function (tasks, callback) {
443
+ callback = callback || function () {};
444
+ if (tasks.constructor === Array) {
445
+ async.map(tasks, function (fn, callback) {
446
+ if (fn) {
447
+ fn(function (err) {
448
+ var args = Array.prototype.slice.call(arguments, 1);
449
+ if (args.length <= 1) {
450
+ args = args[0];
451
+ }
452
+ callback.call(null, err, args);
453
+ });
454
+ }
455
+ }, callback);
456
+ }
457
+ else {
458
+ var results = {};
459
+ async.forEach(_keys(tasks), function (k, callback) {
460
+ tasks[k](function (err) {
461
+ var args = Array.prototype.slice.call(arguments, 1);
462
+ if (args.length <= 1) {
463
+ args = args[0];
464
+ }
465
+ results[k] = args;
466
+ callback(err);
467
+ });
468
+ }, function (err) {
469
+ callback(err, results);
470
+ });
471
+ }
472
+ };
473
+
474
+ async.series = function (tasks, callback) {
475
+ callback = callback || function () {};
476
+ if (tasks.constructor === Array) {
477
+ async.mapSeries(tasks, function (fn, callback) {
478
+ if (fn) {
479
+ fn(function (err) {
480
+ var args = Array.prototype.slice.call(arguments, 1);
481
+ if (args.length <= 1) {
482
+ args = args[0];
483
+ }
484
+ callback.call(null, err, args);
485
+ });
486
+ }
487
+ }, callback);
488
+ }
489
+ else {
490
+ var results = {};
491
+ async.forEachSeries(_keys(tasks), function (k, callback) {
492
+ tasks[k](function (err) {
493
+ var args = Array.prototype.slice.call(arguments, 1);
494
+ if (args.length <= 1) {
495
+ args = args[0];
496
+ }
497
+ results[k] = args;
498
+ callback(err);
499
+ });
500
+ }, function (err) {
501
+ callback(err, results);
502
+ });
503
+ }
504
+ };
505
+
506
+ async.iterator = function (tasks) {
507
+ var makeCallback = function (index) {
508
+ var fn = function () {
509
+ if (tasks.length) {
510
+ tasks[index].apply(null, arguments);
511
+ }
512
+ return fn.next();
513
+ };
514
+ fn.next = function () {
515
+ return (index < tasks.length - 1) ? makeCallback(index + 1): null;
516
+ };
517
+ return fn;
518
+ };
519
+ return makeCallback(0);
520
+ };
521
+
522
+ async.apply = function (fn) {
523
+ var args = Array.prototype.slice.call(arguments, 1);
524
+ return function () {
525
+ return fn.apply(
526
+ null, args.concat(Array.prototype.slice.call(arguments))
527
+ );
528
+ };
529
+ };
530
+
531
+ var _concat = function (eachfn, arr, fn, callback) {
532
+ var r = [];
533
+ eachfn(arr, function (x, cb) {
534
+ fn(x, function (err, y) {
535
+ r = r.concat(y || []);
536
+ cb(err);
537
+ });
538
+ }, function (err) {
539
+ callback(err, r);
540
+ });
541
+ };
542
+ async.concat = doParallel(_concat);
543
+ async.concatSeries = doSeries(_concat);
544
+
545
+ async.whilst = function (test, iterator, callback) {
546
+ if (test()) {
547
+ iterator(function (err) {
548
+ if (err) {
549
+ return callback(err);
550
+ }
551
+ async.whilst(test, iterator, callback);
552
+ });
553
+ }
554
+ else {
555
+ callback();
556
+ }
557
+ };
558
+
559
+ async.until = function (test, iterator, callback) {
560
+ if (!test()) {
561
+ iterator(function (err) {
562
+ if (err) {
563
+ return callback(err);
564
+ }
565
+ async.until(test, iterator, callback);
566
+ });
567
+ }
568
+ else {
569
+ callback();
570
+ }
571
+ };
572
+
573
+ async.queue = function (worker, concurrency) {
574
+ var workers = 0;
575
+ var q = {
576
+ tasks: [],
577
+ concurrency: concurrency,
578
+ saturated: null,
579
+ empty: null,
580
+ drain: null,
581
+ push: function (data, callback) {
582
+ if(data.constructor !== Array) {
583
+ data = [data];
584
+ }
585
+ _forEach(data, function(task) {
586
+ q.tasks.push({
587
+ data: task,
588
+ callback: typeof callback === 'function' ? callback : null
589
+ });
590
+ if (q.saturated && q.tasks.length == concurrency) {
591
+ q.saturated();
592
+ }
593
+ async.nextTick(q.process);
594
+ });
595
+ },
596
+ process: function () {
597
+ if (workers < q.concurrency && q.tasks.length) {
598
+ var task = q.tasks.shift();
599
+ if(q.empty && q.tasks.length == 0) q.empty();
600
+ workers += 1;
601
+ worker(task.data, function () {
602
+ workers -= 1;
603
+ if (task.callback) {
604
+ task.callback.apply(task, arguments);
605
+ }
606
+ if(q.drain && q.tasks.length + workers == 0) q.drain();
607
+ q.process();
608
+ });
609
+ }
610
+ },
611
+ length: function () {
612
+ return q.tasks.length;
613
+ },
614
+ running: function () {
615
+ return workers;
616
+ }
617
+ };
618
+ return q;
619
+ };
620
+
621
+ var _console_fn = function (name) {
622
+ return function (fn) {
623
+ var args = Array.prototype.slice.call(arguments, 1);
624
+ fn.apply(null, args.concat([function (err) {
625
+ var args = Array.prototype.slice.call(arguments, 1);
626
+ if (typeof console !== 'undefined') {
627
+ if (err) {
628
+ if (console.error) {
629
+ console.error(err);
630
+ }
631
+ }
632
+ else if (console[name]) {
633
+ _forEach(args, function (x) {
634
+ console[name](x);
635
+ });
636
+ }
637
+ }
638
+ }]));
639
+ };
640
+ };
641
+ async.log = _console_fn('log');
642
+ async.dir = _console_fn('dir');
643
+ /*async.info = _console_fn('info');
644
+ async.warn = _console_fn('warn');
645
+ async.error = _console_fn('error');*/
646
+
647
+ async.memoize = function (fn, hasher) {
648
+ var memo = {};
649
+ var queues = {};
650
+ hasher = hasher || function (x) {
651
+ return x;
652
+ };
653
+ var memoized = function () {
654
+ var args = Array.prototype.slice.call(arguments);
655
+ var callback = args.pop();
656
+ var key = hasher.apply(null, args);
657
+ if (key in memo) {
658
+ callback.apply(null, memo[key]);
659
+ }
660
+ else if (key in queues) {
661
+ queues[key].push(callback);
662
+ }
663
+ else {
664
+ queues[key] = [callback];
665
+ fn.apply(null, args.concat([function () {
666
+ memo[key] = arguments;
667
+ var q = queues[key];
668
+ delete queues[key];
669
+ for (var i = 0, l = q.length; i < l; i++) {
670
+ q[i].apply(null, arguments);
671
+ }
672
+ }]));
673
+ }
674
+ };
675
+ memoized.unmemoized = fn;
676
+ return memoized;
677
+ };
678
+
679
+ async.unmemoize = function (fn) {
680
+ return function () {
681
+ return (fn.unmemoized || fn).apply(null, arguments);
682
+ };
683
+ };
684
+
685
+ // AMD / RequireJS
686
+ if (typeof define !== 'undefined' && define.amd) {
687
+ define('async', [], function () {
688
+ return async;
689
+ });
690
+ }
691
+ // Node.js
692
+ else if (typeof module !== 'undefined' && module.exports) {
693
+ module.exports = async;
694
+ }
695
+ // included directly via <script> tag
696
+ else {
697
+ root.async = async;
698
+ }
699
+
700
+ }());