class Latestver::Client

Constants

REGEX_NAME_TAG

Attributes

server_url[R]

Public Class Methods

new(server_url) click to toggle source
# File lib/latestver/client.rb, line 10
def initialize(server_url)
  @server_url = server_url.to_s.sub(/\/\z/, '')
end

Public Instance Methods

catalog_get(name_tag) click to toggle source
# File lib/latestver/client.rb, line 14
def catalog_get(name_tag)
  if name_tag.index(':').nil?
    name_tag = name_tag + ':latest'
  end

  raise ArgumentError, "Invalid NAME:TAG, #{name_tag}" unless name_tag.match(REGEX_NAME_TAG)

  name, tag = name_tag.split(':')
  response = ::Faraday.get "#{server_url}/catalog-api/#{name}/#{tag}.json"

  if response.status == 200
    JSON.parse(response.body)
  else
    raise ClientError, "Failed to get entry from catalog. #{response.reason_phrase}"
  end
end