Class: Reward

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
ActionView::Helpers::NumberHelper, ActionView::Helpers::TextHelper, ActionView::Helpers::UrlHelper, ERB::Util, RankedModel
Defined in:
app/models/reward.rb

Instance Method Summary collapse

Instance Method Details

#display_deliver_previsionObject



34
35
36
37
38
# File 'app/models/reward.rb', line 34

def display_deliver_prevision
  I18n.l((project.expires_at + days_to_delivery.days), format: :prevision)
rescue
  days_to_delivery
end

#display_descriptionObject



67
68
69
# File 'app/models/reward.rb', line 67

def display_description
  auto_link(simple_format(description), html: {target: :_blank})
end

#display_minimumObject



48
49
50
# File 'app/models/reward.rb', line 48

def display_minimum
  number_to_currency minimum_value
end

#display_remainingObject



40
41
42
# File 'app/models/reward.rb', line 40

def display_remaining
  I18n.t('reward.display_remaining', remaining: remaining, maximum: maximum_backers).html_safe
end

#has_modification?Boolean

Returns:

  • (Boolean)


21
22
23
# File 'app/models/reward.rb', line 21

def has_modification?
  versions.count > 1
end

#last_descriptionObject



60
61
62
63
64
65
# File 'app/models/reward.rb', line 60

def last_description
  if versions.present?
    reward = versions.last.reify(has_one: true)
    auto_link(simple_format(reward.description), html: {target: :_blank})
  end
end

#medium_descriptionObject



56
57
58
# File 'app/models/reward.rb', line 56

def medium_description
  truncate description, length: 65
end

#nameObject



44
45
46
# File 'app/models/reward.rb', line 44

def name
  "<div class='reward_minimum_value'>#{minimum_value > 0 ? display_minimum+'+' : I18n.t('reward.dont_want')}</div><div class='reward_description'>#{h description}</div>#{'<div class="sold_out">' + I18n.t('reward.sold_out') + '</div>' if sold_out?}<div class='clear'></div>".html_safe
end

#remainingObject



29
30
31
32
# File 'app/models/reward.rb', line 29

def remaining
  return nil unless maximum_backers
  maximum_backers - (backers.confirmed.count + backers.in_time_to_confirm.count)
end

#short_descriptionObject



52
53
54
# File 'app/models/reward.rb', line 52

def short_description
  truncate description, length: 35
end

#sold_out?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'app/models/reward.rb', line 25

def sold_out?
  maximum_backers and (backers.confirmed.count + backers.in_time_to_confirm.count) >= maximum_backers
end