Sha256: 41de66f12a4e7acd109ce6a7e02e411c6458bfd633f81ee810702677ae429985

Contents?: true

Size: 705 Bytes

Versions: 25

Compression:

Stored size: 705 Bytes

Contents

module PactBroker
  module Client
    module HashRefinements
      refine Hash do
        def compact
          h = {}
          each do |key, value|
            h[key] = value unless value == nil
          end
          h
        end unless Hash.method_defined? :compact

        def compact!
          reject! {|_key, value| value == nil}
        end unless Hash.method_defined? :compact!

        def except(*keys)
          if keys.size > 4 && size > 4 # index if O(m*n) is big
            h = {}
            keys.each { |key| h[key] = true }
            keys = h
          end
          reject { |key, _value| keys.include? key}
        end unless method_defined? :except
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
pact_broker-client-1.77.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.76.2 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.76.1 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.76.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.75.4 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.75.3 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.75.1 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.75.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.74.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.73.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.72.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.71.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.70.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.69.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.68.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.67.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.66.1 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.66.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.65.0 lib/pact_broker/client/hash_refinements.rb
pact_broker-client-1.64.0 lib/pact_broker/client/hash_refinements.rb