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