unpoly-rails 0.61.0 → 2.0.0.pre.rc3

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 (340) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -1
  3. data/CHANGELOG.md +94 -1
  4. data/README.md +3 -11
  5. data/README_RAILS.md +295 -14
  6. data/dist/unpoly-bootstrap3.css +9 -14
  7. data/dist/unpoly-bootstrap3.js +4 -18
  8. data/dist/unpoly-bootstrap3.min.css +1 -1
  9. data/dist/unpoly-bootstrap3.min.js +1 -1
  10. data/dist/unpoly-bootstrap4.css +9 -0
  11. data/dist/unpoly-bootstrap4.js +16 -0
  12. data/dist/unpoly-bootstrap4.min.css +1 -0
  13. data/dist/unpoly-bootstrap4.min.js +1 -0
  14. data/dist/unpoly-bootstrap5.css +9 -0
  15. data/dist/unpoly-bootstrap5.js +14 -0
  16. data/dist/unpoly-bootstrap5.min.css +1 -0
  17. data/dist/unpoly-bootstrap5.min.js +1 -0
  18. data/dist/unpoly-migrate.js +1213 -0
  19. data/dist/unpoly-migrate.min.js +1 -0
  20. data/dist/unpoly.css +109 -140
  21. data/dist/unpoly.js +15439 -10434
  22. data/dist/unpoly.min.css +1 -1
  23. data/dist/unpoly.min.js +6 -4
  24. data/lib/unpoly-rails.rb +9 -3
  25. data/lib/unpoly/rails/change.rb +372 -0
  26. data/lib/unpoly/rails/change/cache.rb +26 -0
  27. data/lib/unpoly/rails/change/context.rb +80 -0
  28. data/lib/unpoly/rails/change/field.rb +117 -0
  29. data/lib/unpoly/rails/change/field_definition.rb +74 -0
  30. data/lib/unpoly/rails/change/layer.rb +60 -0
  31. data/lib/unpoly/rails/controller.rb +47 -0
  32. data/lib/unpoly/rails/error.rb +5 -0
  33. data/lib/unpoly/rails/request_echo_headers.rb +2 -2
  34. data/lib/unpoly/rails/version.rb +1 -1
  35. data/lib/unpoly/tasks.rb +45 -0
  36. metadata +43 -314
  37. data/.gitignore +0 -10
  38. data/.ruby-version +0 -2
  39. data/Gemfile +0 -8
  40. data/Gemfile.lock +0 -45
  41. data/Rakefile +0 -144
  42. data/bower.json +0 -27
  43. data/design/animation-ghosting.txt +0 -72
  44. data/design/design.txt +0 -34
  45. data/design/draft.html.erb +0 -48
  46. data/design/draft.rb +0 -9
  47. data/design/es6.js +0 -32
  48. data/design/ghost-debugging.txt +0 -118
  49. data/design/homepage.txt +0 -236
  50. data/design/ie11.txt +0 -9
  51. data/design/measure_import_node.js +0 -330
  52. data/design/measure_jquery/element_list.js +0 -41
  53. data/design/measure_jquery/up.on_vs_addEventListener.js +0 -56
  54. data/design/positioning.txt +0 -28
  55. data/design/query-params-in-form-actions/cases.html +0 -125
  56. data/design/rename.txt +0 -0
  57. data/design/test_rejected_promise.txt +0 -5
  58. data/design/unpoly errors.txt +0 -19
  59. data/lib/assets/javascripts/unpoly-bootstrap3.coffee +0 -2
  60. data/lib/assets/javascripts/unpoly-bootstrap3/feedback-ext.coffee +0 -5
  61. data/lib/assets/javascripts/unpoly-bootstrap3/form-ext.coffee +0 -1
  62. data/lib/assets/javascripts/unpoly-bootstrap3/modal-ext.coffee +0 -14
  63. data/lib/assets/javascripts/unpoly-bootstrap3/viewport-ext.coffee +0 -5
  64. data/lib/assets/javascripts/unpoly.coffee +0 -28
  65. data/lib/assets/javascripts/unpoly/browser.coffee.erb +0 -236
  66. data/lib/assets/javascripts/unpoly/classes/body_shifter.coffee +0 -36
  67. data/lib/assets/javascripts/unpoly/classes/cache.coffee +0 -127
  68. data/lib/assets/javascripts/unpoly/classes/compile_pass.coffee +0 -93
  69. data/lib/assets/javascripts/unpoly/classes/config.coffee +0 -9
  70. data/lib/assets/javascripts/unpoly/classes/css_transition.coffee +0 -118
  71. data/lib/assets/javascripts/unpoly/classes/divertible_chain.coffee +0 -39
  72. data/lib/assets/javascripts/unpoly/classes/event_listener.coffee +0 -116
  73. data/lib/assets/javascripts/unpoly/classes/extract_cascade.coffee +0 -86
  74. data/lib/assets/javascripts/unpoly/classes/extract_plan.coffee +0 -111
  75. data/lib/assets/javascripts/unpoly/classes/field_observer.coffee +0 -80
  76. data/lib/assets/javascripts/unpoly/classes/focus_follower.coffee +0 -29
  77. data/lib/assets/javascripts/unpoly/classes/follow_variant.coffee +0 -56
  78. data/lib/assets/javascripts/unpoly/classes/html_parser.coffee +0 -46
  79. data/lib/assets/javascripts/unpoly/classes/motion_controller.coffee +0 -157
  80. data/lib/assets/javascripts/unpoly/classes/params.coffee.erb +0 -543
  81. data/lib/assets/javascripts/unpoly/classes/record.coffee +0 -22
  82. data/lib/assets/javascripts/unpoly/classes/rect.js +0 -21
  83. data/lib/assets/javascripts/unpoly/classes/request.coffee +0 -246
  84. data/lib/assets/javascripts/unpoly/classes/response.coffee +0 -157
  85. data/lib/assets/javascripts/unpoly/classes/reveal_motion.coffee +0 -102
  86. data/lib/assets/javascripts/unpoly/classes/scroll_motion.coffee +0 -67
  87. data/lib/assets/javascripts/unpoly/classes/selector.coffee +0 -60
  88. data/lib/assets/javascripts/unpoly/classes/store/memory.coffee +0 -26
  89. data/lib/assets/javascripts/unpoly/classes/store/session.coffee +0 -59
  90. data/lib/assets/javascripts/unpoly/classes/tether.coffee +0 -105
  91. data/lib/assets/javascripts/unpoly/classes/url_set.coffee +0 -32
  92. data/lib/assets/javascripts/unpoly/cookie.coffee +0 -56
  93. data/lib/assets/javascripts/unpoly/element.coffee.erb +0 -1126
  94. data/lib/assets/javascripts/unpoly/event.coffee.erb +0 -438
  95. data/lib/assets/javascripts/unpoly/feedback.coffee +0 -353
  96. data/lib/assets/javascripts/unpoly/form.coffee.erb +0 -1032
  97. data/lib/assets/javascripts/unpoly/fragment.coffee.erb +0 -924
  98. data/lib/assets/javascripts/unpoly/framework.coffee +0 -67
  99. data/lib/assets/javascripts/unpoly/history.coffee +0 -268
  100. data/lib/assets/javascripts/unpoly/legacy.coffee +0 -60
  101. data/lib/assets/javascripts/unpoly/link.coffee.erb +0 -622
  102. data/lib/assets/javascripts/unpoly/log.coffee +0 -248
  103. data/lib/assets/javascripts/unpoly/modal.coffee.erb +0 -825
  104. data/lib/assets/javascripts/unpoly/motion.coffee.erb +0 -668
  105. data/lib/assets/javascripts/unpoly/namespace.coffee.erb +0 -5
  106. data/lib/assets/javascripts/unpoly/popup.coffee.erb +0 -515
  107. data/lib/assets/javascripts/unpoly/protocol.coffee +0 -298
  108. data/lib/assets/javascripts/unpoly/proxy.coffee +0 -672
  109. data/lib/assets/javascripts/unpoly/radio.coffee +0 -60
  110. data/lib/assets/javascripts/unpoly/rails.coffee +0 -24
  111. data/lib/assets/javascripts/unpoly/syntax.coffee.erb +0 -477
  112. data/lib/assets/javascripts/unpoly/toast.coffee +0 -67
  113. data/lib/assets/javascripts/unpoly/tooltip.coffee +0 -276
  114. data/lib/assets/javascripts/unpoly/util.coffee.erb +0 -1676
  115. data/lib/assets/javascripts/unpoly/viewport.coffee.erb +0 -806
  116. data/lib/assets/stylesheets/unpoly-bootstrap3.sass +0 -1
  117. data/lib/assets/stylesheets/unpoly-bootstrap3/modal-ext.sass +0 -27
  118. data/lib/assets/stylesheets/unpoly.sass +0 -1
  119. data/lib/assets/stylesheets/unpoly/close.sass +0 -2
  120. data/lib/assets/stylesheets/unpoly/dom.sass +0 -5
  121. data/lib/assets/stylesheets/unpoly/layout.sass +0 -2
  122. data/lib/assets/stylesheets/unpoly/link.sass +0 -2
  123. data/lib/assets/stylesheets/unpoly/modal.sass +0 -116
  124. data/lib/assets/stylesheets/unpoly/popup.sass +0 -7
  125. data/lib/assets/stylesheets/unpoly/toast.sass +0 -33
  126. data/lib/assets/stylesheets/unpoly/tooltip.sass +0 -62
  127. data/lib/unpoly/rails/inspector.rb +0 -149
  128. data/lib/unpoly/rails/inspector_accessor.rb +0 -30
  129. data/package.json +0 -38
  130. data/spec_app/.firefox-version +0 -1
  131. data/spec_app/.gitignore +0 -17
  132. data/spec_app/.rspec +0 -2
  133. data/spec_app/Gemfile +0 -32
  134. data/spec_app/Gemfile.lock +0 -233
  135. data/spec_app/README.rdoc +0 -28
  136. data/spec_app/Rakefile +0 -6
  137. data/spec_app/app/assets/images/.keep +0 -0
  138. data/spec_app/app/assets/images/favicon.png +0 -0
  139. data/spec_app/app/assets/images/grid.png +0 -0
  140. data/spec_app/app/assets/javascripts/bootstrap_manifest.coffee +0 -6
  141. data/spec_app/app/assets/javascripts/integration_test.coffee +0 -6
  142. data/spec_app/app/assets/javascripts/jasmine_specs.coffee +0 -6
  143. data/spec_app/app/assets/stylesheets/_helpers.sass +0 -5
  144. data/spec_app/app/assets/stylesheets/bootstrap_manifest.sass +0 -2
  145. data/spec_app/app/assets/stylesheets/integration_test.sass +0 -88
  146. data/spec_app/app/assets/stylesheets/jasmine_specs.sass +0 -20
  147. data/spec_app/app/controllers/application_controller.rb +0 -14
  148. data/spec_app/app/controllers/binding_test_controller.rb +0 -51
  149. data/spec_app/app/controllers/compiler_test_controller.rb +0 -5
  150. data/spec_app/app/controllers/css_test_controller.rb +0 -5
  151. data/spec_app/app/controllers/error_test_controller.rb +0 -5
  152. data/spec_app/app/controllers/form_test/basics_controller.rb +0 -14
  153. data/spec_app/app/controllers/form_test/redirects_controller.rb +0 -17
  154. data/spec_app/app/controllers/form_test/uploads_controller.rb +0 -15
  155. data/spec_app/app/controllers/hash_test_controller.rb +0 -5
  156. data/spec_app/app/controllers/method_test_controller.rb +0 -16
  157. data/spec_app/app/controllers/motion_test_controller.rb +0 -5
  158. data/spec_app/app/controllers/pages_controller.rb +0 -9
  159. data/spec_app/app/controllers/replace_test_controller.rb +0 -5
  160. data/spec_app/app/controllers/reveal_test_controller.rb +0 -5
  161. data/spec_app/app/controllers/scroll_test_controller.rb +0 -5
  162. data/spec_app/app/helpers/application_helper.rb +0 -2
  163. data/spec_app/app/mailers/.keep +0 -0
  164. data/spec_app/app/models/concerns/.keep +0 -0
  165. data/spec_app/app/views/compiler_test/timestamp.erb +0 -9
  166. data/spec_app/app/views/css_test/modal.erb +0 -47
  167. data/spec_app/app/views/css_test/modal_contents.erb +0 -5
  168. data/spec_app/app/views/css_test/modal_contents_wide.erb +0 -5
  169. data/spec_app/app/views/css_test/popup.erb +0 -81
  170. data/spec_app/app/views/css_test/popup_contents.erb +0 -5
  171. data/spec_app/app/views/css_test/tooltip.erb +0 -48
  172. data/spec_app/app/views/error_test/trigger.erb +0 -80
  173. data/spec_app/app/views/error_test/unexpected_response.erb +0 -3
  174. data/spec_app/app/views/form_test/basics/new.erb +0 -60
  175. data/spec_app/app/views/form_test/redirects/new.erb +0 -27
  176. data/spec_app/app/views/form_test/redirects/target.erb +0 -4
  177. data/spec_app/app/views/form_test/submission_result.erb +0 -30
  178. data/spec_app/app/views/form_test/uploads/new.erb +0 -44
  179. data/spec_app/app/views/hash_test/unpoly.erb +0 -30
  180. data/spec_app/app/views/hash_test/vanilla.erb +0 -13
  181. data/spec_app/app/views/layouts/integration_test.erb +0 -22
  182. data/spec_app/app/views/layouts/jasmine_rails/spec_runner.html.erb +0 -20
  183. data/spec_app/app/views/method_test/form_target.erb +0 -17
  184. data/spec_app/app/views/method_test/page1.erb +0 -11
  185. data/spec_app/app/views/method_test/page2.erb +0 -6
  186. data/spec_app/app/views/motion_test/animations.erb +0 -16
  187. data/spec_app/app/views/motion_test/transitions.erb +0 -13
  188. data/spec_app/app/views/pages/start.erb +0 -79
  189. data/spec_app/app/views/replace_test/_nav.erb +0 -6
  190. data/spec_app/app/views/replace_test/page1.erb +0 -14
  191. data/spec_app/app/views/replace_test/page2.erb +0 -14
  192. data/spec_app/app/views/replace_test/table.erb +0 -16
  193. data/spec_app/app/views/reveal_test/long1.erb +0 -17
  194. data/spec_app/app/views/reveal_test/long2.erb +0 -17
  195. data/spec_app/app/views/reveal_test/within_document_viewport.erb +0 -24
  196. data/spec_app/app/views/reveal_test/within_overflowing_div_viewport.erb +0 -28
  197. data/spec_app/app/views/scroll_test/long1.erb +0 -30
  198. data/spec_app/bin/bundle +0 -3
  199. data/spec_app/bin/rails +0 -8
  200. data/spec_app/bin/rake +0 -8
  201. data/spec_app/bin/setup +0 -29
  202. data/spec_app/bin/spring +0 -18
  203. data/spec_app/config.ru +0 -4
  204. data/spec_app/config/application.rb +0 -28
  205. data/spec_app/config/boot.rb +0 -3
  206. data/spec_app/config/database.yml +0 -25
  207. data/spec_app/config/environment.rb +0 -5
  208. data/spec_app/config/environments/development.rb +0 -41
  209. data/spec_app/config/environments/production.rb +0 -79
  210. data/spec_app/config/environments/test.rb +0 -42
  211. data/spec_app/config/initializers/assets.rb +0 -19
  212. data/spec_app/config/initializers/backtrace_silencers.rb +0 -7
  213. data/spec_app/config/initializers/bower_rails.rb +0 -16
  214. data/spec_app/config/initializers/cookies_serializer.rb +0 -3
  215. data/spec_app/config/initializers/filter_parameter_logging.rb +0 -4
  216. data/spec_app/config/initializers/inflections.rb +0 -16
  217. data/spec_app/config/initializers/mime_types.rb +0 -4
  218. data/spec_app/config/initializers/session_store.rb +0 -3
  219. data/spec_app/config/initializers/wrap_parameters.rb +0 -14
  220. data/spec_app/config/locales/en.yml +0 -23
  221. data/spec_app/config/routes.rb +0 -30
  222. data/spec_app/config/secrets.yml +0 -22
  223. data/spec_app/db/schema.rb +0 -23
  224. data/spec_app/db/seeds.rb +0 -7
  225. data/spec_app/lib/assets/.keep +0 -0
  226. data/spec_app/lib/tasks/.keep +0 -0
  227. data/spec_app/lib/tasks/cucumber.rake +0 -65
  228. data/spec_app/log/.keep +0 -0
  229. data/spec_app/public/404.html +0 -67
  230. data/spec_app/public/422.html +0 -67
  231. data/spec_app/public/500.html +0 -66
  232. data/spec_app/public/favicon.ico +0 -0
  233. data/spec_app/public/robots.txt +0 -5
  234. data/spec_app/script/cucumber +0 -10
  235. data/spec_app/spec/controllers/binding_test_controller_spec.rb +0 -248
  236. data/spec_app/spec/javascripts/helpers/agent_detector.coffee +0 -20
  237. data/spec_app/spec/javascripts/helpers/async_sequence.js.coffee +0 -103
  238. data/spec_app/spec/javascripts/helpers/browser_switches.js.coffee +0 -21
  239. data/spec_app/spec/javascripts/helpers/enable_logging.js.coffee +0 -2
  240. data/spec_app/spec/javascripts/helpers/fixture.js.coffee +0 -25
  241. data/spec_app/spec/javascripts/helpers/index.js.coffee +0 -1
  242. data/spec_app/spec/javascripts/helpers/jquery_no_conflict.js +0 -1
  243. data/spec_app/spec/javascripts/helpers/knife.js.coffee +0 -69
  244. data/spec_app/spec/javascripts/helpers/last_request.js.coffee +0 -25
  245. data/spec_app/spec/javascripts/helpers/mock_ajax.js.coffee +0 -8
  246. data/spec_app/spec/javascripts/helpers/mock_clock.js.coffee +0 -2
  247. data/spec_app/spec/javascripts/helpers/parse_form_data.js.coffee +0 -24
  248. data/spec_app/spec/javascripts/helpers/promise_state.js +0 -18
  249. data/spec_app/spec/javascripts/helpers/protect_jasmine_runner.coffee +0 -12
  250. data/spec_app/spec/javascripts/helpers/remove_body_margin.js.coffee +0 -8
  251. data/spec_app/spec/javascripts/helpers/reset_history.js.coffee +0 -23
  252. data/spec_app/spec/javascripts/helpers/reset_knife.js.coffee +0 -2
  253. data/spec_app/spec/javascripts/helpers/reset_up.js.coffee +0 -25
  254. data/spec_app/spec/javascripts/helpers/restore_body_scroll.js.coffee +0 -5
  255. data/spec_app/spec/javascripts/helpers/show_lib_versions.coffee +0 -12
  256. data/spec_app/spec/javascripts/helpers/spec_util.coffee +0 -47
  257. data/spec_app/spec/javascripts/helpers/to_be_around.js.coffee +0 -8
  258. data/spec_app/spec/javascripts/helpers/to_be_array.coffee +0 -5
  259. data/spec_app/spec/javascripts/helpers/to_be_attached.coffee +0 -9
  260. data/spec_app/spec/javascripts/helpers/to_be_blank.js.coffee +0 -8
  261. data/spec_app/spec/javascripts/helpers/to_be_detached.coffee +0 -9
  262. data/spec_app/spec/javascripts/helpers/to_be_element.js.coffee +0 -8
  263. data/spec_app/spec/javascripts/helpers/to_be_error.coffee +0 -8
  264. data/spec_app/spec/javascripts/helpers/to_be_given.js.coffee +0 -8
  265. data/spec_app/spec/javascripts/helpers/to_be_hidden.js.coffee +0 -8
  266. data/spec_app/spec/javascripts/helpers/to_be_jquery.js.coffee +0 -5
  267. data/spec_app/spec/javascripts/helpers/to_be_missing.js.coffee +0 -8
  268. data/spec_app/spec/javascripts/helpers/to_be_present.js.coffee +0 -8
  269. data/spec_app/spec/javascripts/helpers/to_be_scrolled_to.coffee +0 -11
  270. data/spec_app/spec/javascripts/helpers/to_be_visible.js.coffee +0 -9
  271. data/spec_app/spec/javascripts/helpers/to_contain.js.coffee +0 -8
  272. data/spec_app/spec/javascripts/helpers/to_end_with.js.coffee +0 -11
  273. data/spec_app/spec/javascripts/helpers/to_equal_jquery.js.coffee +0 -8
  274. data/spec_app/spec/javascripts/helpers/to_equal_node_list.coffee +0 -7
  275. data/spec_app/spec/javascripts/helpers/to_equal_via_is_equal.js.coffee +0 -7
  276. data/spec_app/spec/javascripts/helpers/to_have_class.js.coffee +0 -10
  277. data/spec_app/spec/javascripts/helpers/to_have_descendant.js.coffee +0 -10
  278. data/spec_app/spec/javascripts/helpers/to_have_length.js.coffee +0 -8
  279. data/spec_app/spec/javascripts/helpers/to_have_opacity.coffee +0 -15
  280. data/spec_app/spec/javascripts/helpers/to_have_own_property.js.coffee +0 -8
  281. data/spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee +0 -16
  282. data/spec_app/spec/javascripts/helpers/to_have_text.js.coffee +0 -9
  283. data/spec_app/spec/javascripts/helpers/to_have_unhandled_rejections.coffee +0 -18
  284. data/spec_app/spec/javascripts/helpers/to_match_list.coffee +0 -14
  285. data/spec_app/spec/javascripts/helpers/to_match_selector.coffee +0 -8
  286. data/spec_app/spec/javascripts/helpers/to_match_text.js.coffee +0 -13
  287. data/spec_app/spec/javascripts/helpers/to_match_url.coffee +0 -14
  288. data/spec_app/spec/javascripts/helpers/trigger.js.coffee +0 -200
  289. data/spec_app/spec/javascripts/helpers/wait_until_dom_ready.js.coffee +0 -5
  290. data/spec_app/spec/javascripts/support/jasmine.yml +0 -51
  291. data/spec_app/spec/javascripts/up/browser_spec.js.coffee +0 -150
  292. data/spec_app/spec/javascripts/up/classes/cache_spec.js.coffee +0 -82
  293. data/spec_app/spec/javascripts/up/classes/config_spec.coffee +0 -24
  294. data/spec_app/spec/javascripts/up/classes/divertible_chain_spec.coffee +0 -45
  295. data/spec_app/spec/javascripts/up/classes/focus_tracker_spec.coffee +0 -34
  296. data/spec_app/spec/javascripts/up/classes/params_spec.coffee +0 -557
  297. data/spec_app/spec/javascripts/up/classes/request_spec.coffee +0 -50
  298. data/spec_app/spec/javascripts/up/classes/scroll_motion_spec.js.coffee +0 -51
  299. data/spec_app/spec/javascripts/up/classes/store/memory_spec.js.coffee +0 -70
  300. data/spec_app/spec/javascripts/up/classes/store/session_spec.js.coffee +0 -114
  301. data/spec_app/spec/javascripts/up/element_spec.coffee +0 -897
  302. data/spec_app/spec/javascripts/up/event_spec.js.coffee +0 -530
  303. data/spec_app/spec/javascripts/up/feedback_spec.js.coffee +0 -401
  304. data/spec_app/spec/javascripts/up/form_spec.js.coffee +0 -1488
  305. data/spec_app/spec/javascripts/up/fragment_spec.js.coffee +0 -2589
  306. data/spec_app/spec/javascripts/up/history_spec.js.coffee +0 -340
  307. data/spec_app/spec/javascripts/up/jquery_spec.js.coffee +0 -4
  308. data/spec_app/spec/javascripts/up/legacy_spec.js.coffee +0 -27
  309. data/spec_app/spec/javascripts/up/link_spec.js.coffee +0 -1093
  310. data/spec_app/spec/javascripts/up/log_spec.js.coffee +0 -119
  311. data/spec_app/spec/javascripts/up/modal_spec.js.coffee +0 -917
  312. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +0 -582
  313. data/spec_app/spec/javascripts/up/popup_spec.js.coffee +0 -507
  314. data/spec_app/spec/javascripts/up/protocol_spec.js.coffee +0 -39
  315. data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +0 -1137
  316. data/spec_app/spec/javascripts/up/radio_spec.js.coffee +0 -212
  317. data/spec_app/spec/javascripts/up/rails_spec.js.coffee +0 -118
  318. data/spec_app/spec/javascripts/up/spec_spec.js.coffee +0 -9
  319. data/spec_app/spec/javascripts/up/syntax_spec.js.coffee +0 -304
  320. data/spec_app/spec/javascripts/up/toast_spec.js.coffee +0 -37
  321. data/spec_app/spec/javascripts/up/tooltip_spec.js.coffee +0 -163
  322. data/spec_app/spec/javascripts/up/util_spec.js.coffee +0 -1420
  323. data/spec_app/spec/javascripts/up/viewport_spec.js.coffee +0 -655
  324. data/spec_app/spec/spec_helper.rb +0 -62
  325. data/spec_app/test/controllers/.keep +0 -0
  326. data/spec_app/test/fixtures/.keep +0 -0
  327. data/spec_app/test/helpers/.keep +0 -0
  328. data/spec_app/test/integration/.keep +0 -0
  329. data/spec_app/test/mailers/.keep +0 -0
  330. data/spec_app/test/models/.keep +0 -0
  331. data/spec_app/test/test_helper.rb +0 -10
  332. data/spec_app/vendor/asset-libs/es6-promise-4.1.6/es6-promise.auto.js +0 -1159
  333. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.bower.json +0 -43
  334. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.gitignore +0 -6
  335. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.npmignore +0 -10
  336. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.pairs +0 -6
  337. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.travis.yml +0 -56
  338. data/spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/jasmine-ajax.js +0 -790
  339. data/spec_app/vendor/assets/.keep +0 -0
  340. data/unpoly-rails.gemspec +0 -24
