lib/ecoportal/api/v1/schema_field.rb in ecoportal-api-0.1.3 vs lib/ecoportal/api/v1/schema_field.rb in ecoportal-api-0.1.4

- old
+ new

@@ -1,9 +1,34 @@ module Ecoportal module API class V1 class SchemaField < Common::BaseModel passthrough :id, :alt_id, :name, :optional, :shared, :multiple, :type, :options, to: :doc + + 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 end end end end