Sha256: 35dab61bc8da9453e6dac6add0458377d1a3f4b66ae5fc56c988c994ea59fb22

Contents?: true

Size: 818 Bytes

Versions: 3

Compression:

Stored size: 818 Bytes

Contents

module GoldenFleece
  module Utility
    FALSE_VALUES = [false, 0, "0", "f", "F", "false", "FALSE", "off", "OFF"].to_set

    def build_json_path(parent_path, key_name)
      "#{parent_path}#{'/' unless parent_path =~ /\/$/}#{key_name}"
    end

    def error_suffix(attribute, path)
      "'#{path}' on column '#{attribute}'"
    end

    # Copied from ActiveModel::Type::Boolean
    # https://github.com/rails/rails/blob/master/activemodel/lib/active_model/type/boolean.rb
    def cast_boolean(value)
      if value == "" || value == nil
        nil
      else
        !FALSE_VALUES.include?(value)
      end
    end

    def deep_stringify_keys(hash)
      hash.reduce({}) { |memo, (key, value)|
        memo[key.to_s] = value.is_a?(Hash) ? deep_stringify_keys(value) : value
        memo
      }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
golden_fleece-1.0.1 lib/golden_fleece/utility.rb
golden_fleece-1.0.0 lib/golden_fleece/utility.rb
golden_fleece-0.1.4 lib/golden_fleece/utility.rb