Class: YARD::CodeObjects::Chef::ChefObject
- Inherits:
-
YARD::CodeObjects::ClassObject
- Object
- YARD::CodeObjects::ClassObject
- YARD::CodeObjects::Chef::ChefObject
- Defined in:
- lib/yard-chef/code_objects/chef_object.rb
Overview
A ChefObject is an abstract implementation of all chef elements (cookbooks, resources, providers, recipes, attributes and actions).
Direct Known Subclasses
ActionObject, AttributeObject, CookbookObject, DependencyObject, ProviderObject, RecipeObject, ResourceObject
Instance Attribute Summary collapse
-
#docstring_type ⇒ Symbol, String
readonly
Returns the formatting type of docstring (Example: :markdown, :rdoc).
Class Method Summary collapse
-
.register(namespace, name, type) ⇒ <type>Object
Factory for creating and registering chef element object in YARD::Registry.
-
.register_element(element) ⇒ Object
Register a chef element class.
Instance Method Summary collapse
-
#children_by_type(type) ⇒ Array<ChefObject>
Returns children of an object of a particular type.
-
#cookbooks ⇒ Array<CookbookObject>
Gets all Chef cookbooks.
-
#initialize(namespace, name) ⇒ ChefObject
constructor
Creates a new ChefObject object.
Constructor Details
#initialize(namespace, name) ⇒ ChefObject
Creates a new ChefObject object.
43 44 45 46 |
# File 'lib/yard-chef/code_objects/chef_object.rb', line 43 def initialize(namespace, name) super(namespace, name) @docstring_type = :markdown end |
Instance Attribute Details
#docstring_type ⇒ Symbol, String (readonly)
Returns the formatting type of docstring (Example: :markdown, :rdoc).
34 35 36 |
# File 'lib/yard-chef/code_objects/chef_object.rb', line 34 def docstring_type @docstring_type end |
Class Method Details
.register(namespace, name, type) ⇒ <type>Object
Factory for creating and registering chef element object in YARD::Registry.
belong
67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/yard-chef/code_objects/chef_object.rb', line 67 def self.register(namespace, name, type) element = @@chef_elements[type] if element element_obj = YARD::Registry.resolve(:root, "#{namespace}::#{name}") if element_obj.nil? element_obj = element.new(namespace, name) log.info "Created [#{type.to_s.capitalize}]" \ " #{element_obj.name} => #{element_obj.namespace}" end element_obj else raise "Invalid chef element type #{type}" end end |
.register_element(element) ⇒ Object
Register a chef element class.
52 53 54 55 |
# File 'lib/yard-chef/code_objects/chef_object.rb', line 52 def self.register_element(element) @@chef_elements ||= {} @@chef_elements[element] = self end |
Instance Method Details
#children_by_type(type) ⇒ Array<ChefObject>
Returns children of an object of a particular type.
88 89 90 91 |
# File 'lib/yard-chef/code_objects/chef_object.rb', line 88 def children_by_type(type) children = YARD::Registry.all(type) children.select { |child| child.parent == self } end |
#cookbooks ⇒ Array<CookbookObject>
Gets all Chef cookbooks.
97 98 99 |
# File 'lib/yard-chef/code_objects/chef_object.rb', line 97 def cookbooks children_by_type(:cookbook) end |