module Metro2::Fields

Public Instance Methods

alphanumeric_const_field(name, required_length, val, permitted_chars = Metro2::ALPHANUMERIC) click to toggle source
# File lib/metro_2/fields.rb, line 44
def alphanumeric_const_field(name, required_length, val, permitted_chars = Metro2::ALPHANUMERIC)
  fields << name

  # getter
  define_method name do
    val
  end

  # to_metro2

  define_method "#{name}_to_metro2" do
    Metro2.alphanumeric_to_metro2(val, required_length, permitted_chars, name)
  end
end
alphanumeric_field(name, required_length, permitted_chars = Metro2::ALPHANUMERIC) click to toggle source
# File lib/metro_2/fields.rb, line 3
def alphanumeric_field(name, required_length, permitted_chars = Metro2::ALPHANUMERIC)
  fields << name

  # getter
  define_method name do
    instance_variable_get("@#{name}")
  end

  # setter (includes validations)
  define_method "#{name}=" do | val |
    instance_variable_set("@#{name}", val)
  end

  # to_metro2
  define_method "#{name}_to_metro2" do
    val = instance_variable_get("@#{name}")
    Metro2.alphanumeric_to_metro2(val, required_length, permitted_chars, name)
  end
end
date_field(name) click to toggle source
# File lib/metro_2/fields.rb, line 77
def date_field(name)
  fields << name

  # getter
  define_method name do
    instance_variable_get("@#{name}")
  end

  # setter (includes validations)
  define_method "#{name}=" do | val |
    instance_variable_set("@#{name}", val)
  end

  # to_metro2
  define_method "#{name}_to_metro2" do
    # Right justified and zero-filled
    val = instance_variable_get("@#{name}")
    val = val&.strftime('%m%d%Y')

    Metro2.numeric_to_metro2(val, 8)
  end
end
monetary_field(name) click to toggle source
# File lib/metro_2/fields.rb, line 73
def monetary_field(name)
  numeric_field(name, 9, is_monetary: true)
end
numeric_const_field(name, required_length, val, is_monetary = false) click to toggle source
# File lib/metro_2/fields.rb, line 59
def numeric_const_field(name, required_length, val, is_monetary = false)
  fields << name

  # getter
  define_method name do
    val
  end

  # to_metro2
  define_method "#{name}_to_metro2" do
    Metro2.numeric_to_metro2(val, required_length, is_monetary: is_monetary)
  end
end
numeric_field(name, required_length, is_monetary: false, possible_values: nil) click to toggle source
# File lib/metro_2/fields.rb, line 23
def numeric_field(name, required_length, is_monetary: false, possible_values: nil)
  fields << name

  # getter
  define_method name do
    instance_variable_get("@#{name}")
  end

  # setter (includes validations)
  define_method "#{name}=" do | val |
    instance_variable_set("@#{name}", val)
  end

  # to_metro2
  define_method "#{name}_to_metro2" do
    val = instance_variable_get("@#{name}")
    Metro2.numeric_to_metro2(val, required_length, is_monetary: is_monetary,
                             name: name, possible_values: possible_values)
  end
end
timestamp_field(name) click to toggle source
# File lib/metro_2/fields.rb, line 100
def timestamp_field(name)
  fields << name

  # getter
  define_method name do
    instance_variable_get("@#{name}")
  end

  # setter (includes validations)
  define_method "#{name}=" do | val |
    instance_variable_set("@#{name}", val)
  end

  # to_metro2
  define_method "#{name}_to_metro2" do
    # Right justified and zero-filled
    val = instance_variable_get("@#{name}")
    val = val&.strftime('%m%d%Y%H%M%S')
    Metro2.numeric_to_metro2(val, 14)
  end
end