class RESTfulLoaders::CardTypesPropertyDefinitionsLoader

Public Class Methods

new(project, params) click to toggle source
# File lib/mingle_macro_development_toolkit/loaders/restful_loaders/card_types_property_definitions_loader.rb, line 6
def initialize(project, params)
  @project = project
  @params = params
end

Public Instance Methods

load() click to toggle source
# File lib/mingle_macro_development_toolkit/loaders/restful_loaders/card_types_property_definitions_loader.rb, line 11
def load
  mappings = extract('card_types', @project).collect do |card_type|
    mapping = card_type['card_types_property_definitions'].values
  end.flatten

  pds = extract('property_definitions', @project)
  cts = extract('card_types', @project)
  mappings.collect do |mapping|
    if (match?(mapping))
      pd = pds.find { |pd| pd['id'] && pd['id'] == mapping['property_definition_id'] }
      ct = cts.find { |ct| ct['id'] == mapping['card_type_id'] }
      OpenStruct.new(:card_type => CardTypeLoader.new(@project, ct).load, :property_definition => PropertyDefinitionLoader.new(@project, pd).load)
    end
  end.compact
end

Private Instance Methods

match?(mapping) click to toggle source
# File lib/mingle_macro_development_toolkit/loaders/restful_loaders/card_types_property_definitions_loader.rb, line 28
def match?(mapping)
  @params.all? { |key, value| value == mapping[key] }
end