class Sourcescrub::Models::CompanyItems
Attributes
domain[RW]
items[RW]
total[RW]
type[RW]
Public Instance Methods
parse_response_items(domain, kclass_name, response)
click to toggle source
# File lib/sourcescrub/models/concerns/company_items.rb, line 10 def parse_response_items(domain, kclass_name, response) headers = response.dig('headers') headers&.keys&.each do |attr_name| self.class.send(:define_method, attr_name.gsub('-', '_').to_sym) do headers[attr_name] end end dynamic_define_method(self, 'domain', domain) dynamic_define_method(self, 'type', kclass_name) dynamic_define_method(self, 'total', response.dig(total_key) || 0) dynamic_define_method(self, 'items', company_items(kclass_name, response.dig(items_key) || [])) self end
Private Instance Methods
company_items(kclass_name, items)
click to toggle source
# File lib/sourcescrub/models/concerns/company_items.rb, line 27 def company_items(kclass_name, items) items.each_with_object([]) do |item, results| results << kclass_name.new.parse_response(item) end end
items_key()
click to toggle source
# File lib/sourcescrub/models/concerns/company_items.rb, line 42 def items_key case type_name when 'Person' 'peopleAllocations' else 'items' end end
total_key()
click to toggle source
# File lib/sourcescrub/models/concerns/company_items.rb, line 33 def total_key case type_name when 'Person' 'totalPeople' else 'total' end end
type_name()
click to toggle source
# File lib/sourcescrub/models/concerns/company_items.rb, line 51 def type_name type.name.split('::')[-1] end