lib/when_exe/region/yerm.rb in when_exe-0.3.6 vs lib/when_exe/region/yerm.rb in when_exe-0.3.7
- old
+ new
@@ -37,30 +37,30 @@
#
# Analyze notation with crescent
#
# @param [String] source Notation with crescents
- # @param [Array<Integer>] Upper default elements (default - today's Yerm date)
+ # @param [Array<Integer>] abbr Upper default elements (default - today's Yerm date)
#
# @return [String] Notation with hyphens
#
def self.parse(source, abbr=nil)
c, y, m, d = abbr || (When::Yerm^When.today).cal_date
case source
- when /^(-?\d+)[-\(](\d+)\((\d+)\((\d+)$/; c, y, m, d = [$1, $2, $3, $4]
- when /^(-?\d+)-(\d+)\((\d+)$/ ; c, y, m, d = [$1, $2, $3 ]
- when /^(-?\d+)-(\d+)$/ ; c, y, m, d = [$1, $2 ]
- when /^(-?\d+)-$/ ; c, y, m, d = [$1 ]
- when /^(\d+)\((\d+)\((\d+)$/ ; y, m, d = [ $1, $2, $3]
- when /^(\d+)\((\d+)$/ ; m, d = [ $1, $2]
- when /^(\d+)$/ ; d = $1
+ when /\A(-?\d+)[-\(](\d+)\((\d+)\((\d+)\z/; c, y, m, d = [$1, $2, $3, $4]
+ when /\A(-?\d+)-(\d+)\((\d+)\z/ ; c, y, m, d = [$1, $2, $3 ]
+ when /\A(-?\d+)-(\d+)\z/ ; c, y, m, d = [$1, $2 ]
+ when /\A(-?\d+)-\z/ ; c, y, m, d = [$1 ]
+ when /\A(\d+)\((\d+)\((\d+)\z/ ; y, m, d = [ $1, $2, $3]
+ when /\A(\d+)\((\d+)\z/ ; m, d = [ $1, $2]
+ when /\A(\d+)\z/ ; d = $1
- when /^(\d+)\)(\d+)\)(\d+)[-\)](-?\d+)$/; c, y, m, d = [$4, $3, $2, $1]
- when /^(\d+)\)(\d+)-(-?\d+)$/ ; c, y, m, d = [$3, $2, $1 ]
- when /^(\d+)-(-\d+)$/ ; c, y, m, d = [$2, $1 ]
- when /^(-\d+)$/ ; c, y, m, d = [$1 ]
- when /^(\d+)\)(\d+)\)(\d+)$/ ; y, m, d = [ $3, $2, $1]
- when /^(\d+)\)(\d+)$/ ; m, d = [ $2, $1]
+ when /\A(\d+)\)(\d+)\)(\d+)[-\)](-?\d+)\z/; c, y, m, d = [$4, $3, $2, $1]
+ when /\A(\d+)\)(\d+)-(-?\d+)\z/ ; c, y, m, d = [$3, $2, $1 ]
+ when /\A(\d+)-(-\d+)\z/ ; c, y, m, d = [$2, $1 ]
+ when /\A(-\d+)\z/ ; c, y, m, d = [$1 ]
+ when /\A(\d+)\)(\d+)\)(\d+)\z/ ; y, m, d = [ $3, $2, $1]
+ when /\A(\d+)\)(\d+)\z/ ; m, d = [ $2, $1]
else ; c, y, m, d = [ ]
end
ordered = [c, y, m, d]
ordered.pop until ordered.last