class Riddl::Wrapper::Description::HashBase
Attributes
content[R]
hash[R]
hash_base[R]
name[R]
Public Class Methods
new(layer,name,type,content=nil)
click to toggle source
{{{
# File lib/ruby/riddl/wrapper/description/message_and_transformation.rb, line 7 def initialize(layer,name,type,content=nil) @name = name @hash = nil if layer.nil? @content = content else @content = layer.find("des:#{type}[@name='#{name}']").first.to_doc @content.root.find("@name").delete_all! @content.register_namespace 'des', Riddl::Wrapper::DESCRIPTION end update_hash! end
Public Instance Methods
traverse?(other)
click to toggle source
# File lib/ruby/riddl/wrapper/description/message_and_transformation.rb, line 34 def traverse?(other) if other.name.nil? false else paths = self.hash_base.find("//des:parameter").map{ |e| e.path + "/@name" } hb2 = XML::Smart::string(other.hash_base.serialize) hb2.register_namespace 'des', Riddl::Wrapper::DESCRIPTION hb2.unformated = true paths.each do |p| (hb2.find(p).first.value = '*') rescue nil end self.hash_base.serialize.hash == hb2.serialize.hash end end
update_hash!()
click to toggle source
# File lib/ruby/riddl/wrapper/description/message_and_transformation.rb, line 19 def update_hash! # TODO too simple hb = @content.root.to_doc hb.register_namespace 'des', Riddl::Wrapper::DESCRIPTION hb.unformated = true hb.find("//comment()").delete_all! hb.find("//des:parameter/*").delete_all! hb.find("//text()").delete_all! hb.find("//des:header/*").delete_all! hb.find("//des:parameter/@handler").delete_all! # hb.find("//des:parameter/@mimetype").each { |e| e.value = '' } hb.root.namespaces.delete_all! @hash_base = hb @hash = hb.serialize.hash end