lib/pagespeed/cli.rb in pagespeed-0.0.1 vs lib/pagespeed/cli.rb in pagespeed-0.1.0
- old
+ new
@@ -1,48 +1,53 @@
require 'optparse'
module PageSpeed
class CLI
-
+
class << self
KEY_PATH = File.join(ENV['HOME'], '.pagespeed_api_key')
- BANNER = <<-USAGE
- Usage:
- pagespeed google.com
- Description:
- pagespeed pulls in results for a given website from the google pagespeed api
-
- USAGE
-
# parse and set the options
- def set_options
+ def set_options(args)
+ # set default options
+ options = {}
+ options['strategy'] = 'desktop'
+
@opts = OptionParser.new do |opts|
- opts.banner = BANNER.gsub(/^\s{4}/, '')
+ opts.banner = "Usage: pagespeed [url] [options]"
opts.separator ''
+ opts.on( '-s', '--strategy [STRATEGY]', 'The strategy to use when analyzing the page. Valid values are \'desktop\' and \'mobile\'.') do |s|
+ if s == nil
+ print_usage_and_exit!
+ end
+ options['strategy'] = s
+ end
+
opts.on('-v', '--version', 'Show the pagespeed version and exit') do
- puts "dsync v#{PageSpeed::VERSION}"
+ puts "pagespeed v#{PageSpeed::VERSION}"
exit
end
opts.on( '-h', '--help', 'Display this help' ) do
puts opts
exit
end
+
end
- @opts.parse!
+ @opts.parse!(args)
+ options
end
-
+
# print out the options banner and exit
def print_usage_and_exit!
puts @opts
exit
end
-
+
# get the api key from ~/.pagespeed_api_key
# if we can't find it, show a user how to get one
def get_api_key
if File.exist?(KEY_PATH)
File.read(KEY_PATH).gsub(/\s/, '')
@@ -56,30 +61,29 @@
INSTRUCTIONS
puts instructions.gsub(/^\s{10}/, '')
exit
end
end
-
+
# save the api key at ~/.pagespeed_api_key
def save_api_key(key)
File.open(KEY_PATH, 'w') { |f| f.write(key) }
end
-
+
# parse the options and make the pagespeed request
def run!(argv)
- set_options
-
+ opts = set_options(argv)
+
if argv.size == 1
api_key = get_api_key
- request = PageSpeed::Request.new(argv[0], api_key)
+ request = PageSpeed::Request.new(argv[0], api_key, opts['strategy'])
request.pagespeed
elsif argv.size == 2 && argv[0] == 'add-key'
save_api_key(argv[1])
else
print_usage_and_exit!
end
-
end
-
- end
+
+ end
end
end