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