Sha256: ec96970d9ba2522fe0713e79831aa129c69cd6ca8930678fa12914073ae14bc7
Contents?: true
Size: 1.19 KB
Versions: 1
Compression:
Stored size: 1.19 KB
Contents
module Ruby2JS class Converter # (hash # (pair # (sym :name) # (str "value"))) handle :hash do |*pairs| pairs.map! do |node| raise NotImplementedError, "kwsplat" if node.type == :kwsplat begin block_depth = @block_depth left, right = node.children @block_depth = 0 if Hash === right or right.type == :block if left.type == :prop result = [] if right[:get] result << "get #{left.children[0]}#{ parse(right[:get]).sub(/^function/,'')}" end if right[:set] result << "set #{left.children[0]}#{ parse(right[:set]).sub(/^function/,'')}" end result else key = parse left key = $1 if key =~ /\A"([a-zA-Z_$][a-zA-Z_$0-9]*)"\Z/ "#{key}: #{parse right}" end ensure @block_depth = block_depth end end pairs.flatten! if pairs.map {|item| item.length+2}.reduce(&:+).to_i < @width-10 "{#{ pairs.join(', ') }}" else "{#@nl#{ pairs.join(",#@ws") }#@nl}" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruby2js-1.12.2 | lib/ruby2js/converter/hash.rb |