Sha256: f3f3c10474e2a354c8fde840db3cdb925b4e68ca23ff8c7152d2d4657481cfad

Contents?: true

Size: 627 Bytes

Versions: 3

Compression:

Stored size: 627 Bytes

Contents

# frozen_string_literal: true

module SiteMaps
  class AtomicRepository
    attr_reader :main_url, :preloaded_index_links

    def initialize(main_url)
      @main_url = main_url
      @preloaded_index_links = Concurrent::Array.new
      @generated_urls = Concurrent::Hash.new
    end

    def generate_url(raw_location)
      location = IncrementalLocation.new(main_url, raw_location)
      (@generated_urls[location.relative_directory] ||= location).next.url
    end

    def remaining_index_links
      preloaded_index_links.reject do |link|
        @generated_urls.key?(link.relative_directory)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
site_maps-0.0.1.beta3 lib/site_maps/atomic_repository.rb
site_maps-0.0.1.beta2 lib/site_maps/atomic_repository.rb
site_maps-0.0.1.beta1 lib/site_maps/atomic_repository.rb