Class: Recurly::Coupon
Instance Attribute Summary
Attributes inherited from Resource
#attributes, #etag, #response, #uri
Class Method Summary collapse
-
.expired ⇒ Pager<Coupon>
A pager that yields
expired
coupons. -
.maxed_out ⇒ Pager<Coupon>
A pager that yields
maxed_out
coupons. -
.redeem(account_or_code, currency = nil) ⇒ true
Redeem a coupon with a given account or account code.
- .redeem!(account_code, currency = nil) ⇒ Object
-
.redeemable ⇒ Pager<Coupon>
A pager that yields
redeemable
coupons. - .redemptions ⇒ Pager<Redemption>, []
-
.save ⇒ true, false
Saves new records only.
Methods inherited from Resource
#==, all, associations, belongs_to, #changed, #changed?, #changed_attributes, #changes, collection_name, count, create, create!, define_attribute_methods, #destroy, #destroyed?, embedded!, #errors, find, find_each, first, from_response, from_xml, has_many, has_one, #initialize, #inspect, member_name, member_path, #new_record?, paginate, #persist!, #persisted?, #previous_changes, #read_attribute, reflect_on_association, #reload, resource_name, #save, #save!, scope, scopes, #to_param, #to_xml, #update_attributes, #update_attributes!, #valid?, #write_attribute
Constructor Details
This class inherits a constructor from Recurly::Resource
Class Method Details
.expired ⇒ Pager<Coupon>
Returns A pager that yields expired
coupons.
7 |
# File 'lib/recurly/coupon.rb', line 7 scope :expired, :state => :expired |
.maxed_out ⇒ Pager<Coupon>
Returns A pager that yields maxed_out
coupons.
8 |
# File 'lib/recurly/coupon.rb', line 8 scope :maxed_out, :state => :maxed_out |
.redeem(account_or_code, currency = nil) ⇒ true
Redeem a coupon with a given account or account code.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/recurly/coupon.rb', line 51 def redeem account_or_code, currency = nil return false unless self[:redeem] account_code = if account_or_code.is_a? Account account_or_code.account_code else account_or_code end Redemption.from_response self[:redeem].call( :body => (redemption = redemptions.new( :account_code => account_code, :currency => currency || Recurly.default_currency )).to_xml ) rescue API::UnprocessableEntity => e redemption.apply_errors e redemption end |
.redeem!(account_code, currency = nil) ⇒ Object
71 72 73 74 75 |
# File 'lib/recurly/coupon.rb', line 71 def redeem! account_code, currency = nil redemption = redeem account_code, currency raise Invalid.new(self) unless redemption.persisted? redemption end |
.redeemable ⇒ Pager<Coupon>
Returns A pager that yields redeemable
coupons.
6 |
# File 'lib/recurly/coupon.rb', line 6 scope :redeemable, :state => :redeemable |
.redemptions ⇒ Pager<Redemption>, []
11 |
# File 'lib/recurly/coupon.rb', line 11 has_many :redemptions |