class Shoutcast::Api::Url

Attributes

parameters[RW]
path[RW]

Public Class Methods

new(path:, key:, parameters: {}) click to toggle source
# File lib/shoutcast/api/url.rb, line 4
def initialize(path:, key:, parameters: {})
  @path = path
  @parameters = { k: key }
  @parameters.merge!(parameters) unless parameters.nil?
  @parameters.delete_if { |_, value| value.nil? }
end

Public Instance Methods

to_s() click to toggle source
# File lib/shoutcast/api/url.rb, line 11
def to_s
  URI::HTTP.build(
    host:  base_uri.host,
    path:  base_uri.path,
    query: parameters_query
  ).to_s
end

Private Instance Methods

base_uri() click to toggle source
# File lib/shoutcast/api/url.rb, line 31
def base_uri
  @base_uri ||= URI.join("#{scheme}://#{host}", path)
end
host() click to toggle source
# File lib/shoutcast/api/url.rb, line 27
def host
  'api.shoutcast.com'
end
parameters_query() click to toggle source
# File lib/shoutcast/api/url.rb, line 35
def parameters_query
  return '' if parameters.empty?
  URI.encode_www_form(parameters)
end
scheme() click to toggle source
# File lib/shoutcast/api/url.rb, line 23
def scheme
  'http'
end