Sha256: 7b9a9e46105b61343e32c09a67d3955956c780d40d46b9852fe282db7d72db88

Contents?: true

Size: 824 Bytes

Versions: 14

Compression:

Stored size: 824 Bytes

Contents

class Hubspot::Collection
  def initialize(opts = {}, &block)
    @options = opts
    @fetch_proc = block
    fetch
  end

  def refresh
    fetch
    self
  end

  def resources
    @resources
  end

  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
  def fetch
    @resources = @fetch_proc.call(@options)
  end

  def respond_to_missing?(name, include_private = false)
    @resources.respond_to?(name, include_private)
  end

  def method_missing(method, *args, &block)
    @resources.public_send(method, *args, &block)
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
hubspot-api-ruby-0.19.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.18.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.17.1 lib/hubspot/collection.rb
hubspot-api-ruby-0.17.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.16.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.15.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.14.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.13.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.12.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.11.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.10.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.9.0 lib/hubspot/collection.rb
hubspot-api-ruby-0.8.1 lib/hubspot/collection.rb
hubspot-api-ruby-0.8.0 lib/hubspot/collection.rb