class Coupon
Attributes
couponcd[RW]
couponseq[RW]
error[RW]
expires_soon[RW]
expiry[RW]
name[RW]
real_value[RW]
Public Class Methods
new(item, total_price_without_tax)
click to toggle source
# File lib/order_coupon.rb, line 55 def initialize(item, total_price_without_tax) name_element_text = item.css("h4").text coupon_name = name_element_text.sub("\\", "¥").sub("Expires soon", "") expires_soon = name_element_text.include?("Expires soon") ? "Expires soon" : "" coupon_link = item.css(".jso-userCuponUse").first || {} yen_value = coupon_name.scan(/¥(\d+)/).flatten.first.to_i percent_value = coupon_name.scan(/(\d+)%/).flatten.first.to_i if yen_value != 0 real_value = yen_value * 1.08 # 8% tax elsif percent_value != 0 real_value = (total_price_without_tax / (100 / percent_value)) * 1.08 # 8% tax end error = item.css(".m-input__error").text error = error && error.strip != "" ? "\n #{error}" : nil self.name = coupon_name self.expiry = item.css(".m-entryPeriod").text.scan(/\d{4}-\d{2}-\d{2}/).first self.error = error self.couponcd = coupon_link["couponcd"] self.couponseq = coupon_link["couponseq"] self.expires_soon = expires_soon self.real_value = real_value.to_i end
Public Instance Methods
list_item()
click to toggle source
# File lib/order_coupon.rb, line 91 def list_item "#{name.colorize(:blue)} (-¥#{real_value.to_s.colorize(:green)}) "\ "#{expires_soon.colorize(:yellow)} #{expiry} #{error.to_s.colorize(:red)}".strip end
params()
click to toggle source
# File lib/order_coupon.rb, line 87 def params { couponcd: couponcd, couponseq: couponseq }.compact end
usable?()
click to toggle source
# File lib/order_coupon.rb, line 83 def usable? couponcd && couponseq end