Sha256: 42036bd900f7de59dc66d4181801e8d22d3c5d9c8cdb5b0d6e7559aae3996c3d

Contents?: true

Size: 603 Bytes

Versions: 6

Compression:

Stored size: 603 Bytes

Contents

module MarkMapper
  module Normalizers
    class FieldsValue

      # Public: Given a value returns it normalized for MarkLogic's fields option
      def call(value)
        return nil if value.respond_to?(:empty?) && value.empty?

        case value
          when Array
            if value.size == 1 && value.first.is_a?(Hash)
              value.first
            else
              value.flatten
            end
          when Symbol
            [value]
          when String
            value.split(',').map { |v| v.strip }
          else
            value
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mark_mapper-0.0.6 lib/mark_mapper/normalizers/fields_value.rb
mark_mapper-0.0.5 lib/mark_mapper/normalizers/fields_value.rb
mark_mapper-0.0.4 lib/mark_mapper/normalizers/fields_value.rb
mark_mapper-0.0.3 lib/mark_mapper/normalizers/fields_value.rb
mark_mapper-0.0.2 lib/mark_mapper/normalizers/fields_value.rb
mark_mapper-0.0.1 lib/mark_mapper/normalizers/fields_value.rb