class Emfrp::Syntax
Public Class Methods
new(hash, hash2 = {})
click to toggle source
# File lib/emfrp/syntax.rb, line 3 def initialize(hash, hash2 = {}) self[:class] = self.class self.merge!(hash) self.merge!(hash2) self[:class] = self.class end
Public Instance Methods
[](key)
click to toggle source
# File lib/emfrp/syntax.rb, line 10 def [](key) if self.has_key?(key) self.fetch(key) else pp self raise "unexist key #{key}" end end
deep_copy(x=self)
click to toggle source
# File lib/emfrp/syntax.rb, line 29 def deep_copy(x=self) case x when Syntax x.class.new(Hash[x.map{|k, v| [k, deep_copy(v)]}]) when Array x.map{|x| deep_copy(x)} else x end end
traverse_all_syntax(target=self, &block)
click to toggle source
# File lib/emfrp/syntax.rb, line 19 def traverse_all_syntax(target=self, &block) case target when Syntax block.call(target) traverse_all_syntax(target.values, &block) when Array target.each{|e| traverse_all_syntax(e, &block)} end end