class ChefZero::ChefData::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/chef_data/cookbook_data.rb, line 178
def initialize(cookbook)
  name(cookbook.name)
  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] = Mash.new
  end
end

Public Instance Methods

from_json(json) click to toggle source
# File lib/chef_zero/chef_data/cookbook_data.rb, line 186
def from_json(json)
  merge!(FFI_Yajl::Parser.parse(json))
end

Private Instance Methods

attribute(name, options) click to toggle source
# File lib/chef_zero/chef_data/cookbook_data.rb, line 213
def attribute(name, options)
  self[:attributes][name] = options
end
cookbook_arg(key, cookbook, version_constraints) click to toggle source
# File lib/chef_zero/chef_data/cookbook_data.rb, line 217
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/chef_data/cookbook_data.rb, line 192
def depends(cookbook, *version_constraints)
  cookbook_arg(:dependencies, cookbook, version_constraints)
end
gem(*opts) click to toggle source
# File lib/chef_zero/chef_data/cookbook_data.rb, line 204
def gem(*opts)
  self[:gems] ||= []
  self[:gems] << opts
end
method_missing(key, *values) click to toggle source
# File lib/chef_zero/chef_data/cookbook_data.rb, line 221
def method_missing(key, *values)
  if values.nil?
    self[key.to_sym]
  else
    if values.length > 1
      store key.to_sym, values
    else
      store key.to_sym, values.first
    end
  end
end
provides(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/chef_data/cookbook_data.rb, line 200
def provides(cookbook, *version_constraints)
  cookbook_arg(:providing, cookbook, version_constraints)
end
recipe(recipe, description) click to toggle source
# File lib/chef_zero/chef_data/cookbook_data.rb, line 209
def recipe(recipe, description)
  self[:recipes][recipe] = description
end
supports(cookbook, *version_constraints) click to toggle source
# File lib/chef_zero/chef_data/cookbook_data.rb, line 196
def supports(cookbook, *version_constraints)
  cookbook_arg(:supports, cookbook, version_constraints)
end