class SOSHelper::GetCapability
Attributes
capabilities[R]
Public Class Methods
new(args={})
click to toggle source
# File lib/capability.rb, line 28 def initialize(args={}) @request = args[:request] @url = args[:url] @query = {} @capabilities = nil end
Public Instance Methods
send(query={})
click to toggle source
# File lib/capability.rb, line 35 def send(query={}) query[:service] = query[:service] || "SOS" query[:request] = query[:request] || "GetCapabilities" query[:version] = query[:version] || "2.0.0" @capabilities = request.get(query) do |str| xml = Nokogiri::XML(str) Capability.new(root: xml) end end
Private Instance Methods
adventure(level, relic)
click to toggle source
# File lib/capability.rb, line 66 def adventure(level, relic) if level == "normal" (dig relic).map { |treasure| normal treasure } else (dig relic, "Range").map { |treasure| complex treasure} end end
check(relics)
click to toggle source
# File lib/capability.rb, line 54 def check(relics) backpack = {} relics.each do |relic| level = checkLevelOf relic backpack[ relic.to_sym ] = adventure level, relic end backpack end
checkLevelOf(condition)
click to toggle source
# File lib/capability.rb, line 74 def checkLevelOf(condition) !(condition.include? "Filter") ? "normal" : "complex" end
complex(tag)
click to toggle source
# File lib/capability.rb, line 82 def complex(tag) [tag.xpath(".//ows:MinimumValue").text, tag.xpath(".//ows:MaximumValue").text] end
dig(operation, type="Value")
click to toggle source
# File lib/capability.rb, line 46 def dig(operation, type="Value") @capabilities.xpath("//ows:Operation[@name='GetObservation']//ows:Parameter[@name='#{operation}']//ows:#{type}") end
normal(tag)
click to toggle source
# File lib/capability.rb, line 78 def normal(tag) tag.text end
request()
click to toggle source
# File lib/capability.rb, line 50 def request @request ||= XmlRequest.new(@url) end