Sha256: 24d5709f6913eb6c97602799494788c98107c045584bfbb6978bc1e99f9a67fb

Contents?: true

Size: 515 Bytes

Versions: 13

Compression:

Stored size: 515 Bytes

Contents

module JsonSpec
  module Exclusion
    extend self

    def exclude_keys(ruby)
      case ruby
      when Hash
        ruby.sort.inject({}) do |hash, (key, value)|
          hash[key] = exclude_keys(value) unless exclude_key?(key)
          hash
        end
      when Array
        ruby.map{|v| exclude_keys(v) }
      else ruby
      end
    end

    def exclude_key?(key)
      excluded_keys.include?(key)
    end

    def excluded_keys
      @excluded_keys ||= Set.new(JsonSpec.excluded_keys)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
json_spec-1.1.5 lib/json_spec/exclusion.rb
json_spec-1.1.4 lib/json_spec/exclusion.rb
json_spec-1.1.3 lib/json_spec/exclusion.rb
json_spec-1.1.2 lib/json_spec/exclusion.rb
json_spec-1.1.1 lib/json_spec/exclusion.rb
json_spec-1.1.0 lib/json_spec/exclusion.rb
json_spec-1.0.3 lib/json_spec/exclusion.rb
json_spec-1.0.2 lib/json_spec/exclusion.rb
json_spec-1.0.0 lib/json_spec/exclusion.rb
json_spec-0.8.1 lib/json_spec/exclusion.rb
json_spec-0.8.0 lib/json_spec/exclusion.rb
json_spec-0.7.0 lib/json_spec/exclusion.rb
json_spec-0.6.0 lib/json_spec/exclusion.rb