Sha256: 5be40f5f1f6077b9a04a177509e7bc80d27cc70ebeaedc1db67c202f690a5c5e
Contents?: true
Size: 1.41 KB
Versions: 9
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true require_relative "../loader/image_url_loader" class World # TODO: change how World class works ? attr_reader :concepts, :filenames, :contexts, :image_urls def initialize(concepts, internet = true) find_neighbors_for_every_concept(concepts) @concepts, @filenames, @contexts = get_lists_from(concepts) @image_urls = find_url_images_from_internet(internet) end ## # For every concept... find its neighbors # @param concepts (Array) def find_neighbors_for_every_concept(concepts) concepts.each do |i| concepts.each do |j| if i.id != j.id i.try_adding_neighbor(j) i.try_adding_references(j) end end end end private def get_lists_from(input) concepts = {} filenames = [] contexts = [] input.each do |c| next unless c.process concepts[c.name] = c filenames << c.filename contexts << c.context end filenames.uniq! contexts.uniq! [concepts, filenames, contexts] end def find_url_images_from_internet(internet) return {} unless internet threads = [] searchs = [] urls = {} @concepts&.each_key { |key| searchs << key } @contexts.each { |filter| searchs << filter.join(" ").to_s } searchs.each do |search| threads << Thread.new { urls[search] = ImageUrlLoader.load(search) } end threads.each(&:join) urls end end
Version data entries
9 entries across 9 versions & 1 rubygems