Sha256: e0306cadaa28c30bfccc40d53a52940f95631e843d48f654da54149bb75ff5e4

Contents?: true

Size: 568 Bytes

Versions: 3

Compression:

Stored size: 568 Bytes

Contents

module EnsureIt
  patch Object do
    def ensure_hash(*args, default: {}, **opts)
      default
    end

    def ensure_hash!(*args, **opts)
      opts[:message] ||= '#{subject} should be a Hash'
      EnsureIt.raise_error(:ensure_hash!, **opts)
    end
  end

  patch Hash do
    using EnsureIt if ENSURE_IT_REFINED

    def ensure_hash(*args, default: {}, **opts)
      return self if opts.empty? || opts[:symbolize_keys] != true
      Hash[map { |k, v| [k.ensure_symbol, v] }.reject { |x| x[0].nil? }]
    end
    alias_method :ensure_hash!, :ensure_hash
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ensure_it-1.0.0 lib/ensure_it/ensure_hash.rb
ensure_it-0.1.5 lib/ensure_it/ensure_hash.rb
ensure_it-0.1.4 lib/ensure_it/ensure_hash.rb