Class: PagespeedHelper
- Inherits:
-
Object
- Object
- PagespeedHelper
- Defined in:
- lib/pagespeedhelper.rb
Constant Summary collapse
- Pagespeedonline =
Google::Apis::PagespeedonlineV2
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(key, limit = 32, debug = false) ⇒ PagespeedHelper
constructor
A new instance of PagespeedHelper.
- #query(urls, strategy = "desktop", secure = false) ⇒ Object
Constructor Details
#initialize(key, limit = 32, debug = false) ⇒ PagespeedHelper
Returns a new instance of PagespeedHelper.
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/pagespeedhelper.rb', line 9 def initialize(key, limit=32, debug=false) @psservice = Pagespeedonline::PagespeedonlineService.new @psservice.key = key @wait_limit = limit if debug Google::Apis.logger = Logger.new(STDERR) Google::Apis.logger.level = Logger::DEBUG end end |
Class Method Details
.parse(data) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/pagespeedhelper.rb', line 41 def self.parse(data) results = Array.new data.each do |result| if !result.is_a?(Hash) result_hash = { "url" => result.id, "score" => result.rule_groups["SPEED"].score, "stats" => Hash[result.page_stats.to_h.map{ |k, v| [k.to_s, { "name" => k.to_s.capitalize.gsub!('_', ' '), "value" => v } ] }], "results" => build_rule_hash(result.formatted_results.rule_results) } else result_hash = result end results.push(result_hash) end results end |
Instance Method Details
#query(urls, strategy = "desktop", secure = false) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/pagespeedhelper.rb', line 20 def query(urls, strategy="desktop", secure=false) @wait_time = 1 data = Array.new urls = [urls] if !urls.is_a?(Array) urls = urls.map { |url| add_protocol_if_absent(url, secure) } urls.each_slice(20).to_a.each do |url_list| begin results = send_request(url_list, strategy) end while rate_error?(results) block_given? ? yield(results) : data.concat(results) sleep(3) end data if !block_given? end |