class Hubspot::Collection

Public Class Methods

new(opts = {}, &block) click to toggle source
# File lib/hubspot/collection.rb, line 2
def initialize(opts = {}, &block)
  @options = opts
  @fetch_proc = block
  fetch
end

Public Instance Methods

refresh() click to toggle source
# File lib/hubspot/collection.rb, line 8
def refresh
  fetch
  self
end
resources() click to toggle source
# File lib/hubspot/collection.rb, line 13
def resources
  @resources
end
update_all(opts = {}) click to toggle source
# File lib/hubspot/collection.rb, line 17
def update_all(opts = {})
  return true if empty?

  # This assumes that all resources are the same type
  resource_class = resources.first.class
  unless resource_class.respond_to?(:batch_update)
    raise "#{resource_class} does not support bulk update"
  end

  resource_class.batch_update(resources, opts)
end

Protected Instance Methods

fetch() click to toggle source
# File lib/hubspot/collection.rb, line 30
def fetch
  @resources = @fetch_proc.call(@options)
end
method_missing(method, *args, &block) click to toggle source
# File lib/hubspot/collection.rb, line 38
def method_missing(method, *args, &block)
  @resources.public_send(method, *args, &block)
end
respond_to_missing?(name, include_private = false) click to toggle source
# File lib/hubspot/collection.rb, line 34
def respond_to_missing?(name, include_private = false)
  @resources.respond_to?(name, include_private)
end