@@ -1 +0,0 @@
1
- //= require_tree ./unpoly-bootstrap3
@@ -1,27 +0,0 @@
1
- .up-modal-content
2
- // Unpoly: Gives some default padding
3
- // Bootstrap: Expects content to set the padding
4
- padding: 0
5
-
6
- .up-modal-dialog
7
- // Unpoly: Dialog margin is a padding of .up-modal-viewport so we can give .up-modal-dialog a max-width of 100%
8
- // Bootstrap: Dialog margin is a margin of .modal-dialog
9
- margin: 0
10
-
11
- .up-modal[up-flavor='drawer']
12
-
13
- .up-modal-content
14
- // Bootstrap gives its modals round corners, which looks wrong with a
15
- // drawer that sits at the end of the screen.
16
- border-radius: 0
17
-
18
- // Bootstrap gives its modals a border, which looks wrong
19
- // when touching the edge of the screen.
20
- border-top: none
21
- border-bottom: none
22
-
23
- &[up-position='left'] .up-modal-content
24
- border-left: none
25
-
26
- &[up-position='right'] .up-modal-content
27
- border-right: none
@@ -1 +0,0 @@
1
- //= require_tree ./unpoly
@@ -1,2 +0,0 @@
1
- [up-close]
2
- cursor: pointer
@@ -1,5 +0,0 @@
1
- .up-insertion
2
- // The element must not display inline, since inline elements have no height:
3
- // https://www.w3.org/TR/CSS2/visudet.html#inline-non-replaced
4
- // This causes u.measure in up.viewport.reveal to return an element with a top, but a zero height.
5
- display: inline-block
@@ -1,2 +0,0 @@
1
- .up-bounds
2
- position: absolute
@@ -1,2 +0,0 @@
1
- [up-href]
2
- cursor: pointer
@@ -1,116 +0,0 @@
1
- $stratum: 10000
2
-
3
- // These could actually be 1000, 2000, 3000 and 4000 since the `fixed` position of an element defines
4
- // a stacking context for all contained z-indexes.
5
- //
6
- // However, let's keep the option open that these elements will one day not have its stacking context.
7
- //
8
- // Also let's not do 1, 2, 3 and 4 so other elements have a chance to move themselves between the layers.
9
- $substratum-backdrop: 11000
10
- $substratum-elements: 12000
11
- $substratum-dialog: 13000
12
- $substratum-content: 14000
13
- $substratum-close: 15000
14
-
15
- $close-height: 36px
16
- $close-width: 36px
17
- $close-font-size: 34px
18
-
19
- .up-modal
20
- position: fixed
21
- top: 0
22
- left: 0
23
- bottom: 0
24
- right: 0
25
- z-index: $stratum
26
- overflow-x: hidden
27
-
28
- .up-modal-backdrop
29
- z-index: $substratum-backdrop
30
- background-color: rgba(90, 90, 90, 0.4)
31
- position: absolute
32
- top: 0
33
- right: 0
34
- bottom: 0
35
- left: 0
36
-
37
- .up-modal-viewport
38
- position: absolute
39
- top: 0
40
- left: 0
41
- bottom: 0
42
- right: 0
43
- z-index: $substratum-elements
44
- overflow-x: hidden
45
- // The viewport always has a scrollbar, except when we're animating (see below)
46
- overflow-y: scroll
47
- // We prefer centering the dialog as an `inline-block`
48
- // to giving it a horizontal margin of `auto`. This way
49
- // the width of `.up-modal-dialog` is controlled by the
50
- // contents of `.up-modal-content`.
51
- text-align: center
52
-
53
- // Implement the margin around the dialog box with a padding of the viewport.
54
- // This way we can give .up-modal-dialog a max-width of 100%, (1) preventing people
55
- // from setting withs larger than the viewport, and (2) sizing approproately
56
- // if the modal contents are very wide and cannot wrap (e.g. code blocks).
57
- padding: 30px 10px
58
-
59
- .up-modal.up-modal-animating
60
- // During opening/closing animations we let the .up-modal container take over
61
- // the scrollbars that would usually be owned by .up-modal-viewport.
62
- // If .up-modal-viewport had a scrollbar while animating with
63
- // "zoom-in" it would look strange that the scrollbar is scaled.
64
- &
65
- overflow-y: scroll
66
- .up-modal-viewport
67
- overflow-y: hidden
68
-
69
- .up-modal-dialog
70
- z-index: $substratum-dialog
71
- // Make sure .up-modal-close is relative to the dialog
72
- position: relative
73
- // In case someone sets padding on the dialog box,
74
- // the width and height attributes set by up.modal
75
- // should be honored exactly.
76
- box-sizing: border-box
77
-
78
- // In case someone sets a huge width on the dialog.
79
- max-width: 100%
80
-
81
- // Make it grow with the width of .up-modal-content
82
- display: inline-block
83
- text-align: left
84
-
85
- .up-modal-content
86
- z-index: $substratum-content
87
- padding: 20px
88
- background-color: #fff
89
- box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.3)
90
-
91
- .up-modal-close
92
- z-index: $substratum-close
93
- position: absolute
94
- right: 0
95
- top: 0
96
- width: $close-width
97
- text-align: center
98
- line-height: $close-height
99
- height: $close-height
100
- font-size: $close-font-size
101
- color: #666
102
- cursor: pointer
103
-
104
- .up-modal[up-flavor='drawer']
105
- .up-modal-viewport
106
- text-align: left
107
- padding: 0
108
- &[up-position='right'] .up-modal-viewport
109
- text-align: right
110
- .up-modal-dialog
111
- max-width: 350px
112
- .up-modal-content
113
- min-height: 100vh
114
- box-sizing: border-box // since we're setting min-height on an element with padding
115
-
116
-
@@ -1,7 +0,0 @@
1
- $stratum: 20000
2
-
3
- .up-popup
4
- z-index: $stratum
5
- background-color: #fff
6
- padding: 15px
7
- box-shadow: 0 0 4px rgba(0, 0, 0, 0.3)
@@ -1,33 +0,0 @@
1
- $highlight-color: #28b
2
- $text-color: #333
3
-
4
- .up-toast
5
- border-top: 3px solid $highlight-color
6
- background-color: white
7
- color: $text-color
8
- padding: 10px
9
- font-family: monospace
10
- font-size: 14px
11
- line-height: 15px
12
- position: fixed
13
- left: 0
14
- bottom: 0
15
- right: 0
16
- z-index: 99999999
17
-
18
- .up-toast-variable
19
- font-weight: normal
20
- color: lighten($text-color, 30%)
21
-
22
- .up-toast-actions
23
- margin-top: 7px
24
-
25
- .up-toast-action
26
- display: inline-block
27
- word-spacing: -4px
28
- text-decoration: underline
29
- color: $highlight-color
30
- cursor: pointer
31
-
32
- &+.up-toast-action
33
- margin-left: 12px
@@ -1,62 +0,0 @@
1
- $stratum: 30000
2
- $distance-from-origin: 10px
3
- $corner-size: 6px
4
- $background-color: #111
5
-
6
- .up-tooltip
7
- z-index: $stratum
8
- position: relative
9
-
10
- &:after
11
- content: ''
12
- position: absolute
13
- display: block
14
- width: 0
15
- height: 0
16
- border: $corner-size solid transparent
17
-
18
- &[up-position=top]
19
- margin-bottom: $distance-from-origin
20
-
21
- &:after
22
- border-top-color: $background-color
23
- border-bottom-width: 0
24
- bottom: -$corner-size
25
- left: 50%
26
- margin-left: -$corner-size
27
-
28
- &[up-position=left]
29
- margin-right: $distance-from-origin
30
-
31
- &:after
32
- border-left-color: $background-color
33
- border-right-width: 0
34
- right: -$corner-size
35
- top: 50%
36
- margin-top: -$corner-size
37
-
38
- &[up-position=right]
39
- margin-left: $distance-from-origin
40
-
41
- &:after
42
- border-right-color: $background-color
43
- border-left-width: 0
44
- left: -$corner-size
45
- top: 50%
46
- margin-top: -$corner-size
47
-
48
- &[up-position=bottom]
49
- margin-top: $distance-from-origin
50
-
51
- &:after
52
- border-bottom-color: $background-color
53
- border-top-width: 0
54
- top: -$corner-size
55
- left: 50%
56
- margin-left: -$corner-size
57
-
58
- .up-tooltip-content
59
- background-color: $background-color
60
- color: white
61
- padding: 6px 9px
62
- white-space: nowrap
@@ -1,149 +0,0 @@
1
- module Unpoly
2
- module Rails
3
- ##
4
- # This object allows the server to inspect the current request
5
- # for Unpoly-related concerns such as "is this a page fragment update?".
6
- #
7
- # Available through the `#up` method in all controllers, helpers and views.
8
- class Inspector
9
-
10
- def initialize(controller)
11
- @controller = controller
12
- end
13
-
14
- ##
15
- # Returns whether the current request is an
16
- # [page fragment update](https://unpoly.com/up.replace) triggered by an
17
- # Unpoly frontend.
18
- def up?
19
- target.present?
20
- end
21
-
22
- alias_method :unpoly?, :up?
23
-
24
- ##
25
- # Returns the CSS selector for a fragment that Unpoly will update in
26
- # case of a successful response (200 status code).
27
- #
28
- # The Unpoly frontend will expect an HTML response containing an element
29
- # that matches this selector.
30
- #
31
- # Server-side code is free to optimize its successful response by only returning HTML
32
- # that matches this selector.
33
- def target
34
- request.headers['X-Up-Target']
35
- end
36
-
37
- ##
38
- # Returns the CSS selector for a fragment that Unpoly will update in
39
- # case of an failed response. Server errors or validation failures are
40
- # all examples for a failed response (non-200 status code).
41
- #
42
- # The Unpoly frontend will expect an HTML response containing an element
43
- # that matches this selector.
44
- #
45
- # Server-side code is free to optimize its response by only returning HTML
46
- # that matches this selector.
47
- def fail_target
48
- request.headers['X-Up-Fail-Target']
49
- end
50
-
51
- ##
52
- # Returns whether the given CSS selector is targeted by the current fragment
53
- # update in case of a successful response (200 status code).
54
- #
55
- # Note that the matching logic is very simplistic and does not actually know
56
- # how your page layout is structured. It will return `true` if
57
- # the tested selector and the requested CSS selector matches exactly, or if the
58
- # requested selector is `body` or `html`.
59
- #
60
- # Always returns `true` if the current request is not an Unpoly fragment update.
61
- def target?(tested_target)
62
- query_target(target, tested_target)
63
- end
64
-
65
- ##
66
- # Returns whether the given CSS selector is targeted by the current fragment
67
- # update in case of a failed response (non-200 status code).
68
- #
69
- # Note that the matching logic is very simplistic and does not actually know
70
- # how your page layout is structured. It will return `true` if
71
- # the tested selector and the requested CSS selector matches exactly, or if the
72
- # requested selector is `body` or `html`.
73
- #
74
- # Always returns `true` if the current request is not an Unpoly fragment update.
75
- def fail_target?(tested_target)
76
- query_target(fail_target, tested_target)
77
- end
78
-
79
- ##
80
- # Returns whether the given CSS selector is targeted by the current fragment
81
- # update for either a success or a failed response.
82
- #
83
- # Note that the matching logic is very simplistic and does not actually know
84
- # how your page layout is structured. It will return `true` if
85
- # the tested selector and the requested CSS selector matches exactly, or if the
86
- # requested selector is `body` or `html`.
87
- #
88
- # Always returns `true` if the current request is not an Unpoly fragment update.
89
- def any_target?(tested_target)
90
- target?(tested_target) || fail_target?(tested_target)
91
- end
92
-
93
- ##
94
- # Returns whether the current form submission should be
95
- # [validated](https://unpoly.com/input-up-validate) (and not be saved to the database).
96
- def validate?
97
- validate_name.present?
98
- end
99
-
100
- ##
101
- # If the current form submission is a [validation](https://unpoly.com/input-up-validate),
102
- # this returns the name attribute of the form field that has triggered
103
- # the validation.
104
- def validate_name
105
- request.headers['X-Up-Validate']
106
- end
107
-
108
- ##
109
- # Forces Unpoly to use the given string as the document title when processing
110
- # this response.
111
- #
112
- # This is useful when you skip rendering the `<head>` in an Unpoly request.
113
- def title=(new_title)
114
- response.headers['X-Up-Title'] = new_title
115
- end
116
-
117
- private
118
-
119
- def request
120
- @controller.request
121
- end
122
-
123
- def params
124
- @controller.params
125
- end
126
-
127
- def response
128
- @controller.response
129
- end
130
-
131
- def query_target(actual_target, tested_target)
132
- if up?
133
- if actual_target == tested_target
134
- true
135
- elsif actual_target == 'html'
136
- true
137
- elsif actual_target == 'body'
138
- not ['head', 'title', 'meta'].include?(tested_target)
139
- else
140
- false
141
- end
142
- else
143
- true
144
- end
145
- end
146
-
147
- end
148
- end
149
- end
@@ -1,30 +0,0 @@
1
- module Unpoly
2
- module Rails
3
- ##
4
- # This adds two methods `#up` and `#up?` to all controllers,
5
- # helpers and views, allowing the server to inspect the current request
6
- # for Unpoly-related concerns such as "is this a page fragment update?".
7
- module InspectorAccessor
8
-
9
- def self.included(base)
10
- base.helper_method :up, :up?
11
- end
12
-
13
- def up
14
- @up_inspector ||= Inspector.new(self)
15
- end
16
-
17
- alias_method :unpoly, :up
18
-
19
- ##
20
- # :method: up?
21
- # Returns whether the current request is an
22
- # [page fragment update](https://unpoly.com/up.replace) triggered by an
23
- # Unpoly frontend.
24
- delegate :up?, :unpoly?, :to => :up
25
-
26
- ActionController::Base.send(:include, self)
27
-
28
- end
29
- end
30
- end