Sha256: 749ea27625c14d5f3a1ff112c06b72b8fbf53fb81cae75d95ed14313744de177

Contents?: true

Size: 851 Bytes

Versions: 5

Compression:

Stored size: 851 Bytes

Contents

module Middleman
  module Sprockets
    class ResourceStore
      include Contracts

      attr_reader :store

      def initialize
        @store = {}
      end

      Contract IsA['::Middleman::Sprockets::Resource'] => Any
      def add resource
        store[resource.file_descriptor.full_path] = resource
      end

      Contract ArrayOf[IsA['::Middleman::Sprockets::Resource']]
      def resources
        store.values
      end

      Contract ArrayOf[Pathname]
      def paths
        store.keys
      end

      Contract Pathname => Bool
      def matching_path? path
        paths.include?(path)
      end

      Contract Or[String, Pathname] => Maybe[IsA['::Middleman::Sprockets::Resource']]
      def find_by_path path
        path = Pathname.new(path) unless path.is_a?(Pathname)
        store.fetch path, nil
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
files.com-1.0.55 docs/vendor/bundle/ruby/2.5.0/gems/middleman-sprockets-4.1.1/lib/middleman-sprockets/resource_store.rb
middleman-sprockets-4.1.1 lib/middleman-sprockets/resource_store.rb
middleman-sprockets-4.1.0 lib/middleman-sprockets/resource_store.rb
middleman-sprockets-4.0.0 lib/middleman-sprockets/resource_store.rb
middleman-sprockets-4.0.0.rc.3 lib/middleman-sprockets/resource_store.rb