unpoly-rails 0.57.0 → 0.60.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 (186) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +393 -1
  3. data/Gemfile.lock +5 -2
  4. data/README.md +1 -1
  5. data/README_RAILS.md +1 -1
  6. data/Rakefile +10 -1
  7. data/design/es6.js +32 -0
  8. data/design/ie11.txt +9 -0
  9. data/design/measure_jquery/element_list.js +41 -0
  10. data/design/measure_jquery/up.on_vs_addEventListener.js +56 -0
  11. data/design/todo_jquery.txt +13 -0
  12. data/dist/unpoly-bootstrap3.js +8 -8
  13. data/dist/unpoly-bootstrap3.min.js +1 -1
  14. data/dist/unpoly.css +22 -20
  15. data/dist/unpoly.js +6990 -5336
  16. data/dist/unpoly.min.css +1 -1
  17. data/dist/unpoly.min.js +4 -4
  18. data/lib/assets/javascripts/unpoly-bootstrap3/viewport-ext.coffee +5 -0
  19. data/lib/assets/javascripts/unpoly.coffee +8 -6
  20. data/lib/assets/javascripts/unpoly/browser.coffee.erb +23 -118
  21. data/lib/assets/javascripts/unpoly/classes/body_shifter.coffee +36 -0
  22. data/lib/assets/javascripts/unpoly/classes/cache.coffee +4 -4
  23. data/lib/assets/javascripts/unpoly/classes/compile_pass.coffee +45 -39
  24. data/lib/assets/javascripts/unpoly/classes/config.coffee +9 -0
  25. data/lib/assets/javascripts/unpoly/classes/css_transition.coffee +18 -27
  26. data/lib/assets/javascripts/unpoly/classes/divertible_chain.coffee +39 -0
  27. data/lib/assets/javascripts/unpoly/classes/event_listener.coffee +116 -0
  28. data/lib/assets/javascripts/unpoly/classes/extract_cascade.coffee +8 -8
  29. data/lib/assets/javascripts/unpoly/classes/extract_plan.coffee +19 -19
  30. data/lib/assets/javascripts/unpoly/classes/field_observer.coffee +54 -31
  31. data/lib/assets/javascripts/unpoly/classes/{focus_tracker.coffee → focus_follower.coffee} +2 -2
  32. data/lib/assets/javascripts/unpoly/classes/follow_variant.coffee +25 -25
  33. data/lib/assets/javascripts/unpoly/classes/html_parser.coffee +4 -11
  34. data/lib/assets/javascripts/unpoly/classes/motion_controller.coffee +157 -0
  35. data/lib/assets/javascripts/unpoly/classes/params.coffee.erb +525 -0
  36. data/lib/assets/javascripts/unpoly/classes/record.coffee +8 -2
  37. data/lib/assets/javascripts/unpoly/classes/rect.js +21 -0
  38. data/lib/assets/javascripts/unpoly/classes/request.coffee +41 -35
  39. data/lib/assets/javascripts/unpoly/classes/response.coffee +7 -3
  40. data/lib/assets/javascripts/unpoly/classes/reveal_motion.coffee +102 -0
  41. data/lib/assets/javascripts/unpoly/classes/scroll_motion.coffee +67 -0
  42. data/lib/assets/javascripts/unpoly/classes/selector.coffee +60 -0
  43. data/lib/assets/javascripts/unpoly/classes/tether.coffee +105 -0
  44. data/lib/assets/javascripts/unpoly/classes/url_set.coffee +12 -7
  45. data/lib/assets/javascripts/unpoly/element.coffee.erb +1126 -0
  46. data/lib/assets/javascripts/unpoly/event.coffee.erb +437 -0
  47. data/lib/assets/javascripts/unpoly/feedback.coffee +73 -94
  48. data/lib/assets/javascripts/unpoly/form.coffee.erb +188 -181
  49. data/lib/assets/javascripts/unpoly/{dom.coffee.erb → fragment.coffee.erb} +250 -283
  50. data/lib/assets/javascripts/unpoly/framework.coffee +67 -0
  51. data/lib/assets/javascripts/unpoly/history.coffee +29 -28
  52. data/lib/assets/javascripts/unpoly/legacy.coffee +60 -0
  53. data/lib/assets/javascripts/unpoly/link.coffee.erb +127 -119
  54. data/lib/assets/javascripts/unpoly/log.coffee +99 -19
  55. data/lib/assets/javascripts/unpoly/modal.coffee.erb +95 -118
  56. data/lib/assets/javascripts/unpoly/motion.coffee.erb +158 -138
  57. data/lib/assets/javascripts/unpoly/namespace.coffee.erb +0 -5
  58. data/lib/assets/javascripts/unpoly/popup.coffee.erb +119 -102
  59. data/lib/assets/javascripts/unpoly/protocol.coffee +11 -15
  60. data/lib/assets/javascripts/unpoly/proxy.coffee +62 -65
  61. data/lib/assets/javascripts/unpoly/radio.coffee +3 -5
  62. data/lib/assets/javascripts/unpoly/rails.coffee +8 -9
  63. data/lib/assets/javascripts/unpoly/syntax.coffee.erb +173 -125
  64. data/lib/assets/javascripts/unpoly/toast.coffee +25 -24
  65. data/lib/assets/javascripts/unpoly/tooltip.coffee +89 -79
  66. data/lib/assets/javascripts/unpoly/util.coffee.erb +579 -1074
  67. data/lib/assets/javascripts/unpoly/{layout.coffee.erb → viewport.coffee.erb} +334 -264
  68. data/lib/assets/stylesheets/unpoly/dom.sass +1 -1
  69. data/lib/assets/stylesheets/unpoly/layout.sass +2 -0
  70. data/lib/assets/stylesheets/unpoly/popup.sass +0 -1
  71. data/lib/assets/stylesheets/unpoly/tooltip.sass +17 -12
  72. data/lib/unpoly/rails/version.rb +1 -1
  73. data/package.json +1 -2
  74. data/spec_app/Gemfile +2 -1
  75. data/spec_app/Gemfile.lock +38 -27
  76. data/spec_app/app/assets/javascripts/integration_test.coffee +1 -0
  77. data/spec_app/app/assets/javascripts/jasmine_specs.coffee +1 -2
  78. data/spec_app/app/assets/stylesheets/integration_test.sass +14 -1
  79. data/spec_app/app/controllers/scroll_test_controller.rb +5 -0
  80. data/spec_app/app/views/css_test/modal.erb +6 -6
  81. data/spec_app/app/views/css_test/popup.erb +44 -18
  82. data/spec_app/app/views/css_test/tooltip.erb +23 -4
  83. data/spec_app/app/views/error_test/trigger.erb +1 -1
  84. data/spec_app/app/views/form_test/basics/new.erb +1 -3
  85. data/spec_app/app/views/pages/start.erb +9 -2
  86. data/spec_app/app/views/reveal_test/long1.erb +1 -1
  87. data/spec_app/app/views/reveal_test/long2.erb +1 -1
  88. data/spec_app/app/views/reveal_test/within_document_viewport.erb +24 -0
  89. data/spec_app/app/views/reveal_test/within_overflowing_div_viewport.erb +28 -0
  90. data/spec_app/app/views/scroll_test/long1.erb +30 -0
  91. data/spec_app/config/routes.rb +1 -0
  92. data/spec_app/spec/javascripts/helpers/agent_detector.coffee +3 -0
  93. data/spec_app/spec/javascripts/helpers/async_sequence.js.coffee +1 -0
  94. data/spec_app/spec/javascripts/helpers/browser_switches.js.coffee +17 -5
  95. data/spec_app/spec/javascripts/helpers/enable_logging.js.coffee +1 -1
  96. data/spec_app/spec/javascripts/helpers/fixture.js.coffee +25 -0
  97. data/spec_app/spec/javascripts/helpers/jquery_no_conflict.js +1 -0
  98. data/spec_app/spec/javascripts/helpers/last_request.js.coffee +1 -0
  99. data/spec_app/spec/javascripts/helpers/mock_ajax.js.coffee +1 -1
  100. data/spec_app/spec/javascripts/helpers/parse_form_data.js.coffee +2 -2
  101. data/spec_app/spec/javascripts/helpers/protect_jasmine_runner.coffee +4 -1
  102. data/spec_app/spec/javascripts/helpers/remove_body_margin.js.coffee +3 -0
  103. data/spec_app/spec/javascripts/helpers/reset_history.js.coffee +2 -1
  104. data/spec_app/spec/javascripts/helpers/reset_knife.js.coffee +2 -2
  105. data/spec_app/spec/javascripts/helpers/reset_up.js.coffee +18 -11
  106. data/spec_app/spec/javascripts/helpers/restore_body_scroll.js.coffee +3 -0
  107. data/spec_app/spec/javascripts/helpers/show_lib_versions.coffee +3 -0
  108. data/spec_app/spec/javascripts/helpers/spec_util.coffee +47 -0
  109. data/spec_app/spec/javascripts/helpers/to_be_around.js.coffee +3 -0
  110. data/spec_app/spec/javascripts/helpers/to_be_array.coffee +5 -0
  111. data/spec_app/spec/javascripts/helpers/to_be_attached.coffee +6 -2
  112. data/spec_app/spec/javascripts/helpers/to_be_blank.js.coffee +3 -0
  113. data/spec_app/spec/javascripts/helpers/to_be_detached.coffee +6 -2
  114. data/spec_app/spec/javascripts/helpers/to_be_element.js.coffee +8 -0
  115. data/spec_app/spec/javascripts/helpers/to_be_error.coffee +3 -0
  116. data/spec_app/spec/javascripts/helpers/to_be_given.js.coffee +3 -0
  117. data/spec_app/spec/javascripts/helpers/to_be_hidden.js.coffee +8 -0
  118. data/spec_app/spec/javascripts/helpers/to_be_missing.js.coffee +3 -0
  119. data/spec_app/spec/javascripts/helpers/to_be_present.js.coffee +3 -0
  120. data/spec_app/spec/javascripts/helpers/to_be_scrolled_to.coffee +3 -0
  121. data/spec_app/spec/javascripts/helpers/to_be_visible.js.coffee +9 -0
  122. data/spec_app/spec/javascripts/helpers/to_contain.js.coffee +3 -0
  123. data/spec_app/spec/javascripts/helpers/to_end_with.js.coffee +3 -0
  124. data/spec_app/spec/javascripts/helpers/to_equal_jquery.js.coffee +1 -2
  125. data/spec_app/spec/javascripts/helpers/to_equal_node_list.coffee +7 -0
  126. data/spec_app/spec/javascripts/helpers/to_equal_via_is_equal.js.coffee +7 -0
  127. data/spec_app/spec/javascripts/helpers/to_have_class.js.coffee +10 -0
  128. data/spec_app/spec/javascripts/helpers/to_have_descendant.js.coffee +10 -0
  129. data/spec_app/spec/javascripts/helpers/to_have_length.js.coffee +8 -0
  130. data/spec_app/spec/javascripts/helpers/to_have_opacity.coffee +7 -3
  131. data/spec_app/spec/javascripts/helpers/to_have_own_property.js.coffee +3 -0
  132. data/spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee +1 -0
  133. data/spec_app/spec/javascripts/helpers/to_have_text.js.coffee +9 -0
  134. data/spec_app/spec/javascripts/helpers/to_have_unhandled_rejections.coffee +0 -21
  135. data/spec_app/spec/javascripts/helpers/to_match_list.coffee +14 -0
  136. data/spec_app/spec/javascripts/helpers/to_match_selector.coffee +3 -0
  137. data/spec_app/spec/javascripts/helpers/to_match_text.js.coffee +4 -1
  138. data/spec_app/spec/javascripts/helpers/to_match_url.coffee +1 -0
  139. data/spec_app/spec/javascripts/helpers/trigger.js.coffee +91 -7
  140. data/spec_app/spec/javascripts/helpers/wait_until_dom_ready.js.coffee +3 -0
  141. data/spec_app/spec/javascripts/up/browser_spec.js.coffee +23 -90
  142. data/spec_app/spec/javascripts/up/classes/cache_spec.js.coffee +3 -0
  143. data/spec_app/spec/javascripts/up/classes/config_spec.coffee +24 -0
  144. data/spec_app/spec/javascripts/up/classes/divertible_chain_spec.coffee +45 -0
  145. data/spec_app/spec/javascripts/up/classes/focus_tracker_spec.coffee +5 -2
  146. data/spec_app/spec/javascripts/up/classes/params_spec.coffee +557 -0
  147. data/spec_app/spec/javascripts/up/classes/request_spec.coffee +7 -4
  148. data/spec_app/spec/javascripts/up/classes/scroll_motion_spec.js.coffee +51 -0
  149. data/spec_app/spec/javascripts/up/classes/store/memory_spec.js.coffee +3 -0
  150. data/spec_app/spec/javascripts/up/classes/store/session_spec.js.coffee +3 -2
  151. data/spec_app/spec/javascripts/up/element_spec.coffee +897 -0
  152. data/spec_app/spec/javascripts/up/event_spec.js.coffee +496 -0
  153. data/spec_app/spec/javascripts/up/feedback_spec.js.coffee +69 -48
  154. data/spec_app/spec/javascripts/up/form_spec.js.coffee +252 -194
  155. data/spec_app/spec/javascripts/up/{dom_spec.js.coffee → fragment_spec.js.coffee} +381 -388
  156. data/spec_app/spec/javascripts/up/history_spec.js.coffee +21 -19
  157. data/spec_app/spec/javascripts/up/jquery_spec.js.coffee +4 -0
  158. data/spec_app/spec/javascripts/up/legacy_spec.js.coffee +27 -0
  159. data/spec_app/spec/javascripts/up/link_spec.js.coffee +163 -160
  160. data/spec_app/spec/javascripts/up/log_spec.js.coffee +85 -12
  161. data/spec_app/spec/javascripts/up/modal_spec.js.coffee +141 -123
  162. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +117 -113
  163. data/spec_app/spec/javascripts/up/popup_spec.js.coffee +60 -77
  164. data/spec_app/spec/javascripts/up/protocol_spec.js.coffee +1 -0
  165. data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +85 -78
  166. data/spec_app/spec/javascripts/up/radio_spec.js.coffee +29 -22
  167. data/spec_app/spec/javascripts/up/rails_spec.js.coffee +14 -13
  168. data/spec_app/spec/javascripts/up/spec_spec.js.coffee +9 -0
  169. data/spec_app/spec/javascripts/up/syntax_spec.js.coffee +96 -66
  170. data/spec_app/spec/javascripts/up/toast_spec.js.coffee +37 -0
  171. data/spec_app/spec/javascripts/up/tooltip_spec.js.coffee +31 -47
  172. data/spec_app/spec/javascripts/up/util_spec.js.coffee +725 -562
  173. data/spec_app/spec/javascripts/up/{layout_spec.js.coffee → viewport_spec.js.coffee} +175 -149
  174. metadata +57 -19
  175. data/lib/assets/javascripts/unpoly-bootstrap3/layout-ext.coffee +0 -5
  176. data/lib/assets/javascripts/unpoly/bus.coffee.erb +0 -518
  177. data/lib/assets/javascripts/unpoly/classes/extract_step.coffee +0 -4
  178. data/lib/assets/javascripts/unpoly/classes/motion_tracker.coffee +0 -125
  179. data/lib/assets/javascripts/unpoly/params.coffee.erb +0 -522
  180. data/spec_app/spec/javascripts/helpers/append_fixture.js.coffee +0 -8
  181. data/spec_app/spec/javascripts/up/bus_spec.js.coffee +0 -210
  182. data/spec_app/spec/javascripts/up/namespace_spec.js.coffee +0 -9
  183. data/spec_app/spec/javascripts/up/params_spec.coffee +0 -768
  184. data/spec_app/vendor/asset-libs/jasmine-fixture-1.3.4/jasmine-fixture.js +0 -433
  185. data/spec_app/vendor/asset-libs/jasmine-jquery-2.1.1/.bower.json +0 -26
  186. data/spec_app/vendor/asset-libs/jasmine-jquery-2.1.1/jasmine-jquery.js +0 -838
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unpoly-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.57.0
4
+ version: 0.60.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henning Koch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-27 00:00:00.000000000 Z
11
+ date: 2019-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -74,12 +74,17 @@ files:
74
74
  - design/design.txt
