Sha256: 10444286361a7dc39e07c4dc921d1ca4b7e288460b9a4d065110da4af8d43f8a

Contents?: true

Size: 819 Bytes

Versions: 25

Compression:

Stored size: 819 Bytes

Contents

module OpenAPIParser::Findable
  # @param [String] reference
  # @return [OpenAPIParser::Findable]
  def find_object(reference)
    return nil unless reference.start_with?(object_reference)
    return self if object_reference == reference

    @find_object_cache = {} unless defined? @find_object_cache
    if (obj = @find_object_cache[reference])
      return obj
    end

    if (child = _openapi_all_child_objects[reference])
      @find_object_cache[reference] = child
      return child
    end

    _openapi_all_child_objects.values.each do |c|
      if (obj = c.find_object(reference))
        @find_object_cache[reference] = obj
        return obj
      end
    end

    nil
  end

  def purge_object_cache
    @find_object_cache = {}

    _openapi_all_child_objects.values.each(&:purge_object_cache)
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
openapi_parser-0.9.0 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.8.0 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.7.0 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.6.1 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.6.0 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.5.0 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.4.1 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.4.0 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.3.1 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.3.0 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.2.7 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.2.6 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.2.5 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.2.4 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.2.3 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.2.2 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.2.1 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.2.0 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.1.9 lib/openapi_parser/concerns/findable.rb
openapi_parser-0.1.8 lib/openapi_parser/concerns/findable.rb