Sha256: fed1ea277dc698bbc589365bafc1d847c4cb31c07102eea4a563a691b9d34fc4
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
require 'restclient' require 'nokogiri' require 'yaml' module NexusCli class Factory class << self def create(overrides) @configuration = parse_configuration(overrides) running_nexus_pro? ? ProRemote.new(overrides) : OSSRemote.new(overrides) end def configuration return @configuration if @configuration end def nexus @nexus ||= RestClient::Resource.new configuration["url"], :user => configuration["username"], :password => configuration["password"] end def status doc = Nokogiri::XML(nexus['service/local/status'].get).xpath("/status/data") data = Hash.new data['app_name'] = doc.xpath("appName")[0].text data['version'] = doc.xpath("version")[0].text data['edition_long'] = doc.xpath("editionLong")[0].text data['state'] = doc.xpath("state")[0].text data['started_at'] = doc.xpath("startedAt")[0].text data['base_url'] = doc.xpath("baseUrl")[0].text return data end private def running_nexus_pro? return status['edition_long'] == "Professional" ? true : false end def parse_configuration(overrides) begin config = YAML::load_file(File.expand_path("~/.nexus_cli")) rescue end if config.nil? && (overrides.nil? || overrides.empty?) raise MissingSettingsFileException end overrides.each{|key, value| config[key] = value} unless overrides.nil? || overrides.empty? validate_config(config) config end def validate_config(configuration) ["url", "repository", "username","password"].each do |key| raise InvalidSettingsException.new(key) unless configuration.has_key?(key) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
nexus_cli-0.3.0 | lib/nexus_cli/nexus_remote_factory.rb |