Sha256: 5fa0aa4c20f7b3d56d2899018905b153624ee03865979893050ea6b0484b6b20

Contents?: true

Size: 1.35 KB

Versions: 6

Compression:

Stored size: 1.35 KB

Contents

module Berkshelf::API
  class CacheBuilder
    module Worker
      class Supermarket < Worker::Base
        worker_type 'supermarket'

        # @param [Hash] options
        #   see {API::SiteConnector::Supermarket.new} for options
        def initialize(options = {})
          @connection = Berkshelf::API::SiteConnector::Supermarket.new(options)
          super
        end

        # @return [Array<RemoteCookbook>]
        #  The list of cookbooks this builder can find
        def cookbooks
          connection.universe.inject([]) do |list, (name, versions)|
            versions.each do |version, info|
              list << RemoteCookbook.new(name, version, self.class.worker_type, info["location_path"], priority, info)
            end

            list
          end
        end

        # Return the metadata of the given RemoteCookbook. If the metadata could not be found or parsed
        # nil is returned.
        #
        # @param [RemoteCookbook] remote
        #
        # @return [Ridley::Chef::Cookbook::Metadata, nil]
        def metadata(remote)
          Ridley::Chef::Cookbook::Metadata.from_hash(
            'name'         => remote.name,
            'version'      => remote.version,
            'dependencies' => remote.info['dependencies'] || {},
          )
        end

        private

          attr_accessor :connection
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
berkshelf-api-3.0.0 lib/berkshelf/api/cache_builder/worker/supermarket.rb
berkshelf-api-2.2.0 lib/berkshelf/api/cache_builder/worker/supermarket.rb
berkshelf-api-2.1.3 lib/berkshelf/api/cache_builder/worker/supermarket.rb
berkshelf-api-2.1.2 lib/berkshelf/api/cache_builder/worker/supermarket.rb
berkshelf-api-2.1.1 lib/berkshelf/api/cache_builder/worker/supermarket.rb
berkshelf-api-2.1.0 lib/berkshelf/api/cache_builder/worker/supermarket.rb