Sha256: 24199068ad754728f76f433ea72918bc0481d7235fb1165398af33ca4c35e869

Contents?: true

Size: 595 Bytes

Versions: 8

Compression:

Stored size: 595 Bytes

Contents

module Plucky
  module Normalizers
    class FieldsValue

      # Public: Given a value returns it normalized for Mongo'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

8 entries across 8 versions & 1 rubygems

Version Path
plucky-0.7.0 lib/plucky/normalizers/fields_value.rb
plucky-0.6.6 lib/plucky/normalizers/fields_value.rb
plucky-0.6.5 lib/plucky/normalizers/fields_value.rb
plucky-0.6.4 lib/plucky/normalizers/fields_value.rb
plucky-0.6.3 lib/plucky/normalizers/fields_value.rb
plucky-0.6.2 lib/plucky/normalizers/fields_value.rb
plucky-0.6.1 lib/plucky/normalizers/fields_value.rb
plucky-0.6.0 lib/plucky/normalizers/fields_value.rb