unpoly-rails 0.20.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of unpoly-rails might be problematic. Click here for more details.

Files changed (339) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.ruby-version +2 -0
  4. data/.yardopts +1 -0
  5. data/CHANGELOG.md +577 -0
  6. data/Gemfile +8 -0
  7. data/Gemfile.lock +42 -0
  8. data/LICENSE +22 -0
  9. data/README.md +75 -0
  10. data/README_RAILS.md +116 -0
  11. data/Rakefile +45 -0
  12. data/bower.json +26 -0
  13. data/design/animation-ghosting.txt +72 -0
  14. data/design/design.txt +34 -0
  15. data/design/draft.html.erb +48 -0
  16. data/design/draft.rb +9 -0
  17. data/design/ghost-debugging.txt +118 -0
  18. data/design/homepage.txt +236 -0
  19. data/design/rename.txt +0 -0
  20. data/dist/unpoly-bootstrap3.css +5 -0
  21. data/dist/unpoly-bootstrap3.js +28 -0
  22. data/dist/unpoly-bootstrap3.min.css +1 -0
  23. data/dist/unpoly-bootstrap3.min.js +1 -0
  24. data/dist/unpoly.css +98 -0
  25. data/dist/unpoly.js +9041 -0
  26. data/dist/unpoly.min.css +1 -0
  27. data/dist/unpoly.min.js +3 -0
  28. data/lib/assets/javascripts/unpoly-bootstrap3.js.coffee +2 -0
  29. data/lib/assets/javascripts/unpoly-bootstrap3/form-ext.js.coffee +1 -0
  30. data/lib/assets/javascripts/unpoly-bootstrap3/layout-ext.js.coffee +5 -0
  31. data/lib/assets/javascripts/unpoly-bootstrap3/modal-ext.js.coffee +11 -0
  32. data/lib/assets/javascripts/unpoly-bootstrap3/navigation-ext.js.coffee +3 -0
  33. data/lib/assets/javascripts/unpoly.js.coffee +20 -0
  34. data/lib/assets/javascripts/unpoly/browser.js.coffee +252 -0
  35. data/lib/assets/javascripts/unpoly/bus.js.coffee +393 -0
  36. data/lib/assets/javascripts/unpoly/flow.js.coffee +809 -0
  37. data/lib/assets/javascripts/unpoly/form.js.coffee +864 -0
  38. data/lib/assets/javascripts/unpoly/history.js.coffee +204 -0
  39. data/lib/assets/javascripts/unpoly/layout.js.coffee +529 -0
  40. data/lib/assets/javascripts/unpoly/link.js.coffee +496 -0
  41. data/lib/assets/javascripts/unpoly/log.js.coffee +73 -0
  42. data/lib/assets/javascripts/unpoly/modal.js.coffee +509 -0
  43. data/lib/assets/javascripts/unpoly/module.js.coffee +4 -0
  44. data/lib/assets/javascripts/unpoly/motion.js.coffee +690 -0
  45. data/lib/assets/javascripts/unpoly/navigation.js.coffee +219 -0
  46. data/lib/assets/javascripts/unpoly/popup.js.coffee +409 -0
  47. data/lib/assets/javascripts/unpoly/proxy.js.coffee +521 -0
  48. data/lib/assets/javascripts/unpoly/rails.js.coffee +36 -0
  49. data/lib/assets/javascripts/unpoly/syntax.js.coffee +337 -0
  50. data/lib/assets/javascripts/unpoly/tooltip.js.coffee +183 -0
  51. data/lib/assets/javascripts/unpoly/util.js.coffee +1593 -0
  52. data/lib/assets/stylesheets/unpoly-bootstrap3.css.sass +1 -0
  53. data/lib/assets/stylesheets/unpoly-bootstrap3/modal-ext.css.sass +9 -0
  54. data/lib/assets/stylesheets/unpoly.css.sass +1 -0
  55. data/lib/assets/stylesheets/unpoly/close.css.sass +2 -0
  56. data/lib/assets/stylesheets/unpoly/error.css.sass +15 -0
  57. data/lib/assets/stylesheets/unpoly/link.css.sass +2 -0
  58. data/lib/assets/stylesheets/unpoly/modal.css.sass +69 -0
  59. data/lib/assets/stylesheets/unpoly/popup.css.sass +8 -0
  60. data/lib/assets/stylesheets/unpoly/tooltip.css.sass +42 -0
  61. data/lib/unpoly-rails.rb +7 -0
  62. data/lib/unpoly/rails/engine.rb +6 -0
  63. data/lib/unpoly/rails/inspector.rb +78 -0
  64. data/lib/unpoly/rails/inspector_accessor.rb +30 -0
  65. data/lib/unpoly/rails/request_echo_headers.rb +27 -0
  66. data/lib/unpoly/rails/request_method_cookie.rb +36 -0
  67. data/lib/unpoly/rails/version.rb +9 -0
  68. data/spec_app/.firefox-version +1 -0
  69. data/spec_app/.gitignore +17 -0
  70. data/spec_app/.rspec +2 -0
  71. data/spec_app/Bowerfile +3 -0
  72. data/spec_app/Gemfile +29 -0
  73. data/spec_app/Gemfile.lock +212 -0
  74. data/spec_app/README.rdoc +28 -0
  75. data/spec_app/Rakefile +6 -0
  76. data/spec_app/app/assets/images/.keep +0 -0
  77. data/spec_app/app/assets/javascripts/application.js +20 -0
  78. data/spec_app/app/assets/stylesheets/application.css +17 -0
  79. data/spec_app/app/assets/stylesheets/blocks/card.css.sass +11 -0
  80. data/spec_app/app/assets/stylesheets/blocks/controls.css.sass +7 -0
  81. data/spec_app/app/assets/stylesheets/blocks/menu.css.sass +13 -0
  82. data/spec_app/app/assets/stylesheets/blocks/panel.css.sass +8 -0
  83. data/spec_app/app/assets/stylesheets/jasmine_specs.css +5 -0
  84. data/spec_app/app/controllers/application_controller.rb +6 -0
  85. data/spec_app/app/controllers/concerns/.keep +0 -0
  86. data/spec_app/app/controllers/test_controller.rb +28 -0
  87. data/spec_app/app/helpers/application_helper.rb +2 -0
  88. data/spec_app/app/mailers/.keep +0 -0
  89. data/spec_app/app/models/concerns/.keep +0 -0
  90. data/spec_app/app/views/layouts/application.html.erb +12 -0
  91. data/spec_app/bin/bundle +3 -0
  92. data/spec_app/bin/rails +8 -0
  93. data/spec_app/bin/rake +8 -0
  94. data/spec_app/bin/setup +29 -0
  95. data/spec_app/bin/spring +18 -0
  96. data/spec_app/config.ru +4 -0
  97. data/spec_app/config/application.rb +26 -0
  98. data/spec_app/config/boot.rb +3 -0
  99. data/spec_app/config/database.yml +25 -0
  100. data/spec_app/config/environment.rb +5 -0
  101. data/spec_app/config/environments/development.rb +41 -0
  102. data/spec_app/config/environments/production.rb +79 -0
  103. data/spec_app/config/environments/test.rb +42 -0
  104. data/spec_app/config/initializers/assets.rb +11 -0
  105. data/spec_app/config/initializers/backtrace_silencers.rb +7 -0
  106. data/spec_app/config/initializers/bower_rails.rb +16 -0
  107. data/spec_app/config/initializers/cookies_serializer.rb +3 -0
  108. data/spec_app/config/initializers/filter_parameter_logging.rb +4 -0
  109. data/spec_app/config/initializers/inflections.rb +16 -0
  110. data/spec_app/config/initializers/mime_types.rb +4 -0
  111. data/spec_app/config/initializers/session_store.rb +3 -0
  112. data/spec_app/config/initializers/wrap_parameters.rb +14 -0
  113. data/spec_app/config/locales/en.yml +23 -0
  114. data/spec_app/config/routes.rb +8 -0
  115. data/spec_app/config/secrets.yml +22 -0
  116. data/spec_app/db/schema.rb +23 -0
  117. data/spec_app/db/seeds.rb +7 -0
  118. data/spec_app/lib/assets/.keep +0 -0
  119. data/spec_app/lib/tasks/.keep +0 -0
  120. data/spec_app/lib/tasks/cucumber.rake +65 -0
  121. data/spec_app/log/.keep +0 -0
  122. data/spec_app/public/404.html +67 -0
  123. data/spec_app/public/422.html +67 -0
  124. data/spec_app/public/500.html +66 -0
  125. data/spec_app/public/favicon.ico +0 -0
  126. data/spec_app/public/robots.txt +5 -0
  127. data/spec_app/script/cucumber +10 -0
  128. data/spec_app/spec/controllers/test_controller_spec.rb +76 -0
  129. data/spec_app/spec/javascripts/helpers/append_fixture.js.coffee +8 -0
  130. data/spec_app/spec/javascripts/helpers/browser_switches.js.coffee +9 -0
  131. data/spec_app/spec/javascripts/helpers/index.js.coffee +1 -0
  132. data/spec_app/spec/javascripts/helpers/knife.js.coffee +69 -0
  133. data/spec_app/spec/javascripts/helpers/last_request.js.coffee +22 -0
  134. data/spec_app/spec/javascripts/helpers/mock_ajax.js.coffee +5 -0
  135. data/spec_app/spec/javascripts/helpers/mock_clock.js.coffee +2 -0
  136. data/spec_app/spec/javascripts/helpers/remove_body_margin.js.coffee +5 -0
  137. data/spec_app/spec/javascripts/helpers/reset_knife.js.coffee +2 -0
  138. data/spec_app/spec/javascripts/helpers/reset_path.js.coffee +8 -0
  139. data/spec_app/spec/javascripts/helpers/reset_up.js.coffee +4 -0
  140. data/spec_app/spec/javascripts/helpers/restore_body_scroll.js.coffee +2 -0
  141. data/spec_app/spec/javascripts/helpers/set_timer.js.coffee +3 -0
  142. data/spec_app/spec/javascripts/helpers/to_be_around.js.coffee +5 -0
  143. data/spec_app/spec/javascripts/helpers/to_be_blank.js.coffee +5 -0
  144. data/spec_app/spec/javascripts/helpers/to_be_given.js.coffee +5 -0
  145. data/spec_app/spec/javascripts/helpers/to_be_missing.js.coffee +5 -0
  146. data/spec_app/spec/javascripts/helpers/to_be_present.js.coffee +5 -0
  147. data/spec_app/spec/javascripts/helpers/to_end_with.js.coffee +8 -0
  148. data/spec_app/spec/javascripts/helpers/to_equal_jquery.js.coffee +9 -0
  149. data/spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee +8 -0
  150. data/spec_app/spec/javascripts/helpers/trigger.js.coffee +68 -0
  151. data/spec_app/spec/javascripts/support/jasmine.yml +51 -0
  152. data/spec_app/spec/javascripts/up/bus_spec.js.coffee +122 -0
  153. data/spec_app/spec/javascripts/up/flow_spec.js.coffee +755 -0
  154. data/spec_app/spec/javascripts/up/form_spec.js.coffee +471 -0
  155. data/spec_app/spec/javascripts/up/history_spec.js.coffee +96 -0
  156. data/spec_app/spec/javascripts/up/layout_spec.js.coffee +318 -0
  157. data/spec_app/spec/javascripts/up/link_spec.js.coffee +340 -0
  158. data/spec_app/spec/javascripts/up/modal_spec.js.coffee +265 -0
  159. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +306 -0
  160. data/spec_app/spec/javascripts/up/navigation_spec.js.coffee +132 -0
  161. data/spec_app/spec/javascripts/up/popup_spec.js.coffee +220 -0
  162. data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +371 -0
  163. data/spec_app/spec/javascripts/up/rails_spec.js.coffee +101 -0
  164. data/spec_app/spec/javascripts/up/syntax_spec.js.coffee +99 -0
  165. data/spec_app/spec/javascripts/up/tooltip_spec.js.coffee +60 -0
  166. data/spec_app/spec/javascripts/up/util_spec.js.coffee +325 -0
  167. data/spec_app/spec/spec_helper.rb +62 -0
  168. data/spec_app/test/controllers/.keep +0 -0
  169. data/spec_app/test/fixtures/.keep +0 -0
  170. data/spec_app/test/helpers/.keep +0 -0
  171. data/spec_app/test/integration/.keep +0 -0
  172. data/spec_app/test/mailers/.keep +0 -0
  173. data/spec_app/test/models/.keep +0 -0
  174. data/spec_app/test/test_helper.rb +10 -0
  175. data/spec_app/vendor/assets/.bowerrc +3 -0
  176. data/spec_app/vendor/assets/bower.json +8 -0
  177. data/spec_app/vendor/assets/bower_components/jasmine-ajax/.bower.json +43 -0
  178. data/spec_app/vendor/assets/bower_components/jasmine-ajax/MIT.LICENSE +20 -0
  179. data/spec_app/vendor/assets/bower_components/jasmine-ajax/README.markdown +289 -0
  180. data/spec_app/vendor/assets/bower_components/jasmine-ajax/bower.json +35 -0
  181. data/spec_app/vendor/assets/bower_components/jasmine-ajax/lib/mock-ajax.js +733 -0
  182. data/spec_app/vendor/assets/bower_components/jasmine-ajax/package.json +26 -0
  183. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/2.0.2.md +50 -0
  184. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/2.99.md +14 -0
  185. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.0.md +28 -0
  186. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.1.0.md +24 -0
  187. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.1.1.md +23 -0
  188. data/spec_app/vendor/assets/bower_components/jasmine-ajax/release_notes/3.2.0.md +20 -0
  189. data/spec_app/vendor/assets/bower_components/jasmine-fixture/.bower.json +27 -0
  190. data/spec_app/vendor/assets/bower_components/jasmine-fixture/.gitignore +8 -0
  191. data/spec_app/vendor/assets/bower_components/jasmine-fixture/.npmignore +8 -0
  192. data/spec_app/vendor/assets/bower_components/jasmine-fixture/LICENSE.txt +24 -0
  193. data/spec_app/vendor/assets/bower_components/jasmine-fixture/README.md +118 -0
  194. data/spec_app/vendor/assets/bower_components/jasmine-fixture/bower.json +17 -0
  195. data/spec_app/vendor/assets/bower_components/jasmine-fixture/dist/jasmine-fixture.js +433 -0
  196. data/spec_app/vendor/assets/bower_components/jasmine-fixture/dist/jasmine-fixture.min.js +5 -0
  197. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/basic-usage-spec.coffee +14 -0
  198. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/invariants.coffee +17 -0
  199. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/spec-within-a-spec.coffee +24 -0
  200. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/helpers/tmp-files.coffee +8 -0
  201. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/support/jasmine1-testem-config.json +11 -0
  202. data/spec_app/vendor/assets/bower_components/jasmine-fixture/spec-e2e/support/jasmine2-testem-config.json +11 -0
  203. data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-1.11.0.js +10337 -0
  204. data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-1.8.3.js +9472 -0
  205. data/spec_app/vendor/assets/bower_components/jasmine-fixture/vendor/js/jquery-2.1.0.js +9111 -0
  206. data/spec_app/vendor/assets/bower_components/jasmine-jquery/.bower.json +26 -0
  207. data/spec_app/vendor/assets/bower_components/jasmine-jquery/CONTRIBUTING.md +28 -0
  208. data/spec_app/vendor/assets/bower_components/jasmine-jquery/Gruntfile.js +49 -0
  209. data/spec_app/vendor/assets/bower_components/jasmine-jquery/LICENSE +20 -0
  210. data/spec_app/vendor/assets/bower_components/jasmine-jquery/README.md +367 -0
  211. data/spec_app/vendor/assets/bower_components/jasmine-jquery/bower.json +15 -0
  212. data/spec_app/vendor/assets/bower_components/jasmine-jquery/lib/jasmine-jquery.js +838 -0
  213. data/spec_app/vendor/assets/bower_components/jasmine-jquery/package.json +35 -0
  214. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_checkbox_with_checked.html +6 -0
  215. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_javascript.html +1 -0
  216. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/fixture_with_javascript_block.html +1 -0
  217. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/javascripts/jasmine_javascript_click.js +1 -0
  218. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/javascripts/jasmine_javascript_hover.js +1 -0
  219. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/json/jasmine_json_test.json +1 -0
  220. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/real_non_mocked_fixture.html +1 -0
  221. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/fixtures/real_non_mocked_fixture_style.css +1 -0
  222. data/spec_app/vendor/assets/bower_components/jasmine-jquery/spec/suites/jasmine-jquery-spec.js +1842 -0
  223. data/spec_app/vendor/assets/bower_components/jasmine/.bower.json +50 -0
  224. data/spec_app/vendor/assets/bower_components/jasmine/CONTRIBUTING.md +130 -0
  225. data/spec_app/vendor/assets/bower_components/jasmine/GOALS_2.0.md +64 -0
  226. data/spec_app/vendor/assets/bower_components/jasmine/MANIFEST.in +5 -0
  227. data/spec_app/vendor/assets/bower_components/jasmine/MIT.LICENSE +20 -0
  228. data/spec_app/vendor/assets/bower_components/jasmine/README.md +73 -0
  229. data/spec_app/vendor/assets/bower_components/jasmine/RELEASE.md +73 -0
  230. data/spec_app/vendor/assets/bower_components/jasmine/bower.json +41 -0
  231. data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine-horizontal.png +0 -0
  232. data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine-horizontal.svg +102 -0
  233. data/spec_app/vendor/assets/bower_components/jasmine/images/jasmine_favicon.png +0 -0
  234. data/spec_app/vendor/assets/bower_components/jasmine/lib/console/console.js +190 -0
  235. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core.js +37 -0
  236. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/boot.js +143 -0
  237. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/lib/jasmine_examples/Player.js +24 -0
  238. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/example/node_example/lib/jasmine_examples/Song.js +9 -0
  239. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine-html.js +446 -0
  240. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.css +58 -0
  241. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/jasmine.js +3298 -0
  242. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/json2.js +489 -0
  243. data/spec_app/vendor/assets/bower_components/jasmine/lib/jasmine-core/node_boot.js +41 -0
  244. data/spec_app/vendor/assets/bower_components/jasmine/package.json +34 -0
  245. data/spec_app/vendor/assets/bower_components/jasmine/requirements.txt +1 -0
  246. data/spec_app/vendor/assets/bower_components/jquery/.bower.json +38 -0
  247. data/spec_app/vendor/assets/bower_components/jquery/MIT-LICENSE.txt +21 -0
  248. data/spec_app/vendor/assets/bower_components/jquery/bower.json +28 -0
  249. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.js +9210 -0
  250. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.min.js +5 -0
  251. data/spec_app/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -0
  252. data/spec_app/vendor/assets/bower_components/jquery/src/ajax.js +786 -0
  253. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +89 -0
  254. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/load.js +75 -0
  255. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  256. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +28 -0
  257. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/script.js +64 -0
  258. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  259. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  260. data/spec_app/vendor/assets/bower_components/jquery/src/ajax/xhr.js +136 -0
  261. data/spec_app/vendor/assets/bower_components/jquery/src/attributes.js +11 -0
  262. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/attr.js +141 -0
  263. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/classes.js +158 -0
  264. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/prop.js +94 -0
  265. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/support.js +35 -0
  266. data/spec_app/vendor/assets/bower_components/jquery/src/attributes/val.js +161 -0
  267. data/spec_app/vendor/assets/bower_components/jquery/src/callbacks.js +205 -0
  268. data/spec_app/vendor/assets/bower_components/jquery/src/core.js +502 -0
  269. data/spec_app/vendor/assets/bower_components/jquery/src/core/access.js +60 -0
  270. data/spec_app/vendor/assets/bower_components/jquery/src/core/init.js +123 -0
  271. data/spec_app/vendor/assets/bower_components/jquery/src/core/parseHTML.js +39 -0
  272. data/spec_app/vendor/assets/bower_components/jquery/src/core/ready.js +97 -0
  273. data/spec_app/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  274. data/spec_app/vendor/assets/bower_components/jquery/src/css.js +450 -0
  275. data/spec_app/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +22 -0
  276. data/spec_app/vendor/assets/bower_components/jquery/src/css/curCSS.js +57 -0
  277. data/spec_app/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +70 -0
  278. data/spec_app/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  279. data/spec_app/vendor/assets/bower_components/jquery/src/css/support.js +96 -0
  280. data/spec_app/vendor/assets/bower_components/jquery/src/css/swap.js +28 -0
  281. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  282. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +12 -0
  283. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +13 -0
  284. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +3 -0
  285. data/spec_app/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  286. data/spec_app/vendor/assets/bower_components/jquery/src/data.js +178 -0
  287. data/spec_app/vendor/assets/bower_components/jquery/src/data/Data.js +181 -0
  288. data/spec_app/vendor/assets/bower_components/jquery/src/data/accepts.js +20 -0
  289. data/spec_app/vendor/assets/bower_components/jquery/src/data/var/data_priv.js +5 -0
  290. data/spec_app/vendor/assets/bower_components/jquery/src/data/var/data_user.js +5 -0
  291. data/spec_app/vendor/assets/bower_components/jquery/src/deferred.js +149 -0
  292. data/spec_app/vendor/assets/bower_components/jquery/src/deprecated.js +13 -0
  293. data/spec_app/vendor/assets/bower_components/jquery/src/dimensions.js +50 -0
  294. data/spec_app/vendor/assets/bower_components/jquery/src/effects.js +648 -0
  295. data/spec_app/vendor/assets/bower_components/jquery/src/effects/Tween.js +114 -0
  296. data/spec_app/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  297. data/spec_app/vendor/assets/bower_components/jquery/src/event.js +868 -0
  298. data/spec_app/vendor/assets/bower_components/jquery/src/event/ajax.js +13 -0
  299. data/spec_app/vendor/assets/bower_components/jquery/src/event/alias.js +39 -0
  300. data/spec_app/vendor/assets/bower_components/jquery/src/event/support.js +9 -0
  301. data/spec_app/vendor/assets/bower_components/jquery/src/exports/amd.js +24 -0
  302. data/spec_app/vendor/assets/bower_components/jquery/src/exports/global.js +32 -0
  303. data/spec_app/vendor/assets/bower_components/jquery/src/intro.js +44 -0
  304. data/spec_app/vendor/assets/bower_components/jquery/src/jquery.js +37 -0
  305. data/spec_app/vendor/assets/bower_components/jquery/src/manipulation.js +580 -0
  306. data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  307. data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/support.js +32 -0
  308. data/spec_app/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  309. data/spec_app/vendor/assets/bower_components/jquery/src/offset.js +207 -0
  310. data/spec_app/vendor/assets/bower_components/jquery/src/outro.js +1 -0
  311. data/spec_app/vendor/assets/bower_components/jquery/src/queue.js +142 -0
  312. data/spec_app/vendor/assets/bower_components/jquery/src/queue/delay.js +22 -0
  313. data/spec_app/vendor/assets/bower_components/jquery/src/selector-native.js +172 -0
  314. data/spec_app/vendor/assets/bower_components/jquery/src/selector-sizzle.js +14 -0
  315. data/spec_app/vendor/assets/bower_components/jquery/src/selector.js +1 -0
  316. data/spec_app/vendor/assets/bower_components/jquery/src/serialize.js +111 -0
  317. data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.js +2067 -0
  318. data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  319. data/spec_app/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  320. data/spec_app/vendor/assets/bower_components/jquery/src/traversing.js +199 -0
  321. data/spec_app/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +100 -0
  322. data/spec_app/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  323. data/spec_app/vendor/assets/bower_components/jquery/src/var/arr.js +3 -0
  324. data/spec_app/vendor/assets/bower_components/jquery/src/var/class2type.js +4 -0
  325. data/spec_app/vendor/assets/bower_components/jquery/src/var/concat.js +5 -0
  326. data/spec_app/vendor/assets/bower_components/jquery/src/var/hasOwn.js +5 -0
  327. data/spec_app/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -0
  328. data/spec_app/vendor/assets/bower_components/jquery/src/var/pnum.js +3 -0
  329. data/spec_app/vendor/assets/bower_components/jquery/src/var/push.js +5 -0
  330. data/spec_app/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +3 -0
  331. data/spec_app/vendor/assets/bower_components/jquery/src/var/slice.js +5 -0
  332. data/spec_app/vendor/assets/bower_components/jquery/src/var/strundefined.js +3 -0
  333. data/spec_app/vendor/assets/bower_components/jquery/src/var/support.js +4 -0
  334. data/spec_app/vendor/assets/bower_components/jquery/src/var/toString.js +5 -0
  335. data/spec_app/vendor/assets/bower_components/jquery/src/wrap.js +79 -0
  336. data/spec_app/vendor/assets/javascripts/.keep +0 -0
  337. data/spec_app/vendor/assets/stylesheets/.keep +0 -0
  338. data/unpoly-rails.gemspec +24 -0
  339. metadata +423 -0
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "jasmine-ajax",
3
+ "description": "A library for faking Ajax responses in your Jasmine suite",
4
+ "version": "3.2.0",
5
+ "main": "lib/mock-ajax.js",
6
+ "license": "MIT",
7
+
8
+ "url": "https://github.com/jasmine/jasmine-ajax",
9
+ "contributors": [
10
+ "Gregg Van Hove <gregg@slackersoft.net>",
11
+ "JR Boyens <jboyens@fooninja.org>"
12
+ ],
13
+ "private": false,
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/jasmine/jasmine-ajax"
17
+ },
18
+ "dependencies": {},
19
+ "devDependencies": {
20
+ "grunt": "0.4.0",
21
+ "grunt-cli": "~0.1.13",
22
+ "grunt-contrib-concat": "~0.5.0",
23
+ "grunt-contrib-jshint": "~0.1.1",
24
+ "grunt-shell": "~0.2.1"
25
+ }
26
+ }
@@ -0,0 +1,50 @@
1
+ # Jasmine-Ajax 2.0.2 Release Notes
2
+
3
+ ## Summary
4
+
5
+ Release of jasmine-ajax with many fixes to be more compatible with the full XHR spec.
6
+
7
+ ## Changes
8
+
9
+ - Combine request headers with the same name
10
+ - Find response case-insensitively
11
+ - Split into multiple files for development
12
+ - We use the `getJasmineRequireObj()` for loading dependencies
13
+ - CI runs specs against both separate and concatenated files
14
+
15
+ ## Pull Requests and Issues
16
+ - Allow progress event callbacks to be null instead of just empty functions.
17
+ - Fixes [#85](http://github.com/pivotal/jasmine-ajax/issues/85)
18
+
19
+ - Support listening to XHR progress events via `addEventListener`
20
+ - Fixes [#79](http://github.com/pivotal/jasmine-ajax/issues/79)
21
+
22
+ - Support all XHR events
23
+ - Fixes [#81](http://github.com/pivotal/jasmine-ajax/issues/81)
24
+ - Fixes [#82](http://github.com/pivotal/jasmine-ajax/issues/82)
25
+
26
+ - Parse `responseText` into a `responseXML` if the contentType is xml-ish
27
+ - Fixes [#55](http://github.com/pivotal/jasmine-ajax/issues/55)
28
+
29
+ - Un-pin jasmine dependency from version 2.0.0
30
+ - Merges [#76](http://github.com/pivotal/jasmine-ajax/issues/76) from @macroeyes
31
+
32
+ - added support for multiple headers with same name
33
+ - Merges [#72](http://github.com/pivotal/jasmine-ajax/issues/72) from @resident-uhlig
34
+
35
+ - Record overridden mime types
36
+ - Fixes [#74](http://github.com/pivotal/jasmine-ajax/issues/74)
37
+
38
+ - Throw an error if response() is called more than once on requests
39
+ - Fixes [#70](http://github.com/pivotal/jasmine-ajax/issues/70)
40
+ - Merges [#71](http://github.com/pivotal/jasmine-ajax/issues/71) from @kmontag
41
+
42
+ - Allow stubs to match only a particular http method (GET, POST, PUT, etc.)
43
+ - Fixes [#36](http://github.com/pivotal/jasmine-ajax/issues/36)
44
+
45
+ - Add some files to the bower.json ignore list
46
+ - Merges [#69](http://github.com/pivotal/jasmine-ajax/issues/69 ) from @lencioni
47
+
48
+ ------
49
+
50
+ _Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,14 @@
1
+ # Jasmine-Ajax 2.99 Release Notes
2
+
3
+ ## Summary
4
+
5
+ Release of jasmine-ajax to provide a non-breaking upgrade path as we move to support XHR 2.
6
+
7
+ ## Changes
8
+
9
+ - Deprecate the `response` function on fake request in favor of `respondWith`.
10
+
11
+
12
+ ------
13
+
14
+ _Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,28 @@
1
+ # Jasmine-Ajax 3.0 Release Notes
2
+
3
+ ## Summary
4
+
5
+ Support XHR 2
6
+
7
+ This release contains a breaking change. The `response` method is no longer supported, you should use `respondWith` instead.
8
+
9
+ ## Changes
10
+
11
+ * Add grunt tasks for releasing packages
12
+ * Bring npm and bower configurations in line with each other
13
+ * Also test in IE 11 on travis
14
+
15
+ ## Pull Requests & Issues
16
+
17
+ * Include trailing newline in response headers to match browsers.
18
+ - Fixes [#91](https://github.com/jasmine/jasmine-ajax/issues/91)
19
+
20
+ * modify example code 'response' method is deprecated. use 'respondWith' instead
21
+ - Merges [#87](https://github.com/jasmine/jasmine-ajax/issues/87) from @Mstudio-Ishikawa
22
+
23
+ * Support for XHR 2
24
+ - Merges [#60](https://github.com/jasmine/jasmine-ajax/issues/60) from @albertyw
25
+
26
+ ------
27
+
28
+ _Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,24 @@
1
+ # Jasmine-Ajax 3.1 Release Notes
2
+
3
+ ## Summary
4
+
5
+ This is a maintenance release.
6
+
7
+ ## Changes
8
+
9
+ * Add safari 7 & 8 to browser matrix
10
+
11
+ ## Pull Requests & Issues
12
+
13
+ * Add version number to combined file
14
+ - Fixes #93
15
+
16
+ * Implement `removeEventListener`
17
+ - Merges #89 from @illiptic
18
+
19
+ * Add `responseHeaders` to `andReturn` s options
20
+ - Merges #94 from @tomalec
21
+
22
+ ------
23
+
24
+ _Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,23 @@
1
+ # Jasmine-Ajax 3.1 Release Notes
2
+
3
+ ## Pull Requests & Issues
4
+
5
+ * Loosen bower dependency on jasmine
6
+ - Fixes [#106](https://github.com/jasmine/jasmine-ajax/issues/106)
7
+
8
+ * Event readystatechange is triggered when headers are available
9
+ - Merges [#104](https://github.com/jasmine/jasmine-ajax/issues/104) from @mjeanroy
10
+ - Fixes [#97](https://github.com/jasmine/jasmine-ajax/issues/97)
11
+ - Fixes [#103](https://github.com/jasmine/jasmine-ajax/issues/103)
12
+ - Fixes [#102](https://github.com/jasmine/jasmine-ajax/issues/102)
13
+
14
+ * Throw error on duplicate calls to MockAjax#install.
15
+ - Merges [#98](https://github.com/jasmine/jasmine-ajax/issues/98) from @jhamon
16
+ - Fixes [#96](https://github.com/jasmine/jasmine-ajax/issues/96)
17
+
18
+ * Readme tweaks and updated links
19
+ - Merges [#99](https://github.com/jasmine/jasmine-ajax/issues/99) from @jhamon
20
+
21
+ ------
22
+
23
+ _Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,20 @@
1
+ # Jasmine-Ajax 3.2.0 Release Notes
2
+
3
+ ## Pull Requests & Issues
4
+
5
+ * Set the `this` context for event handler to the current XHR and pass proper ProgressEvent arguments
6
+ - Merges [#114](https://github.com/jasmine/jasmine-ajax/issues/114) from @mjeanroy
7
+ - Fixes [#108](https://github.com/jasmine/jasmine-ajax/issues/108)
8
+
9
+ * added feature to match data/query against RegExp
10
+ - Merges [#116](https://github.com/jasmine/jasmine-ajax/issues/116) from @SunboX
11
+ - Fixes [#115](https://github.com/jasmine/jasmine-ajax/issues/115)
12
+
13
+ * Allow error and timeout using RequestStub
14
+ - Merges [#112](https://github.com/jasmine/jasmine-ajax/issues/112) from @Mordred
15
+ - Fixes [#111](https://github.com/jasmine/jasmine-ajax/issues/111)
16
+
17
+
18
+ ------
19
+
20
+ _Release Notes generated with _[Anchorman](http://github.com/infews/anchorman)_
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "jasmine-fixture",
3
+ "version": "1.3.3",
4
+ "main": "dist/jasmine-fixture.js",
5
+ "ignore": [
6
+ "app",
7
+ "config",
8
+ "spec",
9
+ "tasks",
10
+ ".travis.yml",
11
+ "Gruntfile.js",
12
+ "main.js",
13
+ "package.json"
14
+ ],
15
+ "dependencies": {},
16
+ "devDependencies": {},
17
+ "homepage": "https://github.com/searls/jasmine-fixture",
18
+ "_release": "1.3.3",
19
+ "_resolution": {
20
+ "type": "version",
21
+ "tag": "1.3.3",
22
+ "commit": "688c26fd5f56d7c843ae18f45f8cf87e4ebd7cb8"
23
+ },
24
+ "_source": "git://github.com/searls/jasmine-fixture.git",
25
+ "_target": "*",
26
+ "_originalSource": "jasmine-fixture"
27
+ }
@@ -0,0 +1,8 @@
1
+ .DS_Store
2
+
3
+ #ignore node_modules, as the node project is not "deployed" per se: http://www.mikealrogers.com/posts/nodemodules-in-git.html
4
+ /node_modules
5
+
6
+ /generated
7
+
8
+ .sass-cache
@@ -0,0 +1,8 @@
1
+ .DS_Store
2
+
3
+ #ignore node_modules, as the node project is not "deployed" per se: http://www.mikealrogers.com/posts/nodemodules-in-git.html
4
+ /node_modules
5
+
6
+ /generated
7
+
8
+ .sass-cache
@@ -0,0 +1,24 @@
1
+ =================================================
2
+ jasmine-fixture is licensed under the MIT License
3
+ =================================================
4
+
5
+ Copyright (c) 2013 Test Double, Inc.
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining
8
+ a copy of this software and associated documentation files (the
9
+ "Software"), to deal in the Software without restriction, including
10
+ without limitation the rights to use, copy, modify, merge, publish,
11
+ distribute, sublicense, and/or sell copies of the Software, and to
12
+ permit persons to whom the Software is furnished to do so, subject to
13
+ the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be
16
+ included in all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,118 @@
1
+ # jasmine-fixture
2
+
3
+ [![Build Status](https://secure.travis-ci.org/searls/jasmine-fixture.png)](http://travis-ci.org/searls/jasmine-fixture)
4
+
5
+ jasmine-fixture helps you write specs that interact with the DOM by making it easier to inject (and then clean up) HTML fixtures using a syntax that's just like jQuery's selectors. (As a result, it requires jQuery.)
6
+
7
+ **[Download the latest version here](https://github.com/searls/jasmine-fixture/releases)**.
8
+
9
+ # The concept
10
+
11
+ Here's one way to think about it:
12
+
13
+ In *jQuery*, you give `$()` a CSS selector and it *finds* elements on the DOM.
14
+
15
+ In *jasmine-fixture*, you give `affix()` a CSS selector and it *adds* those elements to the DOM.
16
+
17
+ This is very useful for tests, because it means that after setting up the state of the DOM with `affix`, your subject code under test will have the elements it needs to do its work.
18
+
19
+ Finally, jasmine-fixture will help you avoid test pollution by tidying up and remove everything you affix to the DOM after each spec runs.
20
+
21
+ ## affix() example
22
+
23
+ Let's say you want to write a Jasmine spec for some code that needs to select elements from the DOM with jQuery:
24
+
25
+ ``` javascript
26
+ $('#toddler .hidden.toy input[name="toyName"][value="cuddle bunny"]')
27
+ ```
28
+
29
+ In the good ol' days of manually crafting your HTML fixtures, you'd have to append some raw HTML to the DOM like this:
30
+
31
+ ``` javascript
32
+ beforeEach(function(){
33
+ $('<div id="toddler"><div class="hidden toy"><input name="toyName" value="cuddle bunny"></div></div>').appendTo('body');
34
+ });
35
+
36
+ afterEach(function(){
37
+ $('#toddler').remove()
38
+ });
39
+ ```
40
+
41
+ But jasmine-fixture's `affix` method lets you do this instead:
42
+
43
+ ``` javascript
44
+ beforeEach(function(){
45
+ affix('#toddler .hidden.toy input[name="toyName"][value="cuddle bunny"]')
46
+ });
47
+
48
+ ```
49
+
50
+ That's right, the spec setup above was able to *re-use the exact same ugly jQuery selector* and everything just worked! That means:
51
+
52
+ * No external (or worse, shared) fixture files means no risk that they become dumping grounds
53
+ * The spec can remain comprehensive (meaning that future readers can understand what the code does without referencing an external file)
54
+ * Less temptation to couple your unit test to your server or client-side HTML templates
55
+ * More one-line setup, fewer multi-line globs of HTML crowding out the behavior your spec is trying to describe
56
+
57
+ Bottom line: it's just like jQuery, but in reverse! (And, of course, it'll clean up after itself after your spec runs.)
58
+
59
+ ## affixing the affixed by chaining invocations
60
+
61
+ `#affix` is both a globally available property on the `window` as well as a jQuery plugin that can be chained with existing jQuery objects (affixing itself beneath their results).
62
+
63
+ Let's say our subject has a `$container` element that's been added to the DOM like this:
64
+
65
+ ``` javascript
66
+ var $container = affix('.container')
67
+ ```
68
+
69
+ That means we can add things to the container by chaining a call to `affix`, like any other jQuery plugin:
70
+
71
+ ``` javascript
72
+ var $content = $container.affix('#content')
73
+ ```
74
+
75
+ Now our container with the class "container" has some content with the ID "content". Huzzah!
76
+
77
+ Note that for easy assignability, affix will always return the topmost element of the thing that it just appended, which in this example is `<div id="content"></div>` (which runs counter to most jQuery plugins, which return the original jQuery object).
78
+
79
+ ## more examples
80
+
81
+ I heard you wanted more examples, so I pulled some from `affix`'s [specs](https://github.com/searls/jasmine-fixture/blob/master/spec/affix-spec.coffee).
82
+
83
+ ``` coffeescript
84
+ 'span' #<span></span>
85
+ '.foo' #<div class="foo"></div>
86
+ '.foo-hah' #<div class="foo-hah"></div>
87
+ '#baz' #<div id="baz"></div>
88
+ 'h1.foo' #<h1 class="foo"></h1>
89
+ 'h2#baz' #<h2 id="baz"></h2>
90
+ 'h3#zing.zoom' #<h3 id="zing" class="zoom"></h3>
91
+ 'h4.zoom#zing' #<h4 id="zing" class="zoom"></h4>
92
+ 'div span ul li' #<div><span><ul><li></li></ul></span></div>
93
+ 'a b c d e f g h i j k l m n o p q r s t u v w x y z' #<a><b><c><d><e><f><g><h><i><j><k><l><m><n><o><p><q><r><s><t><u><v><w><x><y><z></z></y></x></w></v></u></t></s></r></q></p></o></n></m></l></k></j></i></h></g></f></e></d></c></b></a>
94
+ '.boom.bang.pow#whoosh' #<div id="whoosh" class="boom bang pow"></div>
95
+ '#foo .panda' #<div id="foo"><div class="panda"></div></div>
96
+ 'input#man .restroom' #<input id="man"></input>
97
+ '.pants.zipper' #<div class="pants zipper"></div>
98
+ 'foo > bar > baz' #<foo><bar><baz></baz></bar></foo>
99
+ 'input[value="12"]' #<input value="12">
100
+ 'div[class="class1 class2 class3"] span[div="div1 div2 div3"]' #<div class="class1 class2 class3"><span div="div1 div2 div3"></span></div>
101
+ 'form fieldset[name=ok] input#foo.sp1.sp1[foo="woo"][value="13"]' #<form><fieldset name="ok"><input foo="woo" value="13" id="foo" class="sp1 sp1"></fieldset></form>
102
+ '[name="foo"][bar="baz"]' #<name name="foo" bar="baz"></name>
103
+ 'div[data-bind="my_item"]' #<div data-bind="my_item"></div>
104
+ '.ui-dialog[style="width: 1px; height: 5px"]' #<div style="width: 1px; height: 5px" class="ui-dialog"></div>
105
+ '#toddler .hidden.toy input[name="toyName"][value="cuddle bunny"]' #<div id="toddler"><div class="hidden toy"><input name="toyName" value="cuddle bunny"></div></div>
106
+ 'div h1+h2' #<div><h1></h1><h2></h2></div>
107
+ ```
108
+ # Contributing
109
+
110
+ 1. `npm install -g lineman` if you don't already have lineman installed.
111
+ 2. `lineman build`
112
+ 3. `lineman spec` to run the fast, isolated specs.
113
+ 4. Add your feature or bug fix on a feature branch, with tests.
114
+ 5. Submit a pull request.
115
+
116
+ # Thanks
117
+
118
+ I want to offer thanks to Mike Kent, whose [JavaScript port of ZenCoding](https://github.com/zodoz/jquery-ZenCoding) was the basis for parsing most of this (classes, ids, elements, etc.). I also want to thank [Peter Kananen](https://twitter.com/#!/pkananen), for pairing with me on the initial spike of the `affix` method.
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "jasmine-fixture",
3
+ "version": "1.3.3",
4
+ "main": "dist/jasmine-fixture.js",
5
+ "ignore": [
6
+ "app",
7
+ "config",
8
+ "spec",
9
+ "tasks",
10
+ ".travis.yml",
11
+ "Gruntfile.js",
12
+ "main.js",
13
+ "package.json"
14
+ ],
15
+ "dependencies": {},
16
+ "devDependencies": {}
17
+ }
@@ -0,0 +1,433 @@
1
+ /* jasmine-fixture - 1.3.3
2
+ * Makes injecting HTML snippets into the DOM easy & clean!
3
+ * https://github.com/searls/jasmine-fixture
4
+ */
5
+ (function() {
6
+ var createHTMLBlock,
7
+ __slice = [].slice;
8
+
9
+ (function($) {
10
+ var ewwSideEffects, jasmineFixture, originalAffix, originalJasmineDotFixture, originalJasmineFixture, root, _, _ref;
11
+ root = (1, eval)('this');
12
+ originalJasmineFixture = root.jasmineFixture;
13
+ originalJasmineDotFixture = (_ref = root.jasmine) != null ? _ref.fixture : void 0;
14
+ originalAffix = root.affix;
15
+ _ = function(list) {
16
+ return {
17
+ inject: function(iterator, memo) {
18
+ var item, _i, _len, _results;
19
+ _results = [];
20
+ for (_i = 0, _len = list.length; _i < _len; _i++) {
21
+ item = list[_i];
22
+ _results.push(memo = iterator(memo, item));
23
+ }
24
+ return _results;
25
+ }
26
+ };
27
+ };
28
+ root.jasmineFixture = function($) {
29
+ var $whatsTheRootOf, affix, create, jasmineFixture, noConflict;
30
+ affix = function(selectorOptions) {
31
+ return create.call(this, selectorOptions, true);
32
+ };
33
+ create = function(selectorOptions, attach) {
34
+ var $top;
35
+ $top = null;
36
+ _(selectorOptions.trim().split(/[ ](?![^\{]*\})(?=[^\]]*?(?:\[|$))/)).inject(function($parent, elementSelector) {
37
+ var $el;
38
+ if (elementSelector === ">") {
39
+ return $parent;
40
+ }
41
+ $el = createHTMLBlock($, elementSelector);
42
+ if (attach || $top) {
43
+ $el.appendTo($parent);
44
+ }
45
+ $top || ($top = $el);
46
+ return $el;
47
+ }, $whatsTheRootOf(this));
48
+ return $top;
49
+ };
50
+ noConflict = function() {
51
+ var currentJasmineFixture, _ref1;
52
+ currentJasmineFixture = jasmine.fixture;
53
+ root.jasmineFixture = originalJasmineFixture;
54
+ if ((_ref1 = root.jasmine) != null) {
55
+ _ref1.fixture = originalJasmineDotFixture;
56
+ }
57
+ root.affix = originalAffix;
58
+ return currentJasmineFixture;
59
+ };
60
+ $whatsTheRootOf = function(that) {
61
+ if ((that != null ? that.jquery : void 0) != null) {
62
+ return that;
63
+ } else if ($('#jasmine_content').length > 0) {
64
+ return $('#jasmine_content');
65
+ } else {
66
+ return $('<div id="jasmine_content"></div>').appendTo('body');
67
+ }
68
+ };
69
+ jasmineFixture = {
70
+ affix: affix,
71
+ create: create,
72
+ noConflict: noConflict
73
+ };
74
+ ewwSideEffects(jasmineFixture);
75
+ return jasmineFixture;
76
+ };
77
+ ewwSideEffects = function(jasmineFixture) {
78
+ var _ref1;
79
+ if ((_ref1 = root.jasmine) != null) {
80
+ _ref1.fixture = jasmineFixture;
81
+ }
82
+ $.fn.affix = root.affix = jasmineFixture.affix;
83
+ return afterEach(function() {
84
+ return $('#jasmine_content').remove();
85
+ });
86
+ };
87
+ if ($) {
88
+ return jasmineFixture = root.jasmineFixture($);
89
+ } else {
90
+ return root.affix = function() {
91
+ var nowJQueryExists;
92
+ nowJQueryExists = window.jQuery || window.$;
93
+ if (nowJQueryExists != null) {
94
+ jasmineFixture = root.jasmineFixture(nowJQueryExists);
95
+ return affix.call.apply(affix, [this].concat(__slice.call(arguments)));
96
+ } else {
97
+ throw new Error("jasmine-fixture requires jQuery to be defined at window.jQuery or window.$");
98
+ }
99
+ };
100
+ }
101
+ })(window.jQuery || window.$);
102
+
103
+ createHTMLBlock = (function() {
104
+ var bindData, bindEvents, parseAttributes, parseClasses, parseContents, parseEnclosure, parseReferences, parseVariableScope, regAttr, regAttrDfn, regAttrs, regCBrace, regClass, regClasses, regData, regDatas, regEvent, regEvents, regExclamation, regId, regReference, regTag, regTagNotContent, regZenTagDfn;
105
+ createHTMLBlock = function($, ZenObject, data, functions, indexes) {
106
+ var ZenCode, arr, block, blockAttrs, blockClasses, blockHTML, blockId, blockTag, blocks, el, el2, els, forScope, indexName, inner, len, obj, origZenCode, paren, result, ret, zc, zo;
107
+ if ($.isPlainObject(ZenObject)) {
108
+ ZenCode = ZenObject.main;
109
+ } else {
110
+ ZenCode = ZenObject;
111
+ ZenObject = {
112
+ main: ZenCode
113
+ };
114
+ }
115
+ origZenCode = ZenCode;
116
+ if (indexes === undefined) {
117
+ indexes = {};
118
+ }
119
+ if (ZenCode.charAt(0) === "!" || $.isArray(data)) {
120
+ if ($.isArray(data)) {
121
+ forScope = ZenCode;
122
+ } else {
123
+ obj = parseEnclosure(ZenCode, "!");
124
+ obj = obj.substring(obj.indexOf(":") + 1, obj.length - 1);
125
+ forScope = parseVariableScope(ZenCode);
126
+ }
127
+ while (forScope.charAt(0) === "@") {
128
+ forScope = parseVariableScope("!for:!" + parseReferences(forScope, ZenObject));
129
+ }
130
+ zo = ZenObject;
131
+ zo.main = forScope;
132
+ el = $();
133
+ if (ZenCode.substring(0, 5) === "!for:" || $.isArray(data)) {
134
+ if (!$.isArray(data) && obj.indexOf(":") > 0) {
135
+ indexName = obj.substring(0, obj.indexOf(":"));
136
+ obj = obj.substr(obj.indexOf(":") + 1);
137
+ }
138
+ arr = ($.isArray(data) ? data : data[obj]);
139
+ zc = zo.main;
140
+ if ($.isArray(arr) || $.isPlainObject(arr)) {
141
+ $.map(arr, function(value, index) {
142
+ var next;
143
+ zo.main = zc;
144
+ if (indexName !== undefined) {
145
+ indexes[indexName] = index;
146
+ }
147
+ if (!$.isPlainObject(value)) {
148
+ value = {
149
+ value: value
150
+ };
151
+ }
152
+ next = createHTMLBlock($, zo, value, functions, indexes);
153
+ if (el.length !== 0) {
154
+ return $.each(next, function(index, value) {
155
+ return el.push(value);
156
+ });
157
+ }
158
+ });
159
+ }
160
+ if (!$.isArray(data)) {
161
+ ZenCode = ZenCode.substr(obj.length + 6 + forScope.length);
162
+ } else {
163
+ ZenCode = "";
164
+ }
165
+ } else if (ZenCode.substring(0, 4) === "!if:") {
166
+ result = parseContents("!" + obj + "!", data, indexes);
167
+ if (result !== "undefined" || result !== "false" || result !== "") {
168
+ el = createHTMLBlock($, zo, data, functions, indexes);
169
+ }
170
+ ZenCode = ZenCode.substr(obj.length + 5 + forScope.length);
171
+ }
172
+ ZenObject.main = ZenCode;
173
+ } else if (ZenCode.charAt(0) === "(") {
174
+ paren = parseEnclosure(ZenCode, "(", ")");
175
+ inner = paren.substring(1, paren.length - 1);
176
+ ZenCode = ZenCode.substr(paren.length);
177
+ zo = ZenObject;
178
+ zo.main = inner;
179
+ el = createHTMLBlock($, zo, data, functions, indexes);
180
+ } else {
181
+ blocks = ZenCode.match(regZenTagDfn);
182
+ block = blocks[0];
183
+ if (block.length === 0) {
184
+ return "";
185
+ }
186
+ if (block.indexOf("@") >= 0) {
187
+ ZenCode = parseReferences(ZenCode, ZenObject);
188
+ zo = ZenObject;
189
+ zo.main = ZenCode;
190
+ return createHTMLBlock($, zo, data, functions, indexes);
191
+ }
192
+ block = parseContents(block, data, indexes);
193
+ blockClasses = parseClasses($, block);
194
+ if (regId.test(block)) {
195
+ blockId = regId.exec(block)[1];
196
+ }
197
+ blockAttrs = parseAttributes(block, data);
198
+ blockTag = (block.charAt(0) === "{" ? "span" : "div");
199
+ if (ZenCode.charAt(0) !== "#" && ZenCode.charAt(0) !== "." && ZenCode.charAt(0) !== "{") {
200
+ blockTag = regTag.exec(block)[1];
201
+ }
202
+ if (block.search(regCBrace) !== -1) {
203
+ blockHTML = block.match(regCBrace)[1];
204
+ }
205
+ blockAttrs = $.extend(blockAttrs, {
206
+ id: blockId,
207
+ "class": blockClasses,
208
+ html: blockHTML
209
+ });
210
+ el = $("<" + blockTag + ">", blockAttrs);
211
+ el.attr(blockAttrs);
212
+ el = bindEvents(block, el, functions);
213
+ el = bindData(block, el, data);
214
+ ZenCode = ZenCode.substr(blocks[0].length);
215
+ ZenObject.main = ZenCode;
216
+ }
217
+ if (ZenCode.length > 0) {
218
+ if (ZenCode.charAt(0) === ">") {
219
+ if (ZenCode.charAt(1) === "(") {
220
+ zc = parseEnclosure(ZenCode.substr(1), "(", ")");
221
+ ZenCode = ZenCode.substr(zc.length + 1);
222
+ } else if (ZenCode.charAt(1) === "!") {
223
+ obj = parseEnclosure(ZenCode.substr(1), "!");
224
+ forScope = parseVariableScope(ZenCode.substr(1));
225
+ zc = obj + forScope;
226
+ ZenCode = ZenCode.substr(zc.length + 1);
227
+ } else {
228
+ len = Math.max(ZenCode.indexOf("+"), ZenCode.length);
229
+ zc = ZenCode.substring(1, len);
230
+ ZenCode = ZenCode.substr(len);
231
+ }
232
+ zo = ZenObject;
233
+ zo.main = zc;
234
+ els = $(createHTMLBlock($, zo, data, functions, indexes));
235
+ els.appendTo(el);
236
+ }
237
+ if (ZenCode.charAt(0) === "+") {
238
+ zo = ZenObject;
239
+ zo.main = ZenCode.substr(1);
240
+ el2 = createHTMLBlock($, zo, data, functions, indexes);
241
+ $.each(el2, function(index, value) {
242
+ return el.push(value);
243
+ });
244
+ }
245
+ }
246
+ ret = el;
247
+ return ret;
248
+ };
249
+ bindData = function(ZenCode, el, data) {
250
+ var datas, i, split;
251
+ if (ZenCode.search(regDatas) === 0) {
252
+ return el;
253
+ }
254
+ datas = ZenCode.match(regDatas);
255
+ if (datas === null) {
256
+ return el;
257
+ }
258
+ i = 0;
259
+ while (i < datas.length) {
260
+ split = regData.exec(datas[i]);
261
+ if (split[3] === undefined) {
262
+ $(el).data(split[1], data[split[1]]);
263
+ } else {
264
+ $(el).data(split[1], data[split[3]]);
265
+ }
266
+ i++;
267
+ }
268
+ return el;
269
+ };
270
+ bindEvents = function(ZenCode, el, functions) {
271
+ var bindings, fn, i, split;
272
+ if (ZenCode.search(regEvents) === 0) {
273
+ return el;
274
+ }
275
+ bindings = ZenCode.match(regEvents);
276
+ if (bindings === null) {
277
+ return el;
278
+ }
279
+ i = 0;
280
+ while (i < bindings.length) {
281
+ split = regEvent.exec(bindings[i]);
282
+ if (split[2] === undefined) {
283
+ fn = functions[split[1]];
284
+ } else {
285
+ fn = functions[split[2]];
286
+ }
287
+ $(el).bind(split[1], fn);
288
+ i++;
289
+ }
290
+ return el;
291
+ };
292
+ parseAttributes = function(ZenBlock, data) {
293
+ var attrStrs, attrs, i, parts;
294
+ if (ZenBlock.search(regAttrDfn) === -1) {
295
+ return undefined;
296
+ }
297
+ attrStrs = ZenBlock.match(regAttrDfn);
298
+ attrs = {};
299
+ i = 0;
300
+ while (i < attrStrs.length) {
301
+ parts = regAttr.exec(attrStrs[i]);
302
+ attrs[parts[1]] = "";
303
+ if (parts[3] !== undefined) {
304
+ attrs[parts[1]] = parseContents(parts[3], data);
305
+ }
306
+ i++;
307
+ }
308
+ return attrs;
309
+ };
310
+ parseClasses = function($, ZenBlock) {
311
+ var classes, clsString, i;
312
+ ZenBlock = ZenBlock.match(regTagNotContent)[0];
313
+ if (ZenBlock.search(regClasses) === -1) {
314
+ return undefined;
315
+ }
316
+ classes = ZenBlock.match(regClasses);
317
+ clsString = "";
318
+ i = 0;
319
+ while (i < classes.length) {
320
+ clsString += " " + regClass.exec(classes[i])[1];
321
+ i++;
322
+ }
323
+ return $.trim(clsString);
324
+ };
325
+ parseContents = function(ZenBlock, data, indexes) {
326
+ var html;
327
+ if (indexes === undefined) {
328
+ indexes = {};
329
+ }
330
+ html = ZenBlock;
331
+ if (data === undefined) {
332
+ return html;
333
+ }
334
+ while (regExclamation.test(html)) {
335
+ html = html.replace(regExclamation, function(str, str2) {
336
+ var begChar, fn, val;
337
+ begChar = "";
338
+ if (str.indexOf("!for:") > 0 || str.indexOf("!if:") > 0) {
339
+ return str;
340
+ }
341
+ if (str.charAt(0) !== "!") {
342
+ begChar = str.charAt(0);
343
+ str = str.substring(2, str.length - 1);
344
+ }
345
+ fn = new Function("data", "indexes", "var r=undefined;" + "with(data){try{r=" + str + ";}catch(e){}}" + "with(indexes){try{if(r===undefined)r=" + str + ";}catch(e){}}" + "return r;");
346
+ val = unescape(fn(data, indexes));
347
+ return begChar + val;
348
+ });
349
+ }
350
+ html = html.replace(/\\./g, function(str) {
351
+ return str.charAt(1);
352
+ });
353
+ return unescape(html);
354
+ };
355
+ parseEnclosure = function(ZenCode, open, close, count) {
356
+ var index, ret;
357
+ if (close === undefined) {
358
+ close = open;
359
+ }
360
+ index = 1;
361
+ if (count === undefined) {
362
+ count = (ZenCode.charAt(0) === open ? 1 : 0);
363
+ }
364
+ if (count === 0) {
365
+ return;
366
+ }
367
+ while (count > 0 && index < ZenCode.length) {
368
+ if (ZenCode.charAt(index) === close && ZenCode.charAt(index - 1) !== "\\") {
369
+ count--;
370
+ } else {
371
+ if (ZenCode.charAt(index) === open && ZenCode.charAt(index - 1) !== "\\") {
372
+ count++;
373
+ }
374
+ }
375
+ index++;
376
+ }
377
+ ret = ZenCode.substring(0, index);
378
+ return ret;
379
+ };
380
+ parseReferences = function(ZenCode, ZenObject) {
381
+ ZenCode = ZenCode.replace(regReference, function(str) {
382
+ var fn;
383
+ str = str.substr(1);
384
+ fn = new Function("objs", "var r=\"\";" + "with(objs){try{" + "r=" + str + ";" + "}catch(e){}}" + "return r;");
385
+ return fn(ZenObject, parseReferences);
386
+ });
387
+ return ZenCode;
388
+ };
389
+ parseVariableScope = function(ZenCode) {
390
+ var forCode, rest, tag;
391
+ if (ZenCode.substring(0, 5) !== "!for:" && ZenCode.substring(0, 4) !== "!if:") {
392
+ return undefined;
393
+ }
394
+ forCode = parseEnclosure(ZenCode, "!");
395
+ ZenCode = ZenCode.substr(forCode.length);
396
+ if (ZenCode.charAt(0) === "(") {
397
+ return parseEnclosure(ZenCode, "(", ")");
398
+ }
399
+ tag = ZenCode.match(regZenTagDfn)[0];
400
+ ZenCode = ZenCode.substr(tag.length);
401
+ if (ZenCode.length === 0 || ZenCode.charAt(0) === "+") {
402
+ return tag;
403
+ } else if (ZenCode.charAt(0) === ">") {
404
+ rest = "";
405
+ rest = parseEnclosure(ZenCode.substr(1), "(", ")", 1);
406
+ return tag + ">" + rest;
407
+ }
408
+ return undefined;
409
+ };
410
+ regZenTagDfn = /([#\.\@]?[\w-]+|\[([\w-!?=:"']+(="([^"]|\\")+")? {0,})+\]|\~[\w$]+=[\w$]+|&[\w$]+(=[\w$]+)?|[#\.\@]?!([^!]|\\!)+!){0,}(\{([^\}]|\\\})+\})?/i;
411
+ regTag = /(\w+)/i;
412
+ regId = /(?:^|\b)#([\w-!]+)/i;
413
+ regTagNotContent = /((([#\.]?[\w-]+)?(\[([\w!]+(="([^"]|\\")+")? {0,})+\])?)+)/i;
414
+ /*
415
+ See lookahead syntax (?!) at https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
416
+ */
417
+
418
+ regClasses = /(\.[\w-]+)(?!["\w])/g;
419
+ regClass = /\.([\w-]+)/i;
420
+ regReference = /(@[\w$_][\w$_\d]+)/i;
421
+ regAttrDfn = /(\[([\w-!]+(="?([^"]|\\")+"?)? {0,})+\])/ig;
422
+ regAttrs = /([\w-!]+(="([^"]|\\")+")?)/g;
423
+ regAttr = /([\w-!]+)(="?((([\w]+(\[.*?\])+)|[^"\]]|\\")+)"?)?/i;
424
+ regCBrace = /\{(([^\}]|\\\})+)\}/i;
425
+ regExclamation = /(?:([^\\]|^))!([^!]|\\!)+!/g;
426
+ regEvents = /\~[\w$]+(=[\w$]+)?/g;
427
+ regEvent = /\~([\w$]+)=([\w$]+)/i;
428
+ regDatas = /&[\w$]+(=[\w$]+)?/g;
429
+ regData = /&([\w$]+)(=([\w$]+))?/i;
430
+ return createHTMLBlock;
431
+ })();
432
+
433
+ }).call(this);