Sha256: 7359d435571dcc0af18188d88ed4535fa8cd28045c0ca712f27f72b6445d45da

Contents?: true

Size: 984 Bytes

Versions: 3

Compression:

Stored size: 984 Bytes

Contents

module Eco::API::Common::People
  class DefaultParsers
    module Helpers
      module NullParsing
        private

        def parse_null(value)
          return                           if null?(value)
          return parse_null_on_hash(value) if value.is_a?(Hash)
          return value                     unless value.is_a?(Array)

          value.map {|val| parse_null(val)}
        end

        def parse_null_on_hash(value)
          return value unless value.is_a?(Hash)

          value.dup do |out|
            value.each do |key, val|
              next out.delete(key) unless (out[key] = parse_null(val))
            end
          end
        end

        def null?(value)
          return true  if value.nil?
          return false unless value.is_a?(String)
          return true  if value.strip.to_s.empty?

          str = value.strip.upcase
          ['NULL'].any? {|token| str == token}
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
eco-helpers-3.0.21 lib/eco/api/common/people/default_parsers/helpers/null_parsing.rb
eco-helpers-3.0.20 lib/eco/api/common/people/default_parsers/helpers/null_parsing.rb
eco-helpers-3.0.19 lib/eco/api/common/people/default_parsers/helpers/null_parsing.rb