class Artifactory::Collection::Base

Attributes

block[R]
klass[R]
options[R]
parent[R]

Public Class Methods

new(klass, parent, options = {}, &block) click to toggle source

Create a new collection object (proxy).

@param [Class] klass

the child class object

@param [Object] parent

the parent object who created the collection

@param [Hash] options

the list of options given by the parent

@param [Proc] block

the block to evaluate for the instance
# File lib/artifactory/collections/base.rb, line 31
def initialize(klass, parent, options = {}, &block)
  @klass   = klass
  @parent  = parent
  @options = options
  @block   = block
end

Public Instance Methods

method_missing(m, *args, &block) click to toggle source

Use method missing to delegate methods to the class object or instance object.

# File lib/artifactory/collections/base.rb, line 42
def method_missing(m, *args, &block)
  if klass.respond_to?(m)
    if args.last.is_a?(Hash)
      args.last.merge(options)
    end

    klass.send(m, *args, &block)
  else
    instance.send(m, *args, &block)
  end
end

Private Instance Methods

instance() click to toggle source
# File lib/artifactory/collections/base.rb, line 61
def instance
  @instance ||= parent.instance_eval(&block)
end