class Estreet::SwitchStatement
Public Class Methods
new(discriminant, kases)
click to toggle source
kases is an array of 2-element arrays, or 1 for the default case
# File lib/estreet/switch_statement.rb, line 4 def initialize(discriminant, kases) @kases = kases.map do |kase| raise TypeError, "Invalid case: #{kase}" unless kase.is_a? Array case kase.length when 2 then SwitchCase.new(*kase) when 1 then SwitchCase.default(kase.first) else raise TypeError, "Invalid case: #{kase}" end end @discriminant = discriminant.to_expression end
Public Instance Methods
attributes()
click to toggle source
Calls superclass method
Estreet::Node#attributes
# File lib/estreet/switch_statement.rb, line 18 def attributes super.merge( discriminant: @discriminant, cases: @kases, lexical: false, # TODO: an ES6 thing? ) end