Class: ChangeHealth::Response::EligibilityBenefits

Inherits:
Array
  • Object
show all
Defined in:
lib/change_health/response/eligibility/eligibility_benefits.rb

Instance Method Summary collapse

Constructor Details

#initialize(benefits) ⇒ EligibilityBenefits

Returns a new instance of EligibilityBenefits.



6
7
8
# File 'lib/change_health/response/eligibility/eligibility_benefits.rb', line 6

def initialize(benefits)
  super(benefits.map { |benefit| ChangeHealth::Response::EligibilityBenefit.new(benefit) })
end

Instance Method Details

#+(other) ⇒ Object



18
19
20
# File 'lib/change_health/response/eligibility/eligibility_benefits.rb', line 18

def +(other)
  self.class.new(to_a + other.to_a)
end

#find_by(**kwargs) ⇒ Object



22
23
24
# File 'lib/change_health/response/eligibility/eligibility_benefits.rb', line 22

def find_by(**kwargs)
  find { |benefit| kwargs.all? { |k, v| benefit[k].is_a?(Array) ? benefit[k].include?(v) : v == benefit[k] } }
end

#in_networkObject



26
27
28
# File 'lib/change_health/response/eligibility/eligibility_benefits.rb', line 26

def in_network
  where(inPlanNetworkIndicatorCode: 'Y')
end

#where(**kwargs) ⇒ Object



10
11
12
# File 'lib/change_health/response/eligibility/eligibility_benefits.rb', line 10

def where(**kwargs)
  self.class.new(self.select { |benefit| kwargs.all? { |k, v| benefit_matches?(benefit, k, v) } })
end

#where_not(**kwargs) ⇒ Object



14
15
16
# File 'lib/change_health/response/eligibility/eligibility_benefits.rb', line 14

def where_not(**kwargs)
  self.class.new(reject { |benefit| kwargs.all? { |k, v| benefit_matches?(benefit, k, v) } })
end