Sha256: bee725d47a68de62dbf33af828755cd00ffb0ba0b2d07d7acc748c5608979158
Contents?: true
Size: 790 Bytes
Versions: 11
Compression:
Stored size: 790 Bytes
Contents
module RailsConnector # @api public class LinkList < Array def initialize(link_definitions) if link_definitions.blank? super([]) else super(build_links(link_definitions.map(&:symbolize_keys))) end end # @api public def destination_objects map { |link| link.destination_object }.compact end private def build_links(link_definitions) object_ids = link_definitions.map { |link_data| link_data[:destination] }.compact.uniq objects = object_ids.empty? ? [] : Obj.find(object_ids) link_definitions.each_with_object([]) do |link_data, links| link = Link.new(link_data, objects.detect { |o| o && o.id == link_data[:destination] }) links << link if link.active? end end end end
Version data entries
11 entries across 11 versions & 1 rubygems