class SoarSr::Handler
Attributes
registry[RW]
Public Class Methods
new(urns, uddi, credentials, registry)
click to toggle source
# File lib/soar_sr/handler.rb, line 10 def initialize(urns, uddi, credentials, registry) @urns = urns @uddi = uddi @credentials = credentials @registry = registry validate end
Public Instance Methods
Protected Instance Methods
_() { || ... }
click to toggle source
# File lib/soar_sr/handler.rb, line 24 def _(&block) yield rescue => ex # byebug return fail(ex.message) if ex.is_a? ValidationError return error('request could not be completed') end
any_registered?(domain_perspective)
click to toggle source
# File lib/soar_sr/handler.rb, line 56 def any_registered?(domain_perspective) raise ValidationError, "unknown domain perspective provided" if (not type_registered?(domain_perspective, 'domains')) and (not type_registered?(domain_perspective, 'teams')) true end
compile_domain_id(type, element)
click to toggle source
# File lib/soar_sr/handler.rb, line 70 def compile_domain_id(type, element) element = standardize(element) return element if element.include?(@urns[type]) "#{@urns[type]}#{element}" end
description_is_meta?(meta)
click to toggle source
# File lib/soar_sr/handler.rb, line 32 def description_is_meta?(meta) JSON.parse(CGI.unescape(meta)) true rescue => ex false end
extract_domain_name(type, element)
click to toggle source
# File lib/soar_sr/handler.rb, line 76 def extract_domain_name(type, element) element = standardize(element) element.gsub("#{@urns[type]}", "") end
is_registered?(result)
click to toggle source
# File lib/soar_sr/handler.rb, line 39 def is_registered?(result) has_data?(result, 'registered') and result['data']['registered'] end
merge_meta_with_descriptions(detail, meta)
click to toggle source
# File lib/soar_sr/handler.rb, line 87 def merge_meta_with_descriptions(detail, meta) descriptions = [] detail['description'] ||= {} detail['description'].each do |desc| descriptions << desc if not description_is_meta?(desc) end descriptions << CGI.escape(meta.to_json) descriptions end
not_registered?(element, type)
click to toggle source
# File lib/soar_sr/handler.rb, line 51 def not_registered?(element, type) raise ValidationError, "#{one_of(type)} already exists" if type_registered?(element, type) true end
registered?(element, type)
click to toggle source
# File lib/soar_sr/handler.rb, line 61 def registered?(element, type) raise ValidationError, "unknown #{one_of(type)} provided" if not type_registered?(element, type) true end
standardize(name)
click to toggle source
# File lib/soar_sr/handler.rb, line 81 def standardize(name) return standardize_dictionary(name) if name.is_a?(Hash) return standardized = name.to_s.downcase if not name.nil? nil end
type_registered?(element, type)
click to toggle source
# File lib/soar_sr/handler.rb, line 43 def type_registered?(element, type) return is_registered?(@registry.domain_perspectives.domain_perspective_registered?(element)) if (type == 'domains') return is_registered?(@registry.service_components.service_component_registered?(element)) if (type == 'service-components') return is_registered?(@registry.services.service_registered?(element)) if (type == 'services') return is_registered?(@registry.teams.team_registered?(element)) if (type == 'teams') false end
validate()
click to toggle source
# File lib/soar_sr/handler.rb, line 66 def validate provided?(@urns, "urns") and provided?(@uddi, "UDDI provider") and credentials?(@credentials) end
Private Instance Methods
standardize_dictionary(dictionary)
click to toggle source
# File lib/soar_sr/handler.rb, line 99 def standardize_dictionary(dictionary) value = standardize(dictionary['name']) standardized = dictionary standardized['name'] = value standardized end