class Vendor::Products

Attributes

block[R]
products[R]

Public Class Methods

new(products=[], &block) click to toggle source
# File lib/project/products.rb, line 9
def initialize(products=[], &block)
  # Set up products array
  @products = []

  # Set up block
  @block = block

  # Set up blocks for giving a callback
  @blocks = []

  # Initialize buy block
  @buy = Vendor::Buy.new

  # Set up info for products
  products.each do |product|
    # Set default options
    default_options = {
      :id => "no_id",
      :secret => "no_secret",
      :subscription => false,
      :price => "0.99",
      :price_locale => nil,
      :title => "No Title",
      :desc => "No Description.",
      :sk_product => nil
    }
    options = default_options.merge(product)

    # Update product and set exists variable
    @products << Vendor::Product.new(options.to_object, @buy) do |block|
      @blocks << block
      @block.call(@blocks) unless @block.nil? || @blocks.count!=@products.count
    end
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/project/products.rb, line 5
def [](key)
  return @products.select{ |p| p.params[:name]==key.to_s }.first
end