Sha256: 78e9454bc650f5f7218eaaddade158f804be1ac8bb8166333e595ec7ab25f730

Contents?: true

Size: 1.65 KB

Versions: 10

Compression:

Stored size: 1.65 KB

Contents

num = 10

result = switch num
  when 5 then false
  when 'a'
    true
    true
    false
  when 10 then true


  # Mid-switch comment with whitespace
  # and multi line
  when 11 then false
  else false

ok result


func = (num) ->
  switch num
    when 2, 4, 6
      true
    when 1, 3, 5
      false

ok func(2)
ok func(6)
ok !func(3)
eq func(8), undefined


# Ensure that trailing switch elses don't get rewritten.
result = false
switch "word"
  when "one thing"
    doSomething()
  else
    result = true unless false

ok result

result = false
switch "word"
  when "one thing"
    doSomething()
  when "other thing"
    doSomething()
  else
    result = true unless false

ok result


# Should be able to handle switches sans-condition.
result = switch
  when null                     then 0
  when !1                       then 1
  when '' not of {''}           then 2
  when [] not instanceof Array  then 3
  when true is false            then 4
  when 'x' < 'y' > 'z'          then 5
  when 'a' in ['b', 'c']        then 6
  when 'd' in (['e', 'f'])      then 7
  else ok

eq result, ok


# Should be able to use "@properties" within the switch clause.
obj = {
  num: 101
  func: ->
    switch @num
      when 101 then '101!'
      else 'other'
}

ok obj.func() is '101!'


# Should be able to use "@properties" within the switch cases.
obj = {
  num: 101
  func: (yesOrNo) ->
    result = switch yesOrNo
      when yes then @num
      else 'other'
    result
}

ok obj.func(yes) is 101


# Switch with break as the return value of a loop.
i = 10
results = while i > 0
  i--
  switch i % 2
    when 1 then i
    when 0 then break

eq results.join(', '), '9, , 7, , 5, , 3, , 1, '

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
spade-packager-0.1.0.1 packages/coffee-script/test/test_switch.coffee
spade-packager-0.1.0 packages/coffee-script/test/test_switch.coffee
spade-0.0.8.1 packages/coffee-script/test/test_switch.coffee
spade-0.0.7 packages/coffee-script/test/test_switch.coffee
spade-0.0.6 packages/coffee-script/test/test_switch.coffee
spade-0.0.5 packages/coffee-script/test/test_switch.coffee
spade-0.0.4 packages/coffee-script/test/test_switch.coffee
spade-0.0.3 packages/coffee-script/test/test_switch.coffee
spade-0.0.2 packages/coffee-script/test/test_switch.coffee
spade-0.0.1 packages/coffee-script/test/test_switch.coffee