class Serverkit::ResourceBuilder
Public Class Methods
new(recipe, attributes)
click to toggle source
@param [Serverkit::Recipe] recipe @param [Hash] attributes
# File lib/serverkit/resource_builder.rb, line 23 def initialize(recipe, attributes) @attributes = attributes @recipe = recipe end
Public Instance Methods
build()
click to toggle source
@return [Serverkit::Resources::Base]
# File lib/serverkit/resource_builder.rb, line 29 def build resource_class.new(@recipe, @attributes) end
Private Instance Methods
available_resource_classes()
click to toggle source
@return [Array<Class>]
# File lib/serverkit/resource_builder.rb, line 36 def available_resource_classes Resources.constants.select do |constant_name| constant = Resources.const_get(constant_name) constant < Resources::Base && !constant.abstract_class? end end
has_known_type?()
click to toggle source
# File lib/serverkit/resource_builder.rb, line 43 def has_known_type? available_resource_classes.map(&:to_s).include?(resource_class_name) end
resource_class()
click to toggle source
@return [Class]
# File lib/serverkit/resource_builder.rb, line 48 def resource_class if type.nil? Resources::Missing elsif has_known_type? Resources.const_get(resource_class_name, false) else Resources::Unknown end end
resource_class_name()
click to toggle source
@return [String] (e.g. “File”, “Symlink”)
# File lib/serverkit/resource_builder.rb, line 59 def resource_class_name type.to_s.camelize end
type()
click to toggle source
@note Expected to return String in normal case @return [Object] (e.g. “file”, “symlink”)
# File lib/serverkit/resource_builder.rb, line 65 def type @attributes["type"] end