Sha256: 2a0057e2b9ce26fce7c922f36ec2403005a32e99915a7903f21b91ebcccd8998

Contents?: true

Size: 886 Bytes

Versions: 1

Compression:

Stored size: 886 Bytes

Contents

module RSpec
  module Variants
    class Table
      attr_reader :last_row

      def initialize
        @rows = []
        @last_row = nil
      end

      def add_row(row)
        unless @rows.find { |r| r.object_id == row.object_id }
          @rows << row
          @last_row = row
        end
        self
      end

      def add_condition_to_last_row(condition)
        last_row.add_condition(condition)
        self
      end

      alias | add_condition_to_last_row

      def to_a
        @rows.map(&:to_a)
      end

      alias to_conditions to_a

      class Row
        def initialize(condition)
          @conditions = [condition]
        end

        def add_condition(condition)
          @conditions << condition
        end

        def to_a
          @conditions
        end

        def to_conditions
          [@conditions]
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rspec_variants-0.1.0 lib/rspec/variants/table.rb