class ChangeHealth::Models::EligibilityBenefits
Public Class Methods
new(benefits)
click to toggle source
Calls superclass method
# File lib/change_health/models/eligibility_benefits.rb, line 4 def initialize(benefits) super(benefits.map {|benefit| ChangeHealth::Models::EligibilityBenefit.new(benefit) }) end
Public Instance Methods
+(other_obj)
click to toggle source
# File lib/change_health/models/eligibility_benefits.rb, line 16 def +(other_obj) self.class.new(self.to_a + other_obj.to_a) end
find_by(**kwargs)
click to toggle source
# File lib/change_health/models/eligibility_benefits.rb, line 20 def find_by(**kwargs) self.find {|benefit| kwargs.all? {|k,v| benefit[k].is_a?(Array) ? benefit[k].include?(v) : v == benefit[k] } } end
in_network()
click to toggle source
# File lib/change_health/models/eligibility_benefits.rb, line 24 def in_network self.where(inPlanNetworkIndicatorCode: 'Y') end
where(**kwargs)
click to toggle source
# File lib/change_health/models/eligibility_benefits.rb, line 8 def where(**kwargs) self.class.new(self.select {|benefit| kwargs.all? {|k,v| benefit_matches?(benefit, k, v) } }) end
where_not(**kwargs)
click to toggle source
# File lib/change_health/models/eligibility_benefits.rb, line 12 def where_not(**kwargs) self.class.new(self.reject {|benefit| kwargs.all? {|k,v| benefit_matches?(benefit, k, v) } }) end
Private Instance Methods
benefit_matches?(benefit, k, v)
click to toggle source
# File lib/change_health/models/eligibility_benefits.rb, line 88 def benefit_matches?(benefit, k, v) if benefit[k].is_a?(Array) if v.is_a?(Array) return v.any? {|possible_v| benefit[k].include?(possible_v) } else return benefit[k].include?(v) end else if v.is_a?(Array) return v.include?(benefit[k]) elsif benefit.medicare? if :inPlanNetworkIndicatorCode == k.to_sym return false == benefit.in_plan_network? if 'N' == v return benefit.in_plan_network? if 'Y' == v elsif :coverageLevelCode == k.to_sym return false == benefit.individual? if EligibilityBenefit::INDIVIDUAL != v return benefit.individual? if EligibilityBenefit::INDIVIDUAL == v end end return v == benefit[k] end end