Skip to content

Instantly share code, notes, and snippets.

@DamirSvrtan
Created July 11, 2018 06:57
Show Gist options
  • Save DamirSvrtan/72e607a1b4222d908f45921e16a0293a to your computer and use it in GitHub Desktop.
Save DamirSvrtan/72e607a1b4222d908f45921e16a0293a to your computer and use it in GitHub Desktop.
class MemberEligibleForTierRule
attr_reader :member, :tier
def initialize(member:, tier:)
@member, @tier = member, tier
end
def satisfied?
(flew_enough_miles? || flew_enough_segments?) && spent_enough_money?
end
private
def flew_enough_miles?
member.miles + qualifying_partner_miles >= tier.required_miles
end
def flew_enough_segments?
member.segments >= tier.required_segments
end
def spent_enough_money?
member.dollars >= tier.required_dollars
end
def qualifying_partner_miles
[member.partner_miles, 10_000].min
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment