lib/zendesk_api/collection.rb in zendesk_api-0.0.9 vs lib/zendesk_api/collection.rb in zendesk_api-0.1.1
- old
+ new
@@ -210,10 +210,14 @@
def to_ary; nil; end
# Sends methods to underlying array of resources.
def method_missing(name, *args, &block)
- if Array.new.respond_to?(name)
+ methods = @resource_class.singleton_methods(false).map(&:to_sym)
+
+ if methods.include?(name)
+ @resource_class.send(name, @client, *args, &block)
+ elsif Array.new.respond_to?(name)
to_a.send(name, *args, &block)
else
opts = args.last.is_a?(Hash) ? args.last : {}
opts.merge!(:collection_path => @collection_path.dup.push(name))
self.class.new(@client, @resource_class, @options.merge(opts))