class JarvisbotSongfinder::SearchQuery

Reponsible for handling search (words) based requests

JarvisbotSongfinder::SearchQuery.new("Paramore Misery").track.length
# => 211

Public Class Methods

new(query, config: JarvisbotSongfinder.configuration) click to toggle source
# File lib/jarvisbot_songfinder/helpers/search_query.rb, line 8
def initialize(query, config: JarvisbotSongfinder.configuration)
  @query = query
  @config = config
  @provider = select_provider
end

Public Instance Methods

track() click to toggle source
# File lib/jarvisbot_songfinder/helpers/search_query.rb, line 14
def track
  @provider
end

Private Instance Methods

select_provider() click to toggle source
# File lib/jarvisbot_songfinder/helpers/search_query.rb, line 20
def select_provider
  provider = Provider.available_providers.find do |p|
    p.from_search @query, config: @config
  end
  provider.nil? ? UnknownSearchProvider.new : provider.from_search(@query, config: @config)
end