Class: Berkshelf::CachedCookbook
- Inherits:
-
Ridley::Chef::Cookbook
- Object
- Ridley::Chef::Cookbook
- Berkshelf::CachedCookbook
- Extended by:
- Forwardable
- Defined in:
- lib/berkshelf/cached_cookbook.rb
Constant Summary collapse
- DIRNAME_REGEXP =
/^(.+)-(.+)$/.freeze
Class Method Summary collapse
-
.from_store_path(path) ⇒ CachedCookbook
An instance of CachedCookbook initialized by the contents found at the given path.
Instance Method Summary collapse
- #dependencies ⇒ Hash
-
#pretty_hash ⇒ Hash
High-level information about this cached cookbook in Hash format.
-
#pretty_json ⇒ String
High-level information about this cached cookbook in JSON format.
- #pretty_print ⇒ Object
Class Method Details
.from_store_path(path) ⇒ CachedCookbook
Returns an instance of CachedCookbook initialized by the contents found at the given path.
10 11 12 13 14 15 16 |
# File 'lib/berkshelf/cached_cookbook.rb', line 10 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_cookbooks[path.to_s] ||= from_path(path) end |
Instance Method Details
#dependencies ⇒ Hash
36 37 38 |
# File 'lib/berkshelf/cached_cookbook.rb', line 36 def dependencies .recommendations.merge(.dependencies) end |
#pretty_hash ⇒ Hash
High-level information about this cached cookbook in Hash format
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/berkshelf/cached_cookbook.rb', line 63 def pretty_hash {}.tap do |h| h[:name] = cookbook_name unless cookbook_name.blank? h[:version] = version unless version.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 |
#pretty_json ⇒ String
High-level information about this cached cookbook in JSON format
56 57 58 |
# File 'lib/berkshelf/cached_cookbook.rb', line 56 def pretty_json JSON.pretty_generate(pretty_hash) end |
#pretty_print ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/berkshelf/cached_cookbook.rb', line 40 def pretty_print [].tap do |a| a.push " Name: #{cookbook_name}" unless name.blank? a.push " Version: #{version}" unless version.blank? a.push " Description: #{.description}" unless .description.blank? a.push " Author: #{.maintainer}" unless .maintainer.blank? a.push " Email: #{.maintainer_email}" unless .maintainer_email.blank? a.push " License: #{.license}" unless .license.blank? a.push " Platforms: #{pretty_map(.platforms, 14)}" unless .platforms.blank? a.push "Dependencies: #{pretty_map(dependencies, 14)}" unless dependencies.blank? end.join("\n") end |