Skip to content

Instantly share code, notes, and snippets.

@takashima0411
Created March 4, 2014 16:02
Show Gist options
  • Save takashima0411/9349262 to your computer and use it in GitHub Desktop.
Save takashima0411/9349262 to your computer and use it in GitHub Desktop.
Ruby training
require "optparse"
require "date"
OptionParser.accept(Date) do |s,|
begin
Date.parse(s) if s
rescue
raise OptionParser::InvalidArgument, s
end
end
options = {}
opts = OptionParser.new
opts.on("-d", "--date [DATE]", Date) do |date|
options[:date] = date
end
opts.on("-s", "--start_date [START_DATE]", Date) do |date|
options[:start_date] = date
end
opts.on("-e", "--end_date [END_DATE]", Date) do |date|
options[:end_date] = date
end
opts.parse!(ARGV)
start_date = nil
end_date = nil
if (options.key? :start_date) && (options.key? :start_date) && !(options.key? :date) then
start_date = options[:start_date]
end_date = options[:end_date]
end
if (options.key? :date) && !(options.key? :start_date) && !(options.key? :start_date) then
start_date = options[:date]
end_date = options[:date]
end
if !(options.key? :date) && !(options.key? :start_date) && !(options.key? :start_date) then
p "please set option. -s and -e or -d"
exit(1);
end
def dateFormatter(dateString)
format("%02d",dateString)
end
def createKey(date,serverName)
"#{date.year}/#{dateFormatter(date.month)}/#{dateFormatter(date.day)}/#{serverName}"
end
date_range = (start_date..end_date).to_a
servers = ["hoge","huga"]
keys = date_range.product(servers).collect{|set| createKey(set[0],set[1])}
keys.each{|key| p key}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment