Sha256: eb3b922611080e10d8e85285d367081cd8f2d0d1b75812956cbee2fe33f2c985

Contents?: true

Size: 1.19 KB

Versions: 4

Compression:

Stored size: 1.19 KB

Contents

require 'jsender'
require 'soap4juddi'

module SoarSr
	class Handler < Validator
		include Jsender

    attr_accessor :registry

    def initialize(urns, uddi, credentials, registry)
    	@urns = urns
    	@uddi = uddi
    	@credentials = credentials
      @registry = registry
    	validate
    end

    def authorize
      @uddi.broker.authenticate(@credentials['username'], @credentials['password'])
    end

    protected

    def _(&block)
    	yield
    rescue => ex
    	# byebug
      return fail(ex.message) if ex.is_a? ValidationError
      return error('request could not be completed')      	
    end

    def description_is_meta?(meta)
      JSON.parse(CGI.unescape(meta))
      true
    rescue => ex
      false
    end

    def is_registered?(result)
      has_data?(result, 'registered') and result['data']['registered']
    end

    def validate
    	provided?(@urns, "urns") and provided?(@uddi, "UDDI provider") and credentials?(@credentials)
    end

    def compile_domain_id(type, element)
      return element if element.include?(@urns[type])
      "#{@urns[type]}#{element}"
    end        

    def extract_domain_name(type, element)
      element.gsub("#{@urns[type]}", "")
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
soar_sr-0.1.6 lib/soar_sr/handler.rb
soar_sr-0.1.5 lib/soar_sr/handler.rb
soar_sr-0.1.4 lib/soar_sr/handler.rb
soar_sr-0.1.3 lib/soar_sr/handler.rb