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