Sha256: 686226eb8a8d638fa0ee1e8dd6f7fd1d3916372ee91f337906e2f294462438b8

Contents?: true

Size: 1.25 KB

Versions: 12

Compression:

Stored size: 1.25 KB

Contents

require "json" unless defined?(JSON)
require "chef/mash"

module Berkshelf
  module APIClient
    # A representation of cookbook metadata indexed by a Berkshelf API Server. Returned
    # by sending messages to a {Berkshelf::APIClient} and used to download cookbooks
    # indexed by the Berkshelf API Server.
    class RemoteCookbook
      # @return [String]
      attr_reader :name
      # @return [String]
      attr_reader :version

      # @param [String] name
      # @param [String] version
      # @param [Hash] attributes
      def initialize(name, version, attributes = {})
        @name       = name
        @version    = version
        @attributes = ::Mash.new(attributes)
      end

      # @return [Hash]
      def dependencies
        @attributes[:dependencies]
      end

      # @return [Hash]
      def platforms
        @attributes[:platforms]
      end

      # @return [Symbol]
      def location_type
        @attributes[:location_type].to_sym
      end

      # @return [String]
      def location_path
        @attributes[:location_path]
      end

      def to_hash
        {
          name: name,
          version: version,
        }
      end

      def to_json(options = {})
        ::JSON.pretty_generate(to_hash, options)
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
berkshelf-8.0.15 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-8.0.13 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-8.0.12 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-8.0.9 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-8.0.7 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-8.0.5 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-8.0.2 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-8.0.1 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-8.0.0 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-7.2.2 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-7.2.1 lib/berkshelf/api_client/remote_cookbook.rb
berkshelf-7.2.0 lib/berkshelf/api_client/remote_cookbook.rb