Sha256: 1feebb38bd4f3b1fed953b110fc6015718460ea407eacea1c989c11ac4b933d6

Contents?: true

Size: 864 Bytes

Versions: 43

Compression:

Stored size: 864 Bytes

Contents

class Releaf::Settings::NormalizeValue
  include Releaf::Service
  attribute :value, Object
  attribute :input_type, Symbol

  def call
    if self.class.respond_to? normalization_method
      self.class.send(normalization_method, value)
    else
      value
    end
  end

  def normalization_method
    "normalize_#{input_type}"
  end

  def self.normalize_decimal(value)
    value.to_s.sub(",", ".").to_d
  end

  def self.normalize_float(value)
    value.to_s.sub(",", ".").to_f
  end

  def self.normalize_integer(value)
    value.to_i
  end

  def self.normalize_time(value)
    Time.parse(value) if value.present?
  end

  def self.normalize_datetime(value)
    DateTime.parse(value) if value.present?
  end

  def self.normalize_date(value)
    Date.parse(value) if value.present?
  end

  def self.normalize_boolean(value)
    value.to_s == '1'
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
releaf-core-3.1.0 app/lib/releaf/settings/normalize_value.rb
releaf-core-3.0.3 app/lib/releaf/settings/normalize_value.rb
releaf-core-3.0.2 app/lib/releaf/settings/normalize_value.rb
releaf-core-3.0.1 app/lib/releaf/settings/normalize_value.rb
releaf-core-3.0.0 app/lib/releaf/settings/normalize_value.rb
releaf-core-2.2.1 app/lib/releaf/settings/normalize_value.rb
releaf-core-2.2.0 app/lib/releaf/settings/normalize_value.rb
releaf-core-2.1.2 app/lib/releaf/settings/normalize_value.rb
releaf-core-2.1.1 app/lib/releaf/settings/normalize_value.rb
releaf-core-2.1.0 app/lib/releaf/settings/normalize_value.rb
releaf-core-2.0.1 app/lib/releaf/settings/normalize_value.rb
releaf-core-2.0.0 app/lib/releaf/settings/normalize_value.rb
releaf-core-1.1.22 app/lib/releaf/settings/normalize_value.rb
releaf-core-1.1.21 app/lib/releaf/settings/normalize_value.rb
releaf-core-1.1.20 app/lib/releaf/settings/normalize_value.rb
releaf-core-1.1.19 app/lib/releaf/settings/normalize_value.rb
releaf-core-1.1.18 app/lib/releaf/settings/normalize_value.rb
releaf-core-1.1.17 app/lib/releaf/settings/normalize_value.rb
releaf-core-1.1.16 app/lib/releaf/settings/normalize_value.rb
releaf-core-1.1.15 app/lib/releaf/settings/normalize_value.rb