75
75
  - design/draft.html.erb
76
76
  - design/draft.rb
77
+ - design/es6.js
77
78
  - design/ghost-debugging.txt
78
79
  - design/homepage.txt
80
+ - design/ie11.txt
79
81
  - design/measure_import_node.js
82
+ - design/measure_jquery/element_list.js
83
+ - design/measure_jquery/up.on_vs_addEventListener.js
80
84
  - design/positioning.txt
81
85
  - design/rename.txt
82
86
  - design/test_rejected_promise.txt
87
+ - design/todo_jquery.txt
83
88
  - design/unpoly errors.txt
84
89
  - dist/unpoly-bootstrap3.css
85
90
  - dist/unpoly-bootstrap3.js
@@ -92,40 +97,50 @@ files:
92
97
  - lib/assets/javascripts/unpoly-bootstrap3.coffee
93
98
  - lib/assets/javascripts/unpoly-bootstrap3/feedback-ext.coffee
94
99
  - lib/assets/javascripts/unpoly-bootstrap3/form-ext.coffee
95
- - lib/assets/javascripts/unpoly-bootstrap3/layout-ext.coffee
96
100
  - lib/assets/javascripts/unpoly-bootstrap3/modal-ext.coffee
101
+ - lib/assets/javascripts/unpoly-bootstrap3/viewport-ext.coffee
97
102
  - lib/assets/javascripts/unpoly.coffee
