Module: LargeTextField::Owner::ClassMethods

Defined in:
lib/large_text_field/owner.rb

Instance Method Summary collapse

Instance Method Details

#formatted_integer_value(value) ⇒ Object



110
111
112
# File 'lib/large_text_field/owner.rb', line 110

def formatted_integer_value(value)
  value.to_i.to_s.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1,")
end

#large_text_field(field_name, maximum: nil, singularize_errors: false) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/large_text_field/owner.rb', line 90

def large_text_field(field_name, maximum: nil, singularize_errors: false)
  field_name = field_name.to_s

  # validate custom maximum
  if maximum
    if !maximum.is_a? Integer
      raise ArgumentError, "maximum must be a number"
    elsif maximum > MAX_LENGTH
      raise ArgumentError, "maximum can't be greater than #{formatted_integer_value(MAX_LENGTH)}"
    elsif maximum.negative?
      raise ArgumentError, "maximum can't be less than 0"
    end
  end

  large_text_field_options[field_name] = { maximum: maximum, singularize_errors: singularize_errors }
  define_method(field_name)              {         get_text_field(field_name)        }
  define_method("#{field_name}=")        { |value| set_text_field(field_name, value) }
  define_method("#{field_name}_changed?") { text_field_changed(field_name) }
end