class Riddl::Wrapper::Declaration::Facade
Attributes
resource[R]
Public Class Methods
new()
click to toggle source
# File lib/ruby/riddl/wrapper/declaration/facade.rb, line 8 def initialize @resource = Riddl::Wrapper::Description::Resource.new("/") end
Public Instance Methods
description_xml(namespaces)
click to toggle source
# File lib/ruby/riddl/wrapper/declaration/facade.rb, line 12 def description_xml(namespaces) #{{{ namespaces = namespaces.delete_if do |k,n| k =~ /^xmlns\d+$/ || [Riddl::Wrapper::DESCRIPTION, Riddl::Wrapper::DECLARATION, Riddl::Wrapper::XINCLUDE].include?(n) end.map do |k,n| "xmlns:#{k}=\"#{n}\"" end.join(' ') result = "" messages = {} names = [] messages_result = "" description_result = "" description_xml_priv(result,messages,0) result = XML::Smart.string(result) messages.each do |hash,mess| t = mess.content.dup name = mess.name name += '_' while names.include?(name) result.find("//@*[.=#{hash}]").each { |e| e.value = name } names << name t.root.attributes['name'] = name messages_result << t.root.dump + "\n" end XML::Smart.string("<description #{Riddl::Wrapper::COMMON} #{namespaces}>\n\n" + description_result + messages_result.gsub(/^/,' ') + "\n" + result.root.dump + "\n</description>").to_s #}}} end
merge_tiles(res,fac=@resource)
click to toggle source
# File lib/ruby/riddl/wrapper/declaration/facade.rb, line 54 def merge_tiles(res,fac=@resource) #{{{ fac.custom = fac.custom + res.custom res.composition.each do |method,s| fac.composition[method] ||= [] fac.composition[method] += s end res.resources.each do |path,r| if !fac.resources.has_key?(path) fac.resources[path] = Riddl::Wrapper::Description::Resource.new(path,r.recursive) end merge_tiles(r,fac.resources[path]) end #}}} end
Private Instance Methods
description_xml_priv(result,messages,level,res=@resource)
click to toggle source
# File lib/ruby/riddl/wrapper/declaration/facade.rb, line 40 def description_xml_priv(result,messages,level,res=@resource) #{{{ s = " " * (level + 1) t = " " * (level + 2) result << s + "<resource#{res.path != '/' && res.path != '{}' ? " relative=\"#{res.path}\"" : ''}#{res.recursive ? " recursive=\"true\"" : ''}>\n" result << res.description_xml_string(messages,t) res.resources.each do |k,v| description_xml_priv(result,messages,level+1,v) end result << s + "</resource>\n" #}}} end