class PagespeedInsights::V5
Wrapper for Pagespeed Insights API version 5
Constants
- PAGESPEED_API_URL
Attributes
body[R]
categories[R]
headers[R]
key[R]
status[R]
strategy[R]
url[R]
Public Class Methods
new(url:, key:, strategy: nil, categories: [])
click to toggle source
# File lib/v5/api_v5.rb, line 11 def initialize(url:, key:, strategy: nil, categories: []) @base_url = PAGESPEED_API_URL @url = url @key = key @strategy = strategy @categories = categories end
Public Instance Methods
results(fields: nil, pretty_print: true)
click to toggle source
# File lib/v5/api_v5.rb, line 19 def results(fields: nil, pretty_print: true) parse_categories uri_params = uri_params_generator(fields, pretty_print) make_request(uri_params) end
Private Instance Methods
make_request(uri_params)
click to toggle source
# File lib/v5/api_v5.rb, line 39 def make_request(uri_params) headers = { 'Accept': 'application/json' } response = Faraday.get(@base_url, uri_params, headers) @status = response.status @headers = response.headers @body = response.body self rescue StandardError => error { error_message: error.to_s } end
parse_categories()
click to toggle source
# File lib/v5/api_v5.rb, line 27 def parse_categories @categories&.join(',') end
uri_params_generator(fields, pretty_print)
click to toggle source
# File lib/v5/api_v5.rb, line 31 def uri_params_generator(fields, pretty_print) uri_params = { key: @key, url: @url, pretty_print: pretty_print } uri_params[:strategy] = @strategy if @strategy uri_params[:category] = @categories if @categories uri_params[:fields] = fields if fields uri_params end