lib/my_age/cli.rb in my_age-0.1.1 vs lib/my_age/cli.rb in my_age-0.1.2
- old
+ new
@@ -1,19 +1,38 @@
require 'thor'
require 'my_age'
-
+require 'pry'
module MyAge
class CLI < Thor
attr_accessor :dob
include MyAge::Calculator
desc "is AGE", "-d date_of_birth -a as_of_date, Dates are in yyyy-mm-dd format"
method_option :dob, aliases: "d", desc: "date of birth in yyyy-mm-dd", required: true
method_option :as_of, aliases: "a", desc: "as of date in yyyy-mm-dd", required: false
def is
- self.dob = DateTime.strptime(options[:dob], "%Y-%m-%d")
- date = options[:as_of].present? ? DateTime.strptime(options[:as_of], "%Y-%m-%d") : Date.today
+ self.dob = get_date(options[:dob])
+ date = options[:as_of].present? ? get_date(options[:as_of]) : Date.today
puts self.age(date)
+ end
+
+
+ private
+ def get_date(date)
+ begin
+ if date =~ /^\d{4}-\d{2}-\d{2}$/
+ DateTime.strptime(date, "%Y-%m-%d")
+ else
+ dates = date.gsub(")", "").split("(")
+ if dates.length == 2
+ Date.today.send(dates[0].to_sym, dates[1].to_i)
+ else
+ Date.today.send(dates[0].to_sym)
+ end
+ end
+ rescue NoMethodError
+ Date.send(date)
+ end
end
end
end