|
module Host
|
|
def self.method_missing(method, *args, &block)
|
|
type = "Host::Managed"
|
|
case method.to_s
|
|
when /create/, 'new'
|
|
if args.empty? or args[0].nil? # got no parameters
|
|
#set the default type
|
|
args = [{:type => type}]
|
|
else # got some parameters
|
|
args[0][:type] ||= type # adds the type if it doesnt exists
|
|
type = args[0][:type] # stores the type for later usage.
|
|
end
|
|
end
|
|
|
|
type.constantize.send(method,*args, &block)
|
|
end
|
|
|
|
# the API base controller expects to call 'respond_to?' on this, which
|
|
# this module doesn't have. So we stub it out to make that logic work for
|
|
# the "find_by_*" classes that Rails will provide
|
|
def self.respond_to?(method, include_private = false)
|
|
if method.to_s =~ /\Afind_by_(.*)\Z/
|
|
true
|
|
else
|
|
super
|
|
end
|
|
end
|
|
end
|