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