class PuppetForgeServer::Models::Builder

Public Class Methods

new(attributes={}) click to toggle source
# File lib/puppet_forge_server/models/builder.rb, line 18
def initialize(attributes={})
  attributes.each do |name, value|
    send("#{name}=", value) unless value.to_s.empty?
  end
end

Public Instance Methods

method_missing(method_name, *args, &block) click to toggle source
# File lib/puppet_forge_server/models/builder.rb, line 24
def method_missing (method_name, *args, &block)
  PuppetForgeServer::Logger.get.error "Method #{method_name} with args #{args} not found in #{self.class.to_s}" unless method_name == :to_ary
end
to_hash(obj = self) click to toggle source
# File lib/puppet_forge_server/models/builder.rb, line 28
def to_hash(obj = self)
  # Quickly return if it's not one of ours
  unless obj.kind_of? Builder
    return obj
  end
  # Otherwise start building hash
  hash = {}
  obj.instance_variables.each do |var|
    var_value = obj.instance_variable_get(var)
    hash[var.to_s.delete('@')] = if var_value.kind_of?(Array)
      var_value.map {|v| to_hash(v)}
    elsif var_value.respond_to?(:to_hash)
     var_value.to_hash
    else
      var_value
    end
  end
  hash
end