Sha256: 15e9ffebb4c8ab1eb1e477ce2d6a92ac902ba50a87b088fc260c8c4fddfd2178

Contents?: true

Size: 521 Bytes

Versions: 3

Compression:

Stored size: 521 Bytes

Contents

module Ruby2JS
  class Converter

    # (hash
    #   (pair
    #     (sym :name)
    #     (str "value")))

    handle :hash do |*pairs|
      pairs.map! do |node|
        left, right = node.children
        key = parse left
        key = $1 if key =~ /\A"([a-zA-Z_$][a-zA-Z_$0-9]*)"\Z/
        "#{key}: #{parse right}"
      end

      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

3 entries across 3 versions & 1 rubygems

Version Path
ruby2js-1.3.0 lib/ruby2js/converter/hash.rb
ruby2js-1.2.0 lib/ruby2js/converter/hash.rb
ruby2js-1.1.5 lib/ruby2js/converter/hash.rb