class RedParse::ListInNode::HashLiteralNode
Attributes
no_arrows[R]
no_braces[RW]
offset[W]
Public Class Methods
new(open,contents,close)
click to toggle source
Calls superclass method
RedParse::ListInNode::Node::new
# File lib/redparse/node.rb, line 4655 def initialize(open,contents,close) @offset=open.offset rescue contents.first.offset case contents when nil; super() when ArrowOpNode; super(contents.first,contents.last) when CommaOpNode,Array if ArrowOpNode===contents.first data=[] contents.each{|pair| ArrowOpNode===pair or fail data.push pair.first,pair.last } else @no_arrows=true data=Array[*contents] end super(*data) else fail end @no_braces=true unless open end
Public Instance Methods
as_h()
click to toggle source
# File lib/redparse/node.rb, line 4709 def as_h return @h if defined? @h @h={} (0...size).step(2){|i| k=self[i].dup k.delete_extraneous_ivars! k.delete_linenums! @h[k]=self[i+1] } return @h end
blame()
click to toggle source
# File lib/redparse/node.rb, line 4730 def blame; self end
error?(rubyversion=1.8)
click to toggle source
Calls superclass method
RedParse::ListInNode::Node#error?
# File lib/redparse/node.rb, line 4725 def error? rubyversion=1.8 return true if defined?(@no_arrows) and rubyversion>=1.9 return super end
get(k)
click to toggle source
# File lib/redparse/node.rb, line 4697 def get k case k when Node; k.delete_extraneous_ivars! k.delete_linenums! when Symbol, Numeric; k=LiteralNode[k] when true,false,nil; k=VarLikeNode[k.inspect] else raise ArgumentError end return as_h[k] end
image()
click to toggle source
# File lib/redparse/node.rb, line 4681 def image; "({})" end
msg()
click to toggle source
# File lib/redparse/node.rb, line 4731 def msg; "comma not allowed within pairs in hashes anymore" end
parsetree(o)
click to toggle source
# File lib/redparse/node.rb, line 4721 def parsetree(o) map{|elem| elem.rescue_parsetree(o)}.unshift :hash end
unparse(o=default_unparse_options)
click to toggle source
# File lib/redparse/node.rb, line 4683 def unparse o=default_unparse_options result='' result << "{" unless defined? @no_braces and @no_braces arrow= defined?(@no_arrows) ? " , " : " => " (0...size).step(2){|i| result<< unparse_nl(self[i],o,'')+ self[i].unparse_maybe_parens(o)+arrow+ self[i+1].unparse_maybe_parens(o)+', ' } result.chomp! ', ' result << "}" unless defined? @no_braces and @no_braces return result end