Class: Gilt::Sale

Inherits:
Object
  • Object
show all
Defined in:
lib/gilt/sale.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sale_body, client = nil) ⇒ Sale

Returns a new instance of Sale.



35
36
37
38
# File 'lib/gilt/sale.rb', line 35

def initialize(sale_body, client=nil)
  @sale = sale_body
  @client = client
end

Class Method Details

.client(apikey, affid = nil) ⇒ Object



23
24
25
# File 'lib/gilt/sale.rb', line 23

def self.client(apikey, affid=nil)
  Gilt::Client::Sales.new(apikey, affid)
end

.create(store, sale_key, apikey, affid = nil) ⇒ Object



31
32
33
# File 'lib/gilt/sale.rb', line 31

def self.create(store, sale_key, apikey, affid=nil)
  detail(:store => store, :sale_key => sale_key, :apikey => apikey, :affid => affid).first
end

.product_client(apikey, affid = nil) ⇒ Object



27
28
29
# File 'lib/gilt/sale.rb', line 27

def self.product_client(apikey, affid=nil)
  Gilt::Client::Products.new(apikey, affid)
end

Instance Method Details

#beginsObject



68
69
70
# File 'lib/gilt/sale.rb', line 68

def begins
  Time.parse @sale["begins"]
end

#descriptionObject



64
65
66
# File 'lib/gilt/sale.rb', line 64

def description
  @sale["description"]
end

#durationObject



82
83
84
# File 'lib/gilt/sale.rb', line 82

def duration
  (ends - begins).ceil unless ends.nil?
end

#ended?Boolean

Returns:

  • (Boolean)


77
78
79
80
# File 'lib/gilt/sale.rb', line 77

def ended?
  return false if ends.nil?
  ends < Time.now
end

#endsObject



72
73
74
75
# File 'lib/gilt/sale.rb', line 72

def ends
  end_time = @sale["ends"]
  Time.parse end_time unless end_time.nil?
end

#imagesObject



60
61
62
# File 'lib/gilt/sale.rb', line 60

def images
  @sale["image_urls"]
end

#lengthObject



96
97
98
# File 'lib/gilt/sale.rb', line 96

def length
  return products.length
end

#nameObject



40
41
42
# File 'lib/gilt/sale.rb', line 40

def name
  @sale["name"]
end

#productsObject



86
87
88
89
90
91
92
93
94
# File 'lib/gilt/sale.rb', line 86

def products
  return @products unless @products.nil?
  resource = Gilt::Client::Products.resources[:detail]
  @products = (@sale["products"] || []).map do |product|
    id = resource.url.extract(product)["product_id"]
    @client.detail(:product_id => id).perform
    Product.defer @client.detail(:product_id => id).perform
  end
end

#saleObject



52
53
54
# File 'lib/gilt/sale.rb', line 52

def sale
  URI(@sale["sale"])
end

#sale_keyObject



48
49
50
# File 'lib/gilt/sale.rb', line 48

def sale_key
  @sale["sale_key"]
end

#sale_urlObject



56
57
58
# File 'lib/gilt/sale.rb', line 56

def sale_url
  URI(@sale["sale_url"])
end

#storeObject



44
45
46
# File 'lib/gilt/sale.rb', line 44

def store
  @sale["store"].intern
end