class ChefZero::CookbookData::PretendCookbookMetadata

Handles loading configuration values from a Chef config file

@author Justin Campbell <justin.campbell@riotgames.com>

Public Class Methods

new(cookbook) click to toggle source

@param [String] path

# File lib/chef_zero/cookbook_data.rb, line 68
def initialize(cookbook)
  self.name(cookbook.name)
  self.recipes(cookbook.fully_qualified_recipe_names)
  %w(attributes grouping dependencies supports recommendations suggestions conflicting providing replacing recipes).each do |hash_arg|
    self[hash_arg.to_sym] = Hashie::Mash.new
  end
end

Public Instance Methods

from_json(json) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 76
def from_json(json)
  self.merge!(JSON.parse(json))
end

Private Instance Methods

attribute(name, options) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 114
def attribute(name, options)
  self[:attributes][name] = options
end
conflicts(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 98
def conflicts(cookbook, *version_constraints)
  cookbook_arg(:conflicting, cookbook, version_constraints)
end
cookbook_arg(key, cookbook, version_constraints) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 122
def cookbook_arg(key, cookbook, version_constraints)
  self[key][cookbook] = version_constraints.first || ">= 0.0.0"
end
depends(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 82
def depends(cookbook, *version_constraints)
  cookbook_arg(:dependencies, cookbook, version_constraints)
end
grouping(name, options) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 118
def grouping(name, options)
  self[:grouping][name] = options
end
method_missing(key, value = nil) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 126
def method_missing(key, value = nil)
  if value.nil?
    self[key.to_sym]
  else
    store key.to_sym, value
  end
end
provides(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 102
def provides(cookbook, *version_constraints)
  cookbook_arg(:providing, cookbook, version_constraints)
end
recipe(recipe, description) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 110
def recipe(recipe, description)
  self[:recipes][recipe] = description
end
recommends(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 90
def recommends(cookbook, *version_constraints)
  cookbook_arg(:recommendations, cookbook, version_constraints)
end
replaces(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 106
def replaces(cookbook, *version_constraints)
  cookbook_arg(:replacing, cookbook, version_constraints)
end
suggests(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 94
def suggests(cookbook, *version_constraints)
  cookbook_arg(:suggestions, cookbook, version_constraints)
end
supports(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/cookbook_data.rb, line 86
def supports(cookbook, *version_constraints)
  cookbook_arg(:supports, cookbook, version_constraints)
end