Sha256: e1f66034971ad2651cbbd6457966e915f1f09ef6514bca410d32395ec70b085f

Contents?: true

Size: 1.52 KB

Versions: 21

Compression:

Stored size: 1.52 KB

Contents

require File.join(File.dirname(__FILE__), 'spec_helper')

require 'stringio'

context "PrettyTable" do
  setup do
    @data1 = [
      {:x => 3, :y => 4}
    ]
    
    @data2 = [
      {:a => 23, :b => 45},
      {:a => 45, :b => 2377}
    ]

    @data3 = [
      {:aaa => 1},
      {:bb => 2},
      {:c => 3}
    ]

    @output = StringIO.new
    @orig_stdout = $stdout
    $stdout = @output
  end

  teardown do
    $stdout = @orig_stdout
  end
  
  specify "should infer the columns if not given" do
    Sequel::PrettyTable.print(@data1)
    @output.rewind
    @output.read.should =~ \
      /\n(\|x\|y\|)|(\|y\|x\|)\n/
  end
  
  specify "should infer columns from array with keys" do
    a = [1, 2, 3]
	  a.keys = [:a, :b, :c]
	  Sequel::PrettyTable.print([a])
    @output.rewind
    @output.read.should =~ /\n\|a\|b\|c\|\n/
  end
  
  specify "should calculate the maximum width of each column correctly" do
    Sequel::PrettyTable.print(@data2, [:a, :b])
    @output.rewind
    @output.read.should == \
      "+--+----+\n|a |b   |\n+--+----+\n|23|  45|\n|45|2377|\n+--+----+\n"
  end

  specify "should also take header width into account" do
    Sequel::PrettyTable.print(@data3, [:aaa, :bb, :c])
    @output.rewind
    @output.read.should == \
      "+---+--+-+\n|aaa|bb|c|\n+---+--+-+\n|  1|  | |\n|   | 2| |\n|   |  |3|\n+---+--+-+\n"
  end
  
  specify "should print only the specified columns" do
    Sequel::PrettyTable.print(@data2, [:a])
    @output.rewind
    @output.read.should == \
      "+--+\n|a |\n+--+\n|23|\n|45|\n+--+\n"
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
sequel-0.5.0.2 spec/pretty_table_spec.rb
sequel_core-1.0.0.1 spec/pretty_table_spec.rb
sequel_core-1.0.10 spec/pretty_table_spec.rb
sequel_core-1.0.3 spec/pretty_table_spec.rb
sequel_core-1.0.2 spec/pretty_table_spec.rb
sequel_core-1.0.1 spec/pretty_table_spec.rb
sequel_core-1.0.8.1 spec/pretty_table_spec.rb
sequel_core-1.0.7 spec/pretty_table_spec.rb
sequel_core-1.0.5 spec/pretty_table_spec.rb
sequel_core-1.0.4 spec/pretty_table_spec.rb
sequel_core-1.0.4.1 spec/pretty_table_spec.rb
sequel_core-1.0.6 spec/pretty_table_spec.rb
sequel_core-1.0.8.2 spec/pretty_table_spec.rb
sequel_core-1.0.8 spec/pretty_table_spec.rb
sequel_core-1.0.9.1 spec/pretty_table_spec.rb
sequel_core-1.2.1 spec/pretty_table_spec.rb
sequel_core-1.1 spec/pretty_table_spec.rb
sequel_core-1.0 spec/pretty_table_spec.rb
sequel_core-1.3 spec/pretty_table_spec.rb
sequel_core-1.4.0 spec/pretty_table_spec.rb