Class: Latestver::Client
- Inherits:
-
Object
- Object
- Latestver::Client
- Defined in:
- lib/latestver/client.rb
Constant Summary collapse
- REGEX_NAME_TAG =
/\A([a-z0-9][a-z0-9_\.-]+[a-z0-9]):([a-z0-9][a-z0-9_\.-]+[a-z0-9])\z/i
Instance Attribute Summary collapse
-
#server_url ⇒ Object
readonly
Returns the value of attribute server_url.
Instance Method Summary collapse
- #catalog_get(name_tag) ⇒ Object
-
#initialize(server_url) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(server_url) ⇒ Client
10 11 12 |
# File 'lib/latestver/client.rb', line 10 def initialize(server_url) @server_url = server_url.to_s.sub(/\/\z/, '') end |
Instance Attribute Details
#server_url ⇒ Object (readonly)
Returns the value of attribute server_url.
8 9 10 |
# File 'lib/latestver/client.rb', line 8 def server_url @server_url end |
Instance Method Details
#catalog_get(name_tag) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# 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 |