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