class OracleSqlParser::Ast::Hash
Public Class Methods
[](value)
click to toggle source
# File lib/oracle-sql-parser/ast/hash.rb, line 46 def self.[](value) self.new(value) end
new(value = {})
click to toggle source
# File lib/oracle-sql-parser/ast/hash.rb, line 8 def initialize(value = {}) raise "only ::Hash instance #{value.inspect}" unless value.instance_of? ::Hash @ast = value end
Public Instance Methods
[]=(name, value)
click to toggle source
# File lib/oracle-sql-parser/ast/hash.rb, line 50 def []=(name, value) @ast[name] = value end
inspect()
click to toggle source
# File lib/oracle-sql-parser/ast/hash.rb, line 30 def inspect "#<#{self.class.name}\n" + @ast.map{|k,v| "#{k.inspect} => #{v.inspect}"}.join(",\n").gsub(/^/, ' ') + "}>\n" end
map_ast!(&block)
click to toggle source
# File lib/oracle-sql-parser/ast/hash.rb, line 19 def map_ast!(&block) mapped = @ast.class.new @ast.each do |k, v| if v.is_a? OracleSqlParser::Ast::Base v.map_ast!(&block) end mapped[k] = block.call(v) end @ast = mapped end
method_missing(name, *args)
click to toggle source
# File lib/oracle-sql-parser/ast/hash.rb, line 54 def method_missing(name, *args) return @ast.send(:[], name) if @ast.has_key? name raise "no method:#{name}, #{@ast.class} in #{self.class}" end
remove_nil_values!()
click to toggle source
# File lib/oracle-sql-parser/ast/hash.rb, line 13 def remove_nil_values! @ast.delete_if{|k, v| v.nil?} @ast.each {|k, v| v.remove_nil_values! if v.respond_to? :remove_nil_values!} self end
to_sql(options = {:separator => ' '})
click to toggle source
# File lib/oracle-sql-parser/ast/hash.rb, line 36 def to_sql(options = {:separator => ' '}) @ast.map do |k,v| if v.respond_to? :to_sql v.to_sql else v.to_s end end.compact.join(options[:separator]) end