lib/wss_agent/configure.rb in wss_agent-18.10.2 vs lib/wss_agent/configure.rb in wss_agent-18.10.3

- old
+ new

@@ -1,115 +1,115 @@ -module WssAgent - class Configure - DEFAULT_CONFIG_FILE = 'default.yml'.freeze - CUSTOM_DEFAULT_CONFIG_FILE = 'custom_default.yml'.freeze - CURRENT_CONFIG_FILE = 'wss_agent.yml'.freeze - API_PATH = '/agent'.freeze - - extend SingleForwardable - def_delegator :current, :[] - - class << self - def default_path - File.join( - File.expand_path('../..', __FILE__), 'config', DEFAULT_CONFIG_FILE - ) - end - - def custom_default_path - File.join( - File.expand_path('../..', __FILE__), 'config', - CUSTOM_DEFAULT_CONFIG_FILE - ) - end - - def exist_default_config? - File.exist?(default_path) - end - - def default - exist_default_config? ? Psych.safe_load(File.read(default_path)) : {} - end - - def current_path - Bundler.root.join(CURRENT_CONFIG_FILE).to_s - end - - def current - unless File.exist?(current_path) - return raise NotFoundConfigFile, WssAgentError::NOT_FOUND_CONFIGFILE - end - - @current_config = Psych.safe_load(File.read(current_path)) - - unless @current_config - return raise InvalidConfigFile, WssAgentError::INVALID_CONFIG_FORMAT - end - - default.merge(@current_config) - end - - def uri - @url = current['url'] - if @url.nil? || @url == '' - raise ApiUrlNotFound, WssAgentError::CANNOT_FIND_URL - end - URI(@url) - rescue URI::Error - raise ApiUrlInvalid, WssAgentError::URL_INVALID - end - - def port - uri.port || 80 - end - - def url - @uri = uri - [@uri.scheme, @uri.host].join('://') - end - - def ssl? - uri.scheme == 'https' - end - - def api_path - @uri = uri - @url_path = @uri.path - @url_path == '' ? API_PATH : @url_path - end - - def token - if current['token'].nil? || (current['token'] == '') || - (current['token'] == default['token']) - raise TokenNotFound, WssAgentError::CANNOT_FIND_TOKEN - else - current['token'] - end - end - - def user_key - current['user_key'].to_s.strip - end - - def user_key? - !user_key.empty? - end - - def project_meta - @project_meta ||= WssAgent::Project.new - end - - def coordinates - return {} unless current['project_token'].to_s.strip.empty? - coordinates_config = current['coordinates'] - coordinates_artifact_id = coordinates_config['artifact_id'] - coordinates_version = coordinates_config['version'] - if coordinates_artifact_id.to_s.strip.empty? - coordinates_artifact_id = project_meta.project_name - coordinates_version = project_meta.project_version - end - { 'artifactId' => coordinates_artifact_id, - 'version' => coordinates_version } - end - end - end -end +module WssAgent + class Configure + DEFAULT_CONFIG_FILE = 'default.yml'.freeze + CUSTOM_DEFAULT_CONFIG_FILE = 'custom_default.yml'.freeze + CURRENT_CONFIG_FILE = 'wss_agent.yml'.freeze + API_PATH = '/agent'.freeze + + extend SingleForwardable + def_delegator :current, :[] + + class << self + def default_path + File.join( + File.expand_path('../..', __FILE__), 'config', DEFAULT_CONFIG_FILE + ) + end + + def custom_default_path + File.join( + File.expand_path('../..', __FILE__), 'config', + CUSTOM_DEFAULT_CONFIG_FILE + ) + end + + def exist_default_config? + File.exist?(default_path) + end + + def default + exist_default_config? ? Psych.safe_load(File.read(default_path)) : {} + end + + def current_path + Bundler.root.join(CURRENT_CONFIG_FILE).to_s + end + + def current + unless File.exist?(current_path) + return raise NotFoundConfigFile, WssAgentError::NOT_FOUND_CONFIGFILE + end + + @current_config = Psych.safe_load(File.read(current_path)) + + unless @current_config + return raise InvalidConfigFile, WssAgentError::INVALID_CONFIG_FORMAT + end + + default.merge(@current_config) + end + + def uri + @url = current['url'] + if @url.nil? || @url == '' + raise ApiUrlNotFound, WssAgentError::CANNOT_FIND_URL + end + URI(@url) + rescue URI::Error + raise ApiUrlInvalid, WssAgentError::URL_INVALID + end + + def port + uri.port || 80 + end + + def url + @uri = uri + [@uri.scheme, @uri.host].join('://') + end + + def ssl? + uri.scheme == 'https' + end + + def api_path + @uri = uri + @url_path = @uri.path + @url_path == '' ? API_PATH : @url_path + end + + def token + if current['token'].nil? || (current['token'] == '') || + (current['token'] == default['token']) + raise TokenNotFound, WssAgentError::CANNOT_FIND_TOKEN + else + current['token'] + end + end + + def user_key + current['user_key'].to_s.strip + end + + def user_key? + !user_key.empty? + end + + def project_meta + @project_meta ||= WssAgent::Project.new + end + + def coordinates + return {} unless current['project_token'].to_s.strip.empty? + coordinates_config = current['coordinates'] + coordinates_artifact_id = coordinates_config['artifact_id'] + coordinates_version = coordinates_config['version'] + if coordinates_artifact_id.to_s.strip.empty? + coordinates_artifact_id = project_meta.project_name + coordinates_version = project_meta.project_version + end + { 'artifactId' => coordinates_artifact_id, + 'version' => coordinates_version } + end + end + end +end