Sha256: 2f4f1a3cd97a8a836954837b2524d78fc4defc440f9c0d85b5e3252d90a93c68

Contents?: true

Size: 979 Bytes

Versions: 1

Compression:

Stored size: 979 Bytes

Contents

# frozen_string_literal: true

module ChemScanner
  # Interpret the parsed/extracted geometry block
  module Interpreter
    class Scheme
      def assemble_reaction
        @reactions.each do |r|
          %w[reactant reagent product].each do |group|
            group_ids = r.send("#{group}_ids")
            groups = r.send("#{group}s")

            group_ids.each do |id|
              if @text_map.key?(id)
                r.text_ids.push(id)
                next
              end

              if @mol_map.key?(id)
                groups.push(@mol_map[id])
                next
              end

              @mol_group_map.select do |_, mgroup|
                mgroup.molecule_ids.include?(id)
              end.each do |_, mgroup|
                groups.push(mgroup.molecules.first)
              end
            end
          end

          r.arrow = @arrow_map[r.arrow_id]
          r.text_ids.concat(r.arrow.text_arr).uniq!
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
chem_scanner-0.1.3 lib/chem_scanner/interpreter/post_process/assemble.rb