98
103
  - lib/assets/javascripts/unpoly/browser.coffee.erb
99
- - lib/assets/javascripts/unpoly/bus.coffee.erb
104
+ - lib/assets/javascripts/unpoly/classes/body_shifter.coffee
100
105
  - lib/assets/javascripts/unpoly/classes/cache.coffee
101
106
  - lib/assets/javascripts/unpoly/classes/compile_pass.coffee
107
+ - lib/assets/javascripts/unpoly/classes/config.coffee
102
108
  - lib/assets/javascripts/unpoly/classes/css_transition.coffee
109
+ - lib/assets/javascripts/unpoly/classes/divertible_chain.coffee
110
+ - lib/assets/javascripts/unpoly/classes/event_listener.coffee
103
111
  - lib/assets/javascripts/unpoly/classes/extract_cascade.coffee
104
112
  - lib/assets/javascripts/unpoly/classes/extract_plan.coffee
105
- - lib/assets/javascripts/unpoly/classes/extract_step.coffee
106
113
  - lib/assets/javascripts/unpoly/classes/field_observer.coffee
107
- - lib/assets/javascripts/unpoly/classes/focus_tracker.coffee
114
+ - lib/assets/javascripts/unpoly/classes/focus_follower.coffee
108
115
  - lib/assets/javascripts/unpoly/classes/follow_variant.coffee
109
116
  - lib/assets/javascripts/unpoly/classes/html_parser.coffee
110
- - lib/assets/javascripts/unpoly/classes/motion_tracker.coffee
117
+ - lib/assets/javascripts/unpoly/classes/motion_controller.coffee
118
+ - lib/assets/javascripts/unpoly/classes/params.coffee.erb
111
119
  - lib/assets/javascripts/unpoly/classes/record.coffee
120
+ - lib/assets/javascripts/unpoly/classes/rect.js
112
121
  - lib/assets/javascripts/unpoly/classes/request.coffee
113
122
  - lib/assets/javascripts/unpoly/classes/response.coffee
123
+ - lib/assets/javascripts/unpoly/classes/reveal_motion.coffee
124
+ - lib/assets/javascripts/unpoly/classes/scroll_motion.coffee
125
+ - lib/assets/javascripts/unpoly/classes/selector.coffee
114
126
  - lib/assets/javascripts/unpoly/classes/store/memory.coffee
115
127
  - lib/assets/javascripts/unpoly/classes/store/session.coffee
128
+ - lib/assets/javascripts/unpoly/classes/tether.coffee
116
129
  - lib/assets/javascripts/unpoly/classes/url_set.coffee
117
130
  - lib/assets/javascripts/unpoly/cookie.coffee
118
- - lib/assets/javascripts/unpoly/dom.coffee.erb
131
+ - lib/assets/javascripts/unpoly/element.coffee.erb
132
+ - lib/assets/javascripts/unpoly/event.coffee.erb
119
133
  - lib/assets/javascripts/unpoly/feedback.coffee
120
134
  - lib/assets/javascripts/unpoly/form.coffee.erb
135
+ - lib/assets/javascripts/unpoly/fragment.coffee.erb
136
+ - lib/assets/javascripts/unpoly/framework.coffee
121
137
  - lib/assets/javascripts/unpoly/history.coffee
122
- - lib/assets/javascripts/unpoly/layout.coffee.erb
138
+ - lib/assets/javascripts/unpoly/legacy.coffee
123
139
  - lib/assets/javascripts/unpoly/link.coffee.erb
124
140
  - lib/assets/javascripts/unpoly/log.coffee
125
141
  - lib/assets/javascripts/unpoly/modal.coffee.erb
126
142
  - lib/assets/javascripts/unpoly/motion.coffee.erb
127
143
  - lib/assets/javascripts/unpoly/namespace.coffee.erb
128
- - lib/assets/javascripts/unpoly/params.coffee.erb
129
144
  - lib/assets/javascripts/unpoly/popup.coffee.erb
130
145
  - lib/assets/javascripts/unpoly/protocol.coffee
131
146
  - lib/assets/javascripts/unpoly/proxy.coffee
@@ -135,11 +150,13 @@ files:
135
150
  - lib/assets/javascripts/unpoly/toast.coffee
136
151
  - lib/assets/javascripts/unpoly/tooltip.coffee
137
152
  - lib/assets/javascripts/unpoly/util.coffee.erb
153
+ - lib/assets/javascripts/unpoly/viewport.coffee.erb
138
154
  - lib/assets/stylesheets/unpoly-bootstrap3.sass
139
155
  - lib/assets/stylesheets/unpoly-bootstrap3/modal-ext.sass
140
156
  - lib/assets/stylesheets/unpoly.sass
141
157
  - lib/assets/stylesheets/unpoly/close.sass
142
158
  - lib/assets/stylesheets/unpoly/dom.sass
159
+ - lib/assets/stylesheets/unpoly/layout.sass
143
160
  - lib/assets/stylesheets/unpoly/link.sass
144
161
  - lib/assets/stylesheets/unpoly/modal.sass
145
162
  - lib/assets/stylesheets/unpoly/popup.sass
@@ -183,6 +200,7 @@ files:
183
200
  - spec_app/app/controllers/pages_controller.rb
184
201
  - spec_app/app/controllers/replace_test_controller.rb
185
202
  - spec_app/app/controllers/reveal_test_controller.rb
203
+ - spec_app/app/controllers/scroll_test_controller.rb
186
204
  - spec_app/app/helpers/application_helper.rb
187
205
  - spec_app/app/mailers/.keep
188
206
  - spec_app/app/models/concerns/.keep
@@ -214,6 +232,9 @@ files:
214
232
  - spec_app/app/views/replace_test/page2.erb
215
233
  - spec_app/app/views/reveal_test/long1.erb
216
234
  - spec_app/app/views/reveal_test/long2.erb
235
+ - spec_app/app/views/reveal_test/within_document_viewport.erb
236
+ - spec_app/app/views/reveal_test/within_overflowing_div_viewport.erb
237
+ - spec_app/app/views/scroll_test/long1.erb
217
238
  - spec_app/bin/bundle
218
239
  - spec_app/bin/rails
219
240
  - spec_app/bin/rake
@@ -253,11 +274,12 @@ files:
253
274
  - spec_app/script/cucumber
254
275
  - spec_app/spec/controllers/binding_test_controller_spec.rb
255
276
  - spec_app/spec/javascripts/helpers/agent_detector.coffee
256
- - spec_app/spec/javascripts/helpers/append_fixture.js.coffee
257
277
  - spec_app/spec/javascripts/helpers/async_sequence.js.coffee
258
278
  - spec_app/spec/javascripts/helpers/browser_switches.js.coffee
259
279
  - spec_app/spec/javascripts/helpers/enable_logging.js.coffee
280
+ - spec_app/spec/javascripts/helpers/fixture.js.coffee
260
281
  - spec_app/spec/javascripts/helpers/index.js.coffee
282
+ - spec_app/spec/javascripts/helpers/jquery_no_conflict.js
261
283
  - spec_app/spec/javascripts/helpers/knife.js.coffee
262
284
  - spec_app/spec/javascripts/helpers/last_request.js.coffee
263
285
  - spec_app/spec/javascripts/helpers/mock_ajax.js.coffee
@@ -271,23 +293,35 @@ files:
271
293
  - spec_app/spec/javascripts/helpers/reset_up.js.coffee
272
294
  - spec_app/spec/javascripts/helpers/restore_body_scroll.js.coffee
273
295
  - spec_app/spec/javascripts/helpers/show_lib_versions.coffee
296
+ - spec_app/spec/javascripts/helpers/spec_util.coffee
274
297
  - spec_app/spec/javascripts/helpers/to_be_around.js.coffee
298
+ - spec_app/spec/javascripts/helpers/to_be_array.coffee
275
299
  - spec_app/spec/javascripts/helpers/to_be_attached.coffee
276
300
  - spec_app/spec/javascripts/helpers/to_be_blank.js.coffee
277
301
  - spec_app/spec/javascripts/helpers/to_be_detached.coffee
302
+ - spec_app/spec/javascripts/helpers/to_be_element.js.coffee
278
303
  - spec_app/spec/javascripts/helpers/to_be_error.coffee
279
304
  - spec_app/spec/javascripts/helpers/to_be_given.js.coffee
305
+ - spec_app/spec/javascripts/helpers/to_be_hidden.js.coffee
280
306
  - spec_app/spec/javascripts/helpers/to_be_jquery.js.coffee
281
307
  - spec_app/spec/javascripts/helpers/to_be_missing.js.coffee
282
308
  - spec_app/spec/javascripts/helpers/to_be_present.js.coffee
283
309
  - spec_app/spec/javascripts/helpers/to_be_scrolled_to.coffee
310
+ - spec_app/spec/javascripts/helpers/to_be_visible.js.coffee
284
311
  - spec_app/spec/javascripts/helpers/to_contain.js.coffee
285
312
  - spec_app/spec/javascripts/helpers/to_end_with.js.coffee
286
313
  - spec_app/spec/javascripts/helpers/to_equal_jquery.js.coffee
314
+ - spec_app/spec/javascripts/helpers/to_equal_node_list.coffee
315
+ - spec_app/spec/javascripts/helpers/to_equal_via_is_equal.js.coffee
316
+ - spec_app/spec/javascripts/helpers/to_have_class.js.coffee
317
+ - spec_app/spec/javascripts/helpers/to_have_descendant.js.coffee
318
+ - spec_app/spec/javascripts/helpers/to_have_length.js.coffee
287
319
  - spec_app/spec/javascripts/helpers/to_have_opacity.coffee
288
320
  - spec_app/spec/javascripts/helpers/to_have_own_property.js.coffee
289
321
  - spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee
322
+ - spec_app/spec/javascripts/helpers/to_have_text.js.coffee
290
323
  - spec_app/spec/javascripts/helpers/to_have_unhandled_rejections.coffee
324
+ - spec_app/spec/javascripts/helpers/to_match_list.coffee
291
325
  - spec_app/spec/javascripts/helpers/to_match_selector.coffee
292
326
  - spec_app/spec/javascripts/helpers/to_match_text.js.coffee
293
327
  - spec_app/spec/javascripts/helpers/to_match_url.coffee
@@ -295,31 +329,38 @@ files:
295
329
  - spec_app/spec/javascripts/helpers/wait_until_dom_ready.js.coffee
296
330
  - spec_app/spec/javascripts/support/jasmine.yml
297
331
  - spec_app/spec/javascripts/up/browser_spec.js.coffee
298
- - spec_app/spec/javascripts/up/bus_spec.js.coffee
299
332
  - spec_app/spec/javascripts/up/classes/cache_spec.js.coffee
333
+ - spec_app/spec/javascripts/up/classes/config_spec.coffee
334
+ - spec_app/spec/javascripts/up/classes/divertible_chain_spec.coffee
300
335
  - spec_app/spec/javascripts/up/classes/focus_tracker_spec.coffee
336
+ - spec_app/spec/javascripts/up/classes/params_spec.coffee
301
337
  - spec_app/spec/javascripts/up/classes/request_spec.coffee
338
+ - spec_app/spec/javascripts/up/classes/scroll_motion_spec.js.coffee
302
339
  - spec_app/spec/javascripts/up/classes/store/memory_spec.js.coffee
303
340
  - spec_app/spec/javascripts/up/classes/store/session_spec.js.coffee
304
- - spec_app/spec/javascripts/up/dom_spec.js.coffee
341
+ - spec_app/spec/javascripts/up/element_spec.coffee
342
+ - spec_app/spec/javascripts/up/event_spec.js.coffee
305
343
  - spec_app/spec/javascripts/up/feedback_spec.js.coffee
306
344
  - spec_app/spec/javascripts/up/form_spec.js.coffee
345
+ - spec_app/spec/javascripts/up/fragment_spec.js.coffee
307
346
  - spec_app/spec/javascripts/up/history_spec.js.coffee
308
- - spec_app/spec/javascripts/up/layout_spec.js.coffee
347
+ - spec_app/spec/javascripts/up/jquery_spec.js.coffee
348
+ - spec_app/spec/javascripts/up/legacy_spec.js.coffee
309
349
  - spec_app/spec/javascripts/up/link_spec.js.coffee
310
350
  - spec_app/spec/javascripts/up/log_spec.js.coffee
311
351
  - spec_app/spec/javascripts/up/modal_spec.js.coffee
312
352
  - spec_app/spec/javascripts/up/motion_spec.js.coffee
313
- - spec_app/spec/javascripts/up/namespace_spec.js.coffee
314
- - spec_app/spec/javascripts/up/params_spec.coffee
315
353
  - spec_app/spec/javascripts/up/popup_spec.js.coffee
316
354
  - spec_app/spec/javascripts/up/protocol_spec.js.coffee
317
355
  - spec_app/spec/javascripts/up/proxy_spec.js.coffee
318
356
  - spec_app/spec/javascripts/up/radio_spec.js.coffee
319
357
  - spec_app/spec/javascripts/up/rails_spec.js.coffee
358
+ - spec_app/spec/javascripts/up/spec_spec.js.coffee
320
359
  - spec_app/spec/javascripts/up/syntax_spec.js.coffee
360
+ - spec_app/spec/javascripts/up/toast_spec.js.coffee
321
361
  - spec_app/spec/javascripts/up/tooltip_spec.js.coffee
322
362
  - spec_app/spec/javascripts/up/util_spec.js.coffee
363
+ - spec_app/spec/javascripts/up/viewport_spec.js.coffee
323
364
  - spec_app/spec/spec_helper.rb
324
365
  - spec_app/test/controllers/.keep
325
366
  - spec_app/test/fixtures/.keep
@@ -335,9 +376,6 @@ files:
335
376
  - spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.pairs
336
377
  - spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/.travis.yml
337
378
  - spec_app/vendor/asset-libs/jasmine-ajax-3.3.1/jasmine-ajax.js
338
- - spec_app/vendor/asset-libs/jasmine-fixture-1.3.4/jasmine-fixture.js
339
- - spec_app/vendor/asset-libs/jasmine-jquery-2.1.1/.bower.json
340
- - spec_app/vendor/asset-libs/jasmine-jquery-2.1.1/jasmine-jquery.js
341
379
  - spec_app/vendor/assets/.keep
342
380
  - unpoly-rails.gemspec
343
381
  homepage: ''
@@ -1,5 +0,0 @@
1
- up.layout.config.fixedTop.push('.navbar-fixed-top')
2
- up.layout.config.fixedBottom.push('.navbar-fixed-bottom')
3
- up.layout.config.anchoredRight.push('.navbar-fixed-top')
4
- up.layout.config.anchoredRight.push('.navbar-fixed-bottom')
5
- up.layout.config.anchoredRight.push('.footer')
@@ -1,518 +0,0 @@
1
- ###**
2
- Events
3
- ======
4
-
5
- Most Unpoly interactions emit DOM events that are prefixed with `up:`.
6
-
7
- $(document).on('up:modal:opened', function(event) {
8
- console.log('A new modal has just opened!');
9
- });
10
-
11
- Events often have both present ([`up:modal:open`](/up:modal:open))
12
- and past forms ([`up:modal:opened`](/up:modal:opened)).
13
-
14
-
15
- \#\#\# Preventing events
16
-
17
- You can prevent most present form events by calling `preventDefault()`:
18
-
19
- $(document).on('up:modal:open', function(event) {
20
- if (event.url == '/evil') {
21
- // Prevent the modal from opening
22
- event.preventDefault();
23
- }
24
- });
25
-
26
-
27
- \#\#\# A better way to bind event listeners
28
-
29
- Instead of using jQuery to bind an event handler to `document`, you can also
30
- use the more convenient [`up.on()`](/up.on):
31
-
32
- up.on('click', 'button', function(event, $button) {
33
- // $button is a jQuery collection containing
34
- // the clicked <button> element
35
- });
36
-
37
- This improves jQuery's [`on`](http://api.jquery.com/on/) in multiple ways:
38
-
39
- - Event listeners on [unsupported browsers](/up.browser.isSupported) are silently discarded,
40
- leaving you with an application without JavaScript. This is typically preferable to
41
- a soup of randomly broken JavaScript in ancient browsers.
42
- - A jQuery object with the target element is automatically passed to the event handler
43
- as a second argument. You no longer need to write `$(this)` in the handler function.
44
- - You use an [`up-data`](/up-data) attribute to [attach structured data](/up.on#attaching-structured-data)
45
- to observed elements.
46
-
47
- @class up.bus
48
- ###
49
- up.bus = (($) ->
50
-
51
- u = up.util
52
-
53
- # We remember which argument lists have been passed to `up.on()`
54
- # so we can clean out the listener registry between tests.
55
- liveUpDescriptions = {}
56
- nextUpDescriptionNumber = 0
57
-
58
- # A hash mapping oldEventName => newEventName
59
- renamedEvents = {}
60
-
61
- ###**
62
- Convert an Unpoly style listener (second argument is the event target
63
- as a jQuery collection) to a vanilla jQuery listener
64
-
65
- @function upListenerToJqueryListener
66
- @internal
67
- ###
68
- upListenerToJqueryListener = (upListener) ->
69
- (event) ->
70
- $me = event.$element || $(this)
71
- args = [event, $me]
72
-
73
- # Do not retrieve and parse [up-data] unless the listener function
74
- # expects a third argument. Note that we must pass data for an argument
75
- # count of 0, since then the function might take varargs.
76
- expectedArgCount = upListener.length
77
- unless expectedArgCount == 1 || expectedArgCount == 2
78
- args.push(up.syntax.data($me))
79
-
80
- upListener.apply($me.get(0), args)
81
-
82
- ###**
83
- Converts an argument list for `up.on()` to an argument list for `jQuery.on`.
84
- This involves rewriting the listener signature in the last argument slot.
85
-
86
- @function upDescriptionToJqueryDescription
87
- @internal
88
- ###
89
- upDescriptionToJqueryDescription = (upDescription, isNew) ->
90
- jqueryDescription = u.copy(upDescription)
91
-
92
- # Prefer to rename events in the copied jQuery description instead of
93
- # changing the original up description.
94
- fixRenamedEvents(jqueryDescription)
95
-
96
- # We remove the listener function from the end of the description.
97
- # We will re-push it to the description at the end.
98
- upListener = jqueryDescription.pop()
99
- jqueryListener = undefined
100
- if isNew
101
- jqueryListener = upListenerToJqueryListener(upListener)
102
- upListener._asJqueryListener = jqueryListener
103
- if upListener._descriptionNumber
104
- up.fail('up.on(): The callback %o cannot be registered more than once')
105
- upListener._descriptionNumber = ++nextUpDescriptionNumber
106
- else
107
- jqueryListener = upListener._asJqueryListener
108
- jqueryListener or up.fail('up.off(): The callback %o was never registered through up.on()', upListener)
109
- jqueryDescription.push(jqueryListener)
110
- jqueryDescription
111
-
112
- fixRenamedEvents = (description) ->
113
- events = u.splitValues(description[0])
114
- events = u.map events, (event) ->
115
- if newEvent = renamedEvents[event]
116
- up.warn("Deprecated: #{event} has been renamed to #{newEvent}")
117
- newEvent
118
- else
119
- event
120
- description[0] = events.join(' ')
121
-
122
- ###**
123
- Listens to an event on `document`.
124
-
125
- The given event listener which will be executed whenever the
126
- given event is [triggered](/up.emit) on the given selector:
127
-
128
- up.on('click', '.button', function(event, $element) {
129
- console.log("Someone clicked the button %o", $element);
130
- });
131
-
132
- This is roughly equivalent to binding an event listener to `document`:
133
-
134
- $(document).on('click', '.button', function(event) {
135
- console.log("Someone clicked the button %o", $(this));
136
- });
137
-
138
- Other than jQuery, Unpoly will silently discard event listeners
139
- on [unsupported browsers](/up.browser.isSupported).
140
-
141
- \#\#\# Attaching structured data
142
-
143
- In case you want to attach structured data to the event you're observing,
144
- you can serialize the data to JSON and put it into an `[up-data]` attribute:
145
-
146
- <span class='person' up-data='{ "age": 18, "name": "Bob" }'>Bob</span>
147
- <span class='person' up-data='{ "age": 22, "name": "Jim" }'>Jim</span>
148
-
149
- The JSON will parsed and handed to your event handler as a third argument:
150
-
151
- up.on('click', '.person', function(event, $element, data) {
152
- console.log("This is %o who is %o years old", data.name, data.age);
153
- });
154
-
155
- \#\#\# Unbinding an event listener
156
-
157
- `up.on()` returns a function that unbinds the event listeners when called:
158
-
159
- // Define the listener
160
- var listener = function() { ... };
161
-
162
- // Binding the listener returns an unbind function
163
- unbind = up.on('click', listener);
164
-
165
- // Unbind the listener
166
- unbind()
167
-
168
- There is also a function [`up.off()`](/up.off) which you can use for the same purpose:
169
-
170
- // Define the listener
171
- var listener = function() { ... };
172
-
173
- // Bind the listener
174
- up.on('click', listener);
175
-
176
- // Unbind the listener
177
- up.off('click', listener)
178
-
179
- \#\#\# Migrating jQuery event handlers to `up.on()`
180
-
181
- Within the event handler, Unpoly will bind `this` to the
182
- native DOM element to help you migrate your existing jQuery code to
183
- this new syntax.
184
-
185
- So if you had this before:
186
-
187
- $(document).on('click', '.button', function() {
188
- $(this).something();
189
- });
190
-
191
- ... you can simply copy the event handler to `up.on()`:
192
-
193
- up.on('click', '.button', function() {
194
- $(this).something();
195
- });
196
-
197
- @function up.on
198
- @param {string} events
199
- A space-separated list of event names to bind.
200
- @param {string} [selector]
201
- The selector of an element on which the event must be triggered.
202
- Omit the selector to listen to all events with that name, regardless
203
- of the event target.
204
- @param {Function(event, $element, data)} behavior
205
- The handler that should be called.
206
- The function takes the affected element as the first argument (as a jQuery object).
207
- If the element has an [`up-data`](/up-data) attribute, its value is parsed as JSON
208
- and passed as a second argument.
209
- @return {Function}
210
- A function that unbinds the event listeners when called.
211
- @stable
212
- ###
213
- live = (upDescription...) ->
214
- # Silently discard any event handlers that are registered on unsupported
215
- # browsers and return a no-op destructor
216
- return (->) unless up.browser.isSupported()
217
-
218
- # Convert the args for up.on to an argument list as expected by jQuery.on.
219
- jqueryDescription = upDescriptionToJqueryDescription(upDescription, true)
220
-
221
- # Remember the descriptions we registered, so we can
222
- # clean up after ourselves during a `reset`
223
- rememberUpDescription(upDescription)
224
-
225
- $(document).on(jqueryDescription...)
226
-
227
- # Return destructor
228
- -> unbind(upDescription...)
229
-
230
- ###**
231
- Unbinds an event listener previously bound with [`up.on()`](/up.on).
232
-
233
- \#\#\# Example
234
-
235
- Let's say you are listing to clicks on `.button` elements:
236
-
237
- var listener = function() { ... };
238
- up.on('click', '.button', listener);
239
-
240
- You can stop listening to these events like this:
241
-
242
- up.off('click', '.button', listener);
243
-
244
- Note that you need to pass `up.off()` a reference to the same listener function
245
- that was passed to `up.on()` earlier.
246
-
247
- @function up.off
248
- @stable
249
- ###
250
- unbind = (upDescription...) ->
251
- jqueryDescription = upDescriptionToJqueryDescription(upDescription, false)
252
- forgetUpDescription(upDescription)
253
- $(document).off(jqueryDescription...)
254
-
255
- rememberUpDescription = (upDescription) ->
256
- number = upDescriptionNumber(upDescription)
257
- liveUpDescriptions[number] = upDescription
258
-
259
- forgetUpDescription = (upDescription) ->
260
- number = upDescriptionNumber(upDescription)
261
- upListener = u.last(upDescription)
262
- delete upListener._descriptionNumber
263
- delete upListener._asJqueryListener
264
- delete liveUpDescriptions[number]
265
-
266
- upDescriptionNumber = (upDescription) ->
267
- u.last(upDescription)._descriptionNumber
268
-
269
- ###**
270
- Emits a event with the given name and properties.
271
-
272
- The event will be triggered as a jQuery event on `document`.
273
-
274
- Other code can subscribe to events with that name using
275
- [`up.on()`](/up.on) or by [binding a jQuery event listener](http://api.jquery.com/on/) to `document`.
276
-
277
- \#\#\# Example
278
-
279
- up.on('my:event', function(event) {
280
- console.log(event.foo);
281
- });
282
-
283
- up.emit('my:event', { foo: 'bar' });
284
- # Prints "bar" to the console
285
-
286
- @function up.emit
287
- @param {string} eventName
288
- The name of the event.
289
- @param {Object} [eventProps={}]
290
- A list of properties to become part of the event object
291
- that will be passed to listeners. Note that the event object
292
- will by default include properties like `preventDefault()`
293
- or `stopPropagation()`.
294
- @param {jQuery} [eventProps.$element=$(document)]
295
- The element on which the event is triggered.
296
- @param {string|Array} [eventProps.message]
297
- A message to print to the console when the event is emitted.
298
- If omitted, a default message is printed.
299
- Set this to `false` to prevent any console output.
300
- @experimental
301
- ###
302
- emit = (eventName, eventProps = {}) ->
303
- event = $.Event(eventName, eventProps)
304
- # Three cases:
305
- # - Event is triggered on document (default)
306
- # - Event is triggered on { $element }
307
- # - Event is triggered on { $target }, but should have an { $element } property
308
- $target = eventProps.$target || eventProps.$element || $(document)
309
- logEmission(eventName, eventProps)
310
- $target.trigger(event)
311
- event
312
-
313
- logEmission = (eventName, eventProps) ->
314
- if eventProps.hasOwnProperty('message')
315
- niceMessage = eventProps.message
316
- delete eventProps.message
317
- if niceMessage != false
318
- if u.isArray(niceMessage)
319
- [niceMessage, niceMessageArgs...] = niceMessage
320
- else
321
- niceMessageArgs = []
322
- if niceMessage
323
- if u.isPresent(eventProps)
324
- up.puts "#{niceMessage} (%s (%o))", niceMessageArgs..., eventName, eventProps
325
- else
326
- up.puts "#{niceMessage} (%s)", niceMessageArgs..., eventName
327
- else
328
- if u.isPresent(eventProps)
329
- up.puts 'Emitted event %s (%o)', eventName, eventProps
330
- else
331
- up.puts 'Emitted event %s', eventName
332
-
333
- ###**
334
- [Emits an event](/up.emit) and returns whether no listener
335
- has prevented the default action.
336
-
337
- @function up.bus.nobodyPrevents
338
- @param {string} eventName
339
- @param {Object} eventProps
340
- @param {string|Array} [eventProps.message]
341
- @return {boolean}
342
- whether no listener has prevented the default action
343
- @experimental
344
- ###
345
- nobodyPrevents = (args...) ->
346
- event = emit(args...)
347
- not event.isDefaultPrevented()
348
-
349
- ###**
350
- [Emits](/up.emit) the given event and returns a promise
351
- that will be fulfilled if no listener has prevented the default action.
352
-
353
- If any listener prevented the default listener
354
- the returned promise will never be resolved.
355
-
356
- @function up.bus.whenEmitted
357
- @param {string} eventName
358
- @param {Object} eventProps
359
- @param {string|Array} [eventProps.message]
360
- @return {Promise}
361
- @internal
362
- ###
363
- whenEmitted = (args...) ->
364
- new Promise (resolve, reject) ->
365
- if nobodyPrevents(args...)
366
- resolve()
367
- else
368
- reject(new Error("Event #{args[0]} was prevented"))
369
-
370
- ###**
371
- Registers an event listener to be called when the user
372
- presses the `Escape` key.
373
-
374
- @function up.bus.onEscape
375
- @param {Function} listener
376
- The listener function to register.
377
- @return {Function}
378
- A function that unbinds the event listeners when called.
379
- @experimental
380
- ###
381
- onEscape = (listener) ->
382
- live('keydown', 'body', (event) ->
383
- if u.escapePressed(event)
384
- listener(event)
385
- )
386
-
387
- ###**
388
- Stops the given event from propagating and prevents the default action.
389
-
390
- @function up.bus.haltEvent
391
- @internal
392
- ###
393
- haltEvent = (event) ->
394
- event.stopImmediatePropagation()
395
- event.stopPropagation()
396
- event.preventDefault()
397
-
398
- ###**
399
- @function up.bus.consumeAction
400
- @internal
401
- ###
402
- consumeAction = (event) ->
403
- # Halt the event chain to stop duplicate processing of this user interaction.
404
- haltEvent(event)
405
- unless event.type == 'up:action:consumed'
406
- # Although we have consumed this action and halted the event chain,
407
- # other components might still need to react. E.g. a popup needs to close when
408
- # an outside link consumes the user click. So we emit another event for that.
409
- emit('up:action:consumed', $element: $(event.target), message: false)
410
-
411
- ###**
412
- Makes a snapshot of the currently registered event listeners,
413
- to later be restored through [`up.bus.reset()`](/up.bus.reset).
414
-
415
- @internal
416
- ###
417
- snapshot = ->
418
- for number, description of liveUpDescriptions
419
- description.isDefault = true
420
-
421
- resetBus = ->
422
- # Resets the list of registered event listeners to the
423
- # moment when the framework was booted.
424
-
425
- # Copy a list of the descriptions we're going to unbind and iterate over
426
- # them a second time below. This way we avoid manipulate the object we're
427
- # iterating over.
428
- doomedDescriptions = []
429
- for number, description of liveUpDescriptions
430
- doomedDescriptions.push(description) unless description.isDefault
431
-
432
- for description in doomedDescriptions
433
- unbind(description...)
434
-
435
- ###**
436
- Resets Unpoly to the state when it was booted.
437
- All custom event handlers, animations, etc. that have been registered
438
- will be discarded.
439
-
440
- This is an internal method for to enable unit testing.
441
- Don't use this in production.
442
-
443
- Emits event [`up:framework:reset`](/up:framework:reset).
444
-
445
- @function up.reset
446
- @experimental
447
- ###
448
- emitReset = ->
449
- emit('up:framework:reset', message: 'Resetting framework')
450
- # Unfortunately we cannot reset up.protocol via event
451
- # without introducing cycles in the asset load order
452
- up.protocol.reset()
453
-
454
- ###**
455
- This event is [emitted](/up.emit) when Unpoly is [reset](/up.reset) during unit tests.
456
-
457
- @event up:framework:reset
458
- @experimental
459
- ###
460
-
461
- deprecateRenamedEvent = (oldEvent, newEvent) ->
462
- renamedEvents[oldEvent] = newEvent
463
-
464
- ###**
465
- Boots the Unpoly framework.
466
-
467
- **This is called automatically** by including the Unpoly JavaScript files.
468
-
469
- Unpoly will not boot if the current browser is [not supported](/up.browser.isSupported).
470
- This leaves you with a classic server-side application on legacy browsers.
471
-
472
- @function up.boot
473
- @internal
474
- ###
475
- boot = ->
476
- if up.browser.isSupported()
477
- emit('up:framework:boot', message: 'Booting framework')
478
- # Unpoly modules now snapshot themselves to support reset()
479
- emit('up:framework:booted', message: 'Framework booted')
480
- u.nextFrame ->
481
- # At this point all user-provided compilers have been registered.
482
- u.whenReady().then ->
483
- # The following event will cause Unpoly to compile the <body>
484
- emit('up:app:boot', message: 'Booting user application')
485
- emit('up:app:booted', message: 'User application booted')
486
- else
487
- console.log?("Unpoly doesn't support this browser. Framework was not booted.")
488
-
489
- ###**
490
- This event is [emitted](/up.emit) when Unpoly [starts to boot](/up.boot).
491
-
492
- @event up:framework:boot
493
- @internal
494
- ###
495
-
496
- live 'up:framework:booted', snapshot
497
- live 'up:framework:reset', resetBus
498
-
499
- <% if ENV['JS_KNIFE'] %>knife: eval(Knife.point)<% end %>
500
- on: live # can't name symbols `on` in Coffeescript
501
- off: unbind # can't name symbols `off` in Coffeescript
502
- emit: emit
503
- nobodyPrevents: nobodyPrevents
504
- whenEmitted: whenEmitted
505
- onEscape: onEscape
506
- emitReset: emitReset
507
- haltEvent: haltEvent
508
- consumeAction: consumeAction
509
- deprecateRenamedEvent: deprecateRenamedEvent
510
- boot: boot
511
-
512
- )(jQuery)
513
-
514
- up.on = up.bus.on
515
- up.off = up.bus.off
516
- up.emit = up.bus.emit
517
- up.reset = up.bus.emitReset
518
- up.boot = up.bus.boot