Sha256: 18a8dfb37aba5bb669a25d32eb1377f9fa56f7cdf44d92a93f737461671dd178
Contents?: true
Size: 1.5 KB
Versions: 2
Compression:
Stored size: 1.5 KB
Contents
module Solve class Solver # @author Andrew Garson <agarson@riotgames.com> # @author Jamie Winsor <reset@riotgames.com> class VariableTable attr_reader :rows def initialize @rows = Array.new end # @param [String] artifact # @param [String] source def add(artifact, source) row = rows.detect { |row| row.artifact == artifact } if row.nil? @rows << VariableRow.new(artifact, source) else row.add_source(source) end end def first_unbound @rows.detect { |row| row.bound? == false } end # @param [String] artifact def find_artifact(artifact) @rows.detect { |row| row.artifact == artifact } end # @param [String] source def remove_all_with_only_this_source!(source) with_only_this_source, others = @rows.partition { |row| row.sources == [source] } @rows = others with_only_this_source end # @param [String] source def all_from_source(source) @rows.select { |row| row.sources.include?(source) } end # @param [String] artifact def before(artifact) artifact_index = @rows.index { |row| row.artifact == artifact } (artifact_index == 0) ? nil : @rows[artifact_index - 1] end # @param [String] artifact def all_after(artifact) artifact_index = @rows.index { |row| row.artifact == artifact } @rows[(artifact_index+1)..-1] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
solve-0.4.4 | lib/solve/solver/variable_table.rb |
solve-0.4.3 | lib/solve/solver/variable_table.rb |