class MovieQuotes
Constants
- BASE_URL
testing purposes
BASE_URL
= “dev.movie-quotes.com:3000/api/v1/quotes”.freeze
Attributes
configuration[RW]
filters[R]
Public Class Methods
configure() { |configuration| ... }
click to toggle source
# File lib/movie_quotes.rb, line 18 def self.configure self.configuration ||= Configuration.new yield(configuration) end
new()
click to toggle source
# File lib/movie_quotes.rb, line 24 def initialize @filters = {} end
Public Instance Methods
by_actor(query)
click to toggle source
# File lib/movie_quotes.rb, line 28 def by_actor(query) apply_filter "actor", query self end
by_category(query)
click to toggle source
“sci-fi” | [“sci-fi”, “action”, “drama”]
# File lib/movie_quotes.rb, line 35 def by_category(query) # "OR" behavior by default apply_filter_list "categories", query self end
by_character(query)
click to toggle source
# File lib/movie_quotes.rb, line 42 def by_character(query) apply_filter "character", query self end
by_content(query)
click to toggle source
# File lib/movie_quotes.rb, line 48 def by_content(query) apply_filter "content", query self end
by_movie(query)
click to toggle source
# File lib/movie_quotes.rb, line 54 def by_movie(query) apply_filter "movie", query self end
by_multiple(query)
click to toggle source
# File lib/movie_quotes.rb, line 60 def by_multiple(query) apply_filter "multiple", query self end
by_page(page)
click to toggle source
# File lib/movie_quotes.rb, line 66 def by_page(page) apply_filter "page", page self end
by_random(count=1)
click to toggle source
# File lib/movie_quotes.rb, line 72 def by_random(count=1) apply_filter "random", count self end
by_rating(rating)
click to toggle source
# File lib/movie_quotes.rb, line 78 def by_rating(rating) apply_filter "rating", rating self end
by_year(query)
click to toggle source
1999 | [1999, 2005] | [“1999”, “2005”]
# File lib/movie_quotes.rb, line 85 def by_year(query) apply_filter_list "years", query self end
results()
click to toggle source
# File lib/movie_quotes.rb, line 91 def results @results = HTTParty.get(url, headers: headers) end
url()
click to toggle source
# File lib/movie_quotes.rb, line 95 def url "#{BASE_URL}?#{get_filters}" end
Private Instance Methods
api_key()
click to toggle source
# File lib/movie_quotes.rb, line 101 def api_key @api_key ||= MovieQuotes.configuration.api_key end
apply_filter(filter_name, value)
click to toggle source
# File lib/movie_quotes.rb, line 105 def apply_filter(filter_name, value) filters[filter_name] = value end
apply_filter_list(filter_name, value)
click to toggle source
# File lib/movie_quotes.rb, line 109 def apply_filter_list(filter_name, value) # categories[]=crime,sci-fi filters["#{filter_name}[]"] = [value].flatten.join(",") end
get_filters()
click to toggle source
# File lib/movie_quotes.rb, line 114 def get_filters filters.map { |k,v| "#{k}=#{v}" }.join("&") end
headers()
click to toggle source
# File lib/movie_quotes.rb, line 118 def headers { "Authorization"=>"Token token=\"#{api_key}\"" } end