lib/when_exe/region/yerm.rb in when_exe-0.3.8 vs lib/when_exe/region/yerm.rb in when_exe-0.3.9
- old
+ new
@@ -52,20 +52,22 @@
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 /\A(-?\d+)-(\d+)\)(\d+)\)(\d+)\z/ ; c, y, m, d = [$1, $4, $3, $2]
+
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 = [ ]
+ else ; c, y, m, d = [ ]
end
ordered = [c, y, m, d]
- ordered.pop until ordered.last
+ ordered.pop until ordered.last || ordered.empty?
raise ArgumentError, "can't parse #{source}" if ordered.empty? || ordered.include?(nil)
ordered.map {|n| n.to_s}.join('-')
end
private