Class: Trizetto::Api::Eligibility::WebService::Node

Inherits:
OpenStruct
  • Object
show all
Defined in:
lib/trizetto/api/eligibility/web_service/node.rb

Overview

Base class for parsed reponses in the eligibility response.

Instance Method Summary collapse

Constructor Details

#initialize(raw_hash = {}) ⇒ Node

Returns a new instance of Node.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/trizetto/api/eligibility/web_service/node.rb', line 10

def initialize(raw_hash = {})
  required_keys = self.class.constants.include?(:REQUIRED_KEYS) ? self.class::REQUIRED_KEYS : {}
  clean_hash = required_keys.merge(raw_hash)

  cleanup_keys = self.class.constants.include?(:KEY_CLEANUP) ? self.class::KEY_CLEANUP : {}
  cleanup_keys.each do |uglykey, friendly_key|
    clean_hash[friendly_key] = clean_hash.delete(uglykey) if clean_hash.has_key?(uglykey)
  end

  # Convert prefixed keys "benefit_related_entity_id" to simple keys "id"
  prefix_translations = self.class.constants.include?(:PREFIX_TRANSLATIONS) ? self.class::PREFIX_TRANSLATIONS : {}
  prefix_translations.each do |key_prefix|
    clean_hash.keys.each do |key|
      if key.to_s =~ /^#{key_prefix}_(.*)$/
        clean_hash["#{$1}".to_sym] = clean_hash.delete(key)
      end
    end
  end

  super(clean_hash)

  after_inititlize(clean_hash)
end