Sha256: fd82fc6beecf0a11082ff25a443bfb32c86923c7af8fe8019cfdf97620c7fa69

Contents?: true

Size: 730 Bytes

Versions: 1

Compression:

Stored size: 730 Bytes

Contents

module Solve
  class Solver
    # @author Andrew Garson <andrew.garson@gmail.com>
    # @author Jamie Winsor <jamie@vialstudios.com>
    class Variable
      attr_reader :package
      attr_reader :value
      attr_reader :sources

      def initialize(package, source)
        @package = package
        @value = nil
        @sources = Array(source)
      end

      def add_source(source)
        @sources << source
      end

      def last_source
        @sources.last
      end

      def bind(value)
        @value = value
      end

      def unbind
        @value = nil
      end

      def bound?
        !@value.nil?
      end

      def remove_source(source)
        @sources.delete(source)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solve-0.3.0 lib/solve/solver/variable.rb