unpoly-rails 0.54.0 → 0.54.1

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/Rakefile +19 -0
  4. data/dist/unpoly.js +380 -390
  5. data/dist/unpoly.min.js +3 -4
  6. data/lib/assets/javascripts/unpoly/{browser.coffee → browser.coffee.erb} +20 -20
  7. data/lib/assets/javascripts/unpoly/{bus.coffee → bus.coffee.erb} +17 -17
  8. data/lib/assets/javascripts/unpoly/classes/cache.coffee +2 -2
  9. data/lib/assets/javascripts/unpoly/classes/extract_plan.coffee +1 -1
  10. data/lib/assets/javascripts/unpoly/classes/motion_tracker.coffee +3 -3
  11. data/lib/assets/javascripts/unpoly/classes/request.coffee +9 -9
  12. data/lib/assets/javascripts/unpoly/classes/response.coffee +11 -11
  13. data/lib/assets/javascripts/unpoly/{dom.coffee → dom.coffee.erb} +18 -18
  14. data/lib/assets/javascripts/unpoly/feedback.coffee +8 -8
  15. data/lib/assets/javascripts/unpoly/{form.coffee → form.coffee.erb} +20 -20
  16. data/lib/assets/javascripts/unpoly/history.coffee +12 -12
  17. data/lib/assets/javascripts/unpoly/{layout.coffee → layout.coffee.erb} +23 -23
  18. data/lib/assets/javascripts/unpoly/{link.coffee → link.coffee.erb} +18 -18
  19. data/lib/assets/javascripts/unpoly/log.coffee +9 -9
  20. data/lib/assets/javascripts/unpoly/{modal.coffee → modal.coffee.erb} +22 -22
  21. data/lib/assets/javascripts/unpoly/motion.coffee +14 -14
  22. data/lib/assets/javascripts/unpoly/namespace.coffee.erb +1 -1
  23. data/lib/assets/javascripts/unpoly/{popup.coffee → popup.coffee.erb} +15 -15
  24. data/lib/assets/javascripts/unpoly/protocol.coffee +6 -6
  25. data/lib/assets/javascripts/unpoly/proxy.coffee +20 -20
  26. data/lib/assets/javascripts/unpoly/radio.coffee +4 -4
  27. data/lib/assets/javascripts/unpoly/rails.coffee +1 -1
  28. data/lib/assets/javascripts/unpoly/syntax.coffee +10 -10
  29. data/lib/assets/javascripts/unpoly/toast.coffee +1 -1
  30. data/lib/assets/javascripts/unpoly/tooltip.coffee +7 -7
  31. data/lib/assets/javascripts/unpoly/util.coffee +107 -107
  32. data/lib/unpoly/rails/version.rb +1 -1
  33. data/package.json +1 -1
  34. data/spec_app/Gemfile.lock +1 -1
  35. data/spec_app/config/application.rb +2 -0
  36. data/spec_app/spec/javascripts/helpers/to_have_unhandled_rejections.coffee +3 -0
  37. data/spec_app/spec/javascripts/up/form_spec.js.coffee +4 -3
  38. data/spec_app/spec/javascripts/up/link_spec.js.coffee +1 -1
  39. data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +1 -1
  40. metadata +10 -10
@@ -1,4 +1,4 @@
1
- ###*
1
+ ###**
2
2
  Application layout
3
3
  ==================
4
4
 
@@ -22,7 +22,7 @@ up.layout = (($) ->
22
22
 
23
23
  u = up.util
24
24
 
25
- ###*
25
+ ###**
26
26
  Configures the application layout.
27
27
 
28
28
  @property up.layout.config
@@ -76,7 +76,7 @@ up.layout = (($) ->
76
76
  lastScrollTops.clear()
77
77
  scrollingTracker.finish()
78
78
 
79
- ###*
79
+ ###**
80
80
  Scrolls the given viewport to the given Y-position.
81
81
 
82
82
  A "viewport" is an element that has scrollbars, e.g. `<body>` or
@@ -152,7 +152,7 @@ up.layout = (($) ->
152
152
  $scrollable.scrollTop(scrollTop)
153
153
  Promise.resolve()
154
154
 
155
- ###*
155
+ ###**
156
156
  Finishes scrolling animations in the given element, its ancestors or its descendants.
157
157
 
158
158
  @function up.layout.finishScrolling
@@ -164,14 +164,14 @@ up.layout = (($) ->
164
164
  $scrollable = scrollableElementForViewport(element)
165
165
  scrollingTracker.finish($scrollable)
166
166
 
167
- ###*
167
+ ###**
168
168
  @function up.layout.anchoredRight
169
169
  @internal
170
170
  ###
171
171
  anchoredRight = ->
172
172
  u.multiSelector(config.anchoredRight).select()
173
173
 
174
- ###*
174
+ ###**
175
175
  @function measureObstruction
176
176
  @return {Object}
177
177
  @internal
@@ -193,7 +193,7 @@ up.layout = (($) ->
193
193
  top: Math.max(0, fixedTopBottoms...)
194
194
  bottom: Math.max(0, fixedBottomTops...)
195
195
 
196
- ###*
196
+ ###**
197
197
  Scroll's the given element's viewport so the first rows of the
198
198
  element are visible for the user.
199
199
 
@@ -292,7 +292,7 @@ up.layout = (($) ->
292
292
  else
293
293
  Promise.resolve()
294
294
 
295
- ###*
295
+ ###**
296
296
  [Reveals](/up.reveal) an element matching the `#hash` in the current URL.
297
297
 
298
298
  Other than the default behavior found in browsers, `up.revealHash` works with
@@ -315,7 +315,7 @@ up.layout = (($) ->
315
315
  viewportSelector = ->
316
316
  u.multiSelector(config.viewports)
317
317
 
318
- ###*
318
+ ###**
319
319
  Returns the viewport for the given element.
320
320
 
321
321
  Throws an error if no viewport could be found.
@@ -331,7 +331,7 @@ up.layout = (($) ->
331
331
  up.fail("Could not find viewport for %o", $element)
332
332
  $viewport
333
333
 
334
- ###*
334
+ ###**
335
335
  Returns a jQuery collection of all the viewports contained within the
336
336
  given selector or element.
337
337
 
@@ -344,7 +344,7 @@ up.layout = (($) ->
344
344
  $element = $(selectorOrElement)
345
345
  viewportSelector().selectInSubtree($element)
346
346
 
347
- ###*
347
+ ###**
348
348
  Returns a jQuery collection of all the viewports on the screen.
349
349
 
350
350
  @function up.layout.viewports
@@ -360,7 +360,7 @@ up.layout = (($) ->
360
360
  else
361
361
  u.selectorForElement($viewport)
362
362
 
363
- ###*
363
+ ###**
364
364
  Returns a hash with scroll positions.
365
365
 
366
366
  Each key in the hash is a viewport selector. The corresponding
@@ -383,7 +383,7 @@ up.layout = (($) ->
383
383
  topsBySelector[key] = top
384
384
  topsBySelector
385
385
 
386
- ###*
386
+ ###**
387
387
  @function up.layout.fixedChildren
388
388
  @internal
389
389
  ###
@@ -395,7 +395,7 @@ up.layout = (($) ->
395
395
  $elements = $elements.add($root.find(config.fixedBottom.join(', '))) if u.isPresent(config.fixedBottom)
396
396
  $elements
397
397
 
398
- ###*
398
+ ###**
399
399
  Saves the top scroll positions of all the
400
400
  viewports configured in [`up.layout.config.viewports`](/up.layout.config).
401
401
 
@@ -415,7 +415,7 @@ up.layout = (($) ->
415
415
  tops = u.option(options.tops, scrollTops())
416
416
  lastScrollTops.set(url, tops)
417
417
 
418
- ###*
418
+ ###**
419
419
  Restores [previously saved](/up.layout.saveScroll) scroll positions of viewports
420
420
  viewports configured in [`up.layout.config.viewports`](/up.layout.config).
421
421
 
@@ -452,7 +452,7 @@ up.layout = (($) ->
452
452
 
453
453
  Promise.all(allScrollPromises)
454
454
 
455
- ###*
455
+ ###**
456
456
  @function up.layout.revealOrRestoreScroll
457
457
  @param {boolean} [options.restoreScroll]
458
458
  @param {boolean|string} [options.reveal]
@@ -486,7 +486,7 @@ up.layout = (($) ->
486
486
  # to fulfill this function's signature.
487
487
  return Promise.resolve()
488
488
 
489
- ###*
489
+ ###**
490
490
  @internal
491
491
  ###
492
492
  revealSelector = (selector, options) ->
@@ -497,7 +497,7 @@ up.layout = (($) ->
497
497
  selector += ", a[name='#{selector}']"
498
498
  selector
499
499
 
500
- ###*
500
+ ###**
501
501
  Marks this element as a scrolling container ("viewport").
502
502
 
503
503
  Apply this attribute if your app uses a custom panel layout with fixed positioning
@@ -550,7 +550,7 @@ up.layout = (($) ->
550
550
  @stable
551
551
  ###
552
552
 
553
- ###*
553
+ ###**
554
554
  Marks this element as being fixed to the top edge of the screen
555
555
  using `position: fixed`.
556
556
 
@@ -570,7 +570,7 @@ up.layout = (($) ->
570
570
  @stable
571
571
  ###
572
572
 
573
- ###*
573
+ ###**
574
574
  Marks this element as being fixed to the bottom edge of the screen
575
575
  using `position: fixed`.
576
576
 
@@ -591,7 +591,7 @@ up.layout = (($) ->
591
591
  ###
592
592
 
593
593
 
594
- ###*
594
+ ###**
595
595
  Marks this element as being anchored to the right edge of the screen,
596
596
  typically fixed navigation bars.
597
597
 
@@ -626,7 +626,7 @@ up.layout = (($) ->
626
626
  @stable
627
627
  ###
628
628
 
629
- ###*
629
+ ###**
630
630
  @function up.layout.firstHashTarget
631
631
  @internal
632
632
  ###
@@ -638,7 +638,7 @@ up.layout = (($) ->
638
638
 
639
639
  up.on 'up:framework:reset', reset
640
640
 
641
- knife: eval(Knife?.point)
641
+ <% if ENV['JS_KNIFE'] %>knife: eval(Knife.point)<% end %>
642
642
  reveal: reveal
643
643
  revealHash: revealHash
644
644
  firstHashTarget: firstHashTarget
@@ -1,4 +1,4 @@
1
- ###*
1
+ ###**
2
2
  Linking to fragments
3
3
  ====================
4
4
 
@@ -71,7 +71,7 @@ up.link = (($) ->
71
71
 
72
72
  u = up.util
73
73
 
74
- ###*
74
+ ###**
75
75
  Visits the given URL without a full page load.
76
76
  This is done by fetching `url` through an AJAX request
77
77
  and [replacing](/up.replace) the current `<body>` element with the response's `<body>` element.
@@ -94,7 +94,7 @@ up.link = (($) ->
94
94
  selector = u.option(options.target, 'body')
95
95
  up.replace(selector, url, options)
96
96
 
97
- ###*
97
+ ###**
98
98
  Follows the given link via AJAX and [replaces](/up.replace) the current page
99
99
  with HTML from the response.
100
100
 
@@ -142,7 +142,7 @@ up.link = (($) ->
142
142
  variant = followVariantForLink($link)
143
143
  variant.followLink($link, options)
144
144
 
145
- ###*
145
+ ###**
146
146
  This event is [emitted](/up.emit) when a link is [followed](/up.follow) through Unpoly.
147
147
 
148
148
  @event up:link:follow
@@ -153,7 +153,7 @@ up.link = (($) ->
153
153
  @stable
154
154
  ###
155
155
 
156
- ###*
156
+ ###**
157
157
  @function defaultFollow
158
158
  @internal
159
159
  ###
@@ -188,7 +188,7 @@ up.link = (($) ->
188
188
  options.preload = true
189
189
  defaultFollow($link, options)
190
190
 
191
- ###*
191
+ ###**
192
192
  Returns the HTTP method that should be used when following the given link.
193
193
 
194
194
  Looks at the link's `up-method` or `data-method` attribute.
@@ -204,7 +204,7 @@ up.link = (($) ->
204
204
  options = u.options(options)
205
205
  u.option(options.method, $link.attr('up-method'), $link.attr('data-method'), 'get').toUpperCase()
206
206
 
207
- ###*
207
+ ###**
208
208
  No-op that is called when we allow a browser's default action to go through,
209
209
  so we can spy on it in unit tests. See `link_spec.js`.
210
210
 
@@ -215,7 +215,7 @@ up.link = (($) ->
215
215
 
216
216
  followVariants = []
217
217
 
218
- ###*
218
+ ###**
219
219
  Registers the given handler for links with the given selector.
220
220
 
221
221
  This does more than a simple `click` handler:
@@ -236,7 +236,7 @@ up.link = (($) ->
236
236
  variant.registerEvents()
237
237
  variant
238
238
 
239
- ###*
239
+ ###**
240
240
  Returns whether the given link will be handled by Unpoly instead of making a full page load.
241
241
 
242
242
  A link will be handled by Unpoly if it has an attribute
@@ -250,7 +250,7 @@ up.link = (($) ->
250
250
  isFollowable = (link) ->
251
251
  !!followVariantForLink(link, default: false)
252
252
 
253
- ###*
253
+ ###**
254
254
  Returns the handler function that can be used to follow the given link.
255
255
  E.g. it wil return a handler calling `up.modal.follow` if the link is a `[up-modal]`,
256
256
  but a handler calling `up.link.follow` if the links is `[up-target]`.
@@ -266,7 +266,7 @@ up.link = (($) ->
266
266
  variant ||= DEFAULT_FOLLOW_VARIANT unless options.default is false
267
267
  variant
268
268
 
269
- ###*
269
+ ###**
270
270
  Makes sure that the given link will be handled by Unpoly instead of making a full page load.
271
271
 
272
272
  This is done by giving the link an `up-follow` attribute
@@ -288,7 +288,7 @@ up.link = (($) ->
288
288
  $targetedInput = up.form.fieldSelector().seekUp($target)
289
289
  $targetedChildLink.length == 0 && $targetedInput.length == 0 && u.isUnmodifiedMouseEvent(event)
290
290
 
291
- ###*
291
+ ###**
292
292
  Returns whether the given link has a [safe](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.1)
293
293
  HTTP method like `GET`.
294
294
 
@@ -300,7 +300,7 @@ up.link = (($) ->
300
300
  method = followMethod($link, options)
301
301
  up.proxy.isSafeMethod(method)
302
302
 
303
- ###*
303
+ ###**
304
304
  Follows this link via AJAX and replaces a CSS selector in the current page
305
305
  with corresponding elements from a new page fetched from the server:
306
306
 
@@ -410,7 +410,7 @@ up.link = (($) ->
410
410
  follow: ($link, options) -> defaultFollow($link, options)
411
411
  preload: ($link, options) -> defaultPreload($link, options)
412
412
 
413
- ###*
413
+ ###**
414
414
  If applied on a link, follows this link via AJAX and replaces the
415
415
  current `<body>` element with the response's `<body>` element.
416
416
 
@@ -461,7 +461,7 @@ up.link = (($) ->
461
461
  @stable
462
462
  ###
463
463
 
464
- ###*
464
+ ###**
465
465
  By adding an `up-instant` attribute to a link, the destination will be
466
466
  fetched on `mousedown` instead of `click` (`mouseup`).
467
467
 
@@ -483,7 +483,7 @@ up.link = (($) ->
483
483
  @stable
484
484
  ###
485
485
 
486
- ###*
486
+ ###**
487
487
  Marks up the current link to be followed *as fast as possible*.
488
488
 
489
489
  This is done by:
@@ -518,7 +518,7 @@ up.link = (($) ->
518
518
  newAttrs['up-target'] = target
519
519
  u.setMissingAttrs($element, newAttrs)
520
520
 
521
- ###*
521
+ ###**
522
522
  Add an `[up-expand]` attribute to any element that contains a link
523
523
  in order to enlarge the link's click area.
524
524
 
@@ -581,7 +581,7 @@ up.link = (($) ->
581
581
  $area.removeAttr('up-expand')
582
582
  makeFollowable($area)
583
583
 
584
- knife: eval(Knife?.point)
584
+ <% if ENV['JS_KNIFE'] %>knife: eval(Knife.point)<% end %>
585
585
  visit: visit
586
586
  follow: follow
587
587
  makeFollowable: makeFollowable
@@ -1,4 +1,4 @@
1
- ###*
1
+ ###**
2
2
  Logging
3
3
  =======
4
4
 
@@ -20,7 +20,7 @@ up.log = (($) ->
20
20
 
21
21
  SESSION_KEY_ENABLED = 'up.log.enabled'
22
22
 
23
- ###*
23
+ ###**
24
24
  Configures the logging output on the developer console.
25
25
 
26
26
  @property up.log.config
@@ -50,7 +50,7 @@ up.log = (($) ->
50
50
  prefix = (message) ->
51
51
  "#{config.prefix}#{message}"
52
52
 
53
- ###*
53
+ ###**
54
54
  Prints a debugging message to the browser console.
55
55
 
56
56
  @function up.log.debug
@@ -62,7 +62,7 @@ up.log = (($) ->
62
62
  if config.enabled && message
63
63
  b.puts('debug', prefix(message), args...)
64
64
 
65
- ###*
65
+ ###**
66
66
  Prints a logging message to the browser console.
67
67
 
68
68
  @function up.puts
@@ -74,7 +74,7 @@ up.log = (($) ->
74
74
  if config.enabled && message
75
75
  b.puts('log', prefix(message), args...)
76
76
 
77
- ###*
77
+ ###**
78
78
  @function up.log.warn
79
79
  @internal
80
80
  ###
@@ -82,7 +82,7 @@ up.log = (($) ->
82
82
  if message
83
83
  b.puts('warn', prefix(message), args...)
84
84
 
85
- ###*
85
+ ###**
86
86
  - Makes sure the group always closes
87
87
  - Does not make a group if the message is nil
88
88
 
@@ -101,7 +101,7 @@ up.log = (($) ->
101
101
  else
102
102
  block()
103
103
 
104
- ###*
104
+ ###**
105
105
  @function up.log.error
106
106
  @internal
107
107
  ###
@@ -130,7 +130,7 @@ up.log = (($) ->
130
130
  b.sessionStorage().setItem(SESSION_KEY_ENABLED, value.toString())
131
131
  config.enabled = value
132
132
 
133
- ###*
133
+ ###**
134
134
  Makes future Unpoly events print vast amounts of debugging information to the developer console.
135
135
 
136
136
  Debugging information includes which elements are being [compiled](/up.syntax)
@@ -142,7 +142,7 @@ up.log = (($) ->
142
142
  enable = ->
143
143
  setEnabled(true)
144
144
 
145
- ###*
145
+ ###**
146
146
  Prevents future Unpoly events from printing vast amounts of debugging information to the developer console.
147
147
 
148
148
  Errors will still be printed, even with logging disabled.
@@ -1,4 +1,4 @@
1
- ###*
1
+ ###**
2
2
  Modal dialogs
3
3
  =============
4
4
 
@@ -60,7 +60,7 @@ up.modal = (($) ->
60
60
 
61
61
  u = up.util
62
62
 
63
- ###*
63
+ ###**
64
64
  Sets default options for future modals.
65
65
 
66
66
  @property up.modal.config
@@ -151,7 +151,7 @@ up.modal = (($) ->
151
151
  </div>
152
152
  """
153
153
 
154
- ###*
154
+ ###**
155
155
  Define modal variants with their own default configuration, CSS or HTML template.
156
156
 
157
157
  \#\#\# Example
@@ -192,7 +192,7 @@ up.modal = (($) ->
192
192
  flavors = u.openConfig
193
193
  default: {}
194
194
 
195
- ###*
195
+ ###**
196
196
  Returns the source URL for the fragment displayed in the current modal overlay,
197
197
  or `undefined` if no modal is currently open.
198
198
 
@@ -202,7 +202,7 @@ up.modal = (($) ->
202
202
  @stable
203
203
  ###
204
204
 
205
- ###*
205
+ ###**
206
206
  Returns the URL of the page behind the modal overlay.
207
207
 
208
208
  @function up.modal.coveredUrl
@@ -291,7 +291,7 @@ up.modal = (($) ->
291
291
  unshiftElements = ->
292
292
  unshifter() while unshifter = state.unshifters.pop()
293
293
 
294
- ###*
294
+ ###**
295
295
  Returns whether a modal is currently open.
296
296
 
297
297
  This also returns `true` if the modal is in an opening or closing animation.
@@ -303,7 +303,7 @@ up.modal = (($) ->
303
303
  isOpen = ->
304
304
  state.phase == 'opened' || state.phase == 'opening'
305
305
 
306
- ###*
306
+ ###**
307
307
  Opens the given link's destination in a modal overlay:
308
308
 
309
309
  var $link = $('...');
@@ -366,7 +366,7 @@ up.modal = (($) ->
366
366
  # and (2) our pending AJAX request does not prevent other modals from opening
367
367
  openNow(options)
368
368
 
369
- ###*
369
+ ###**
370
370
  Opens a modal for the given URL.
371
371
 
372
372
  \#\#\# Example
@@ -396,7 +396,7 @@ up.modal = (($) ->
396
396
  options.url = url
397
397
  openAsap(options)
398
398
 
399
- ###*
399
+ ###**
400
400
  [Extracts](/up.extract) the given CSS selector from the given HTML string and
401
401
  opens the results in a modal.
402
402
 
@@ -495,7 +495,7 @@ up.modal = (($) ->
495
495
  up.emit('up:modal:opened', message: 'Modal opened')
496
496
  promise
497
497
 
498
- ###*
498
+ ###**
499
499
  This event is [emitted](/up.emit) when a modal dialog is starting to open.
500
500
 
501
501
  @event up:modal:open
@@ -504,14 +504,14 @@ up.modal = (($) ->
504
504
  @stable
505
505
  ###
506
506
 
507
- ###*
507
+ ###**
508
508
  This event is [emitted](/up.emit) when a modal dialog has finished opening.
509
509
 
510
510
  @event up:modal:opened
511
511
  @stable
512
512
  ###
513
513
 
514
- ###*
514
+ ###**
515
515
  Closes a currently opened modal overlay.
516
516
 
517
517
  Does nothing if no modal is currently open.
@@ -589,7 +589,7 @@ up.modal = (($) ->
589
589
  promise = promise.then -> markAsAnimating(false)
590
590
  promise
591
591
 
592
- ###*
592
+ ###**
593
593
  This event is [emitted](/up.emit) when a modal dialog
594
594
  is starting to [close](/up.modal.close).
595
595
 
@@ -599,7 +599,7 @@ up.modal = (($) ->
599
599
  @stable
600
600
  ###
601
601
 
602
- ###*
602
+ ###**
603
603
  This event is [emitted](/up.emit) when a modal dialog
604
604
  is done [closing](/up.modal.close).
605
605
 
@@ -612,7 +612,7 @@ up.modal = (($) ->
612
612
  discardHistory()
613
613
  closeAsap()
614
614
 
615
- ###*
615
+ ###**
616
616
  Returns whether the given element or selector is contained
617
617
  within the current modal.
618
618
 
@@ -630,7 +630,7 @@ up.modal = (($) ->
630
630
  up.log.warn 'up.modal.flavor() is deprecated. Use the up.modal.flavors property instead.'
631
631
  u.assign(flavorOverrides(name), overrideConfig)
632
632
 
633
- ###*
633
+ ###**
634
634
  Returns a config object for the given flavor.
635
635
  Properties in that config should be preferred to the defaults in
636
636
  [`/up.modal.config`](/up.modal.config).
@@ -641,7 +641,7 @@ up.modal = (($) ->
641
641
  flavorOverrides = (flavor) ->
642
642
  flavors[flavor] ||= {}
643
643
 
644
- ###*
644
+ ###**
645
645
  Returns the config option for the current flavor.
646
646
 
647
647
  @function flavorDefault
@@ -652,7 +652,7 @@ up.modal = (($) ->
652
652
  value = config[key] if u.isMissing(value)
653
653
  value
654
654
 
655
- ###*
655
+ ###**
656
656
  Clicking this link will load the destination via AJAX and open
657
657
  the given selector in a modal dialog.
658
658
 
@@ -733,7 +733,7 @@ up.modal = (($) ->
733
733
  up.bus.onEscape ->
734
734
  closeAsap() if state.closable
735
735
 
736
- ###*
736
+ ###**
737
737
  When this element is clicked, closes a currently open dialog.
738
738
 
739
739
  Does nothing if no modal is currently open.
@@ -755,7 +755,7 @@ up.modal = (($) ->
755
755
  up.bus.consumeAction(event)
756
756
  )
757
757
 
758
- ###*
758
+ ###**
759
759
  Clicking this link will load the destination via AJAX and open
760
760
  the given selector in a modal drawer that slides in from the edge of the screen.
761
761
 
@@ -787,7 +787,7 @@ up.modal = (($) ->
787
787
  'up-modal': target
788
788
  'up-flavor': 'drawer'
789
789
 
790
- ###*
790
+ ###**
791
791
  Sets default options for future drawers.
792
792
 
793
793
  @property up.modal.flavors.drawer
@@ -821,7 +821,7 @@ up.modal = (($) ->
821
821
  # The framework is reset between tests
822
822
  up.on 'up:framework:reset', reset
823
823
 
824
- knife: eval(Knife?.point)
824
+ <% if ENV['JS_KNIFE'] %>knife: eval(Knife.point)<% end %>
825
825
  visit: visitAsap
826
826
  follow: followAsap
827
827
  extract: extractAsap