lib/brdata/date_portuguese.rb in brdata-2.1.15 vs lib/brdata/date_portuguese.rb in brdata-3.0.0

- old
+ new

@@ -1,47 +1,50 @@ -module ActiveSupport::CoreExtensions::String::Conversions +class String # Cria a data no padrao brasileiro e permanece aceitando no formato tradicional. # # Exemplo: # "27/09/2007".to_date + alias_method :_original_to_date, :to_date + def to_date - if /(\d{1,2})\W(\d{1,2})\W(\d{4})/ =~ self + if /^(0[1-9]|[12]\d|3[01])\W(0[1-9]|1[012])\W(\d{4})$/ =~ self ::Date.new($3.to_i, $2.to_i, $1.to_i) else - ::Date.new(*::Date._parse(self, false).values_at(:year, :mon, :mday)) + _original_to_date end end end class Date - + # Retorna a data no padrao brasileiro # # Exemplo: # data = Date.new(2007, 9, 27) # data.to_s_br ==> "27/09/2007" def to_s_br strftime("%d/%m/%Y") end - + # Valida se uma string eh uma data valida # # Exemplo: # Date.valid?('01/01/2007') ==> true # Date.valid?('32/01/2007') ==> false def self.valid?(date) begin date = date.to_date - Date.valid_civil?(date.year, date.month, date.day) + Date.valid_civil?(date.year, date.month, date.day) rescue return false end true end - + end class NilClass def to_s_br "" end end +