Sha256: 8d2312e2b50a7193557f0df6a99b3f38d184187ee093019d26972aa2cd9bc8ae
Contents?: true
Size: 878 Bytes
Versions: 1
Compression:
Stored size: 878 Bytes
Contents
require 'thor' require 'my_age' 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 = 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) if date =~ /^\d{4}-\d{2}-\d{2}$/ DateTime.strptime(date, "%Y-%m-%d") else dates = date.delete(")").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
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
my_age-0.1.5 | lib/my_age/cli.rb |