class Ecoportal::API::V1::SchemaField

Public Instance Methods

parse_text(value) click to toggle source
# File lib/ecoportal/api/v1/schema_field.rb, line 7
def parse_text(value)
  values = [*value.to_s.lines].map do |line|
    line = line.chomp
    next if line == ""
    case type
    when "text", "phone_number"
      line
    when "number"
      Float(line) rescue return nil, false
    when "boolean"
      %w[true TRUE True Y y YES X x].include?(line)
    when "select"
      return nil, false unless options.include?(line)
      line
    when "date"
      Date.parse(line) rescue return nil, false
    end
  end.compact
  if multiple
    return values, true
  else
    return values.first, true
  end
end