Sha256: e56e692b0a514bf9f73c61e4992e7f3829b56a9807dc263564fc00aabad284fa

Contents?: true

Size: 1.57 KB

Versions: 3

Compression:

Stored size: 1.57 KB

Contents

class ActiveRecord::Base

  # Basado en soluciones de
  # http://stackoverflow.com/questions/6541209/decimals-and-commas-when-entering-a-number-into-a-ruby-on-rails-form 
  def self.flotante_localizado(*fields)
    fields.each do |f|
      define_method("#{f}_localizado") do
        if attribute_method?(f)
          val = read_attribute(f)
        else
          val = self.send(f) #read_attribute(f)
        end
        val ? val.to_s.a_decimal_localizado : nil
      end
      define_method("#{f}_localizado=") do |e|
        if attribute_method?(f)
          write_attribute(f, e.to_s.a_decimal_nolocalizado)
        else
          self.send(f.to_s + '=', e.to_s.a_decimal_nolocalizado)
        end
      end
    end
  end

  def self.fecha_ddMyyyy(*fields)
    fields.each do |f|
      define_method("#{f}_ddMyyyy") do
        val = read_attribute(f)
        if !val
          return nil
        end
        val = val.to_s
        a = val[0, 4]
        m = val[5, 2]
        d = val[8, 2]
        meses = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 
               'Ago', 'Sep', 'Oct', 'Nov', 'Dic']
        return "#{d}/#{meses[m.to_i - 1]}/#{a}"
      end
      define_method("#{f}_ddMyyyy=") do |e|
        val = e.to_s
        a = val[7, 4]
        nomm = val[3, 3]
        d = val[0, 2]
        meses = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 
               'Ago', 'Sep', 'Oct', 'Nov', 'Dic']
        m = 1
        nm = meses.index(nomm)
        if nm
          m = 1 + meses.index(nomm)
        end
        write_attribute(f, "#{a}-#{m}-#{d}")
      end
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
msip-2.2.0.alfa3 lib/ext/ActiveRecord/base.rb
msip-2.2.0.alfa2 lib/ext/ActiveRecord/base.rb
msip-2.2a2 lib/ext/ActiveRecord/base.rb