lib/berkshelf/cached_cookbook.rb in berkshelf-2.0.18 vs lib/berkshelf/cached_cookbook.rb in berkshelf-3.0.0.beta1

- old
+ new

@@ -1,9 +1,7 @@ module Berkshelf class CachedCookbook < Ridley::Chef::Cookbook - @loaded = Hash.new - class << self # @param [#to_s] path # a path on disk to the location of a Cookbook downloaded by the Downloader # # @return [CachedCookbook] @@ -12,16 +10,24 @@ def from_store_path(path) path = Pathname.new(path) cached_name = File.basename(path.to_s).slice(DIRNAME_REGEXP, 1) return nil if cached_name.nil? - @loaded[path.to_s] ||= from_path(path, name: cached_name) + from_path(path, name: cached_name) end end DIRNAME_REGEXP = /^(.+)-(.+)$/ + extend Forwardable + + def_delegator :metadata, :description + def_delegator :metadata, :maintainer + def_delegator :metadata, :maintainer_email + def_delegator :metadata, :license + def_delegator :metadata, :platforms + # @return [Hash] def dependencies metadata.recommendations.merge(metadata.dependencies) end @@ -36,22 +42,28 @@ a.push " Platforms: #{pretty_map(metadata.platforms, 14)}" unless metadata.platforms.blank? a.push "Dependencies: #{pretty_map(dependencies, 14)}" unless dependencies.blank? end.join("\n") end + # High-level information about this cached cookbook in JSON format + # + # @return [String] def pretty_json - pretty_hash.to_json + JSON.pretty_generate(pretty_hash) end + # High-level information about this cached cookbook in Hash format + # + # @return [Hash] def pretty_hash {}.tap do |h| - h[:name] = cookbook_name unless name.blank? + h[:name] = cookbook_name unless cookbook_name.blank? h[:version] = version unless version.blank? - h[:description] = metadata.description unless metadata.description.blank? - h[:author] = metadata.maintainer unless metadata.maintainer.blank? - h[:email] = metadata.maintainer_email unless metadata.maintainer_email.blank? - h[:license] = metadata.license unless metadata.license.blank? - h[:platforms] = metadata.platforms.to_hash unless metadata.platforms.blank? + h[:description] = description unless description.blank? + h[:author] = maintainer unless maintainer.blank? + h[:email] = maintainer_email unless maintainer_email.blank? + h[:license] = license unless license.blank? + h[:platforms] = platforms.to_hash unless platforms.blank? h[:dependencies] = dependencies.to_hash unless dependencies.blank? end end private