class Ralyxa::ResponseEntities::Directives::Audio::Stream

Public Class Methods

as_hash(url, token, offset_in_milliseconds = 0, expected_previous_token = nil) click to toggle source
# File lib/ralyxa/response_entities/directives/audio/stream.rb, line 24
def self.as_hash(url, token, offset_in_milliseconds = 0, expected_previous_token = nil)
  new(url, token, offset_in_milliseconds, expected_previous_token).to_h
end
new(url, token, offset_in_milliseconds = 0, expected_previous_token = nil) click to toggle source
# File lib/ralyxa/response_entities/directives/audio/stream.rb, line 6
def initialize(url, token, offset_in_milliseconds = 0, expected_previous_token = nil)
  raise Ralyxa::UnsecureUrlError, "Audio streams must be served from at an SSL-enabled (HTTPS) endpoint. Your current stream url is: #{url}" unless secure?(url)

  @url                     = url
  @token                   = token
  @offset_in_milliseconds  = offset_in_milliseconds
  @expected_previous_token = expected_previous_token
end

Public Instance Methods

to_h() click to toggle source
# File lib/ralyxa/response_entities/directives/audio/stream.rb, line 15
def to_h
  {}.tap do |stream|
    stream['url']                   = @url
    stream['token']                 = @token
    stream['offsetInMilliseconds']  = @offset_in_milliseconds
    stream['expectedPreviousToken'] = @expected_previous_token if @expected_previous_token
  end
end

Private Instance Methods

secure?(url) click to toggle source
# File lib/ralyxa/response_entities/directives/audio/stream.rb, line 30
def secure?(url)
  URI.parse(url).scheme == 'https' || !Ralyxa.require_secure_urls?
end