spec/cell_spec.rb in rspreadsheet-0.2.12 vs spec/cell_spec.rb in rspreadsheet-0.2.14

- old
+ new

@@ -6,198 +6,202 @@ @sheet1 = book1.create_worksheet book2 = Rspreadsheet.new($test_filename) @sheet2 = book2.worksheets(1) end it 'contains good row and col coordinates' do - @cell = @sheet1.cells(1,3) + @cell = @sheet1.cell(1,3) @cell.rowi.should == 1 @cell.coli.should == 3 @cell.coordinates.should == [1,3] - @cell = @sheet2.cells(7,2) + @cell = @sheet2.cell(7,2) @cell.rowi.should == 7 @cell.coli.should == 2 @cell.coordinates.should == [7,2] end it 'can be referenced by more vars and both are synchronized' do - @cell = @sheet1.cells(1,1) + @cell = @sheet1.cell(1,1) @sheet1[1,1] = 'novinka' @cell.value.should == 'novinka' end it 'can be modified by more ways and all are identical' do - @cell = @sheet1.cells(2,2) + @cell = @sheet1.cell(2,2) @sheet1[2,2] = 'zaprve' @cell.value.should == 'zaprve' - @sheet1.cells(2,2).value = 'zadruhe' + @sheet1.cell(2,2).value = 'zadruhe' @cell.value.should == 'zadruhe' @sheet1.B2 = 'zatreti' @cell.value.should == 'zatreti' - @sheet1.rows(2).cells(2).value = 'zactvrte' + @sheet1.row(2).cell(2).value = 'zactvrte' @cell.value.should == 'zactvrte' - @sheet1.rows(2)[2] = 'zapate' + @sheet1.rows[1].cell(2).value = 'zactvrte s arrayem' + @cell.value.should == 'zactvrte s arrayem' + @sheet1.row(2)[2] = 'zapate' @cell.value.should == 'zapate' + @sheet1.rows[1][2] = 'zaseste' ## tohle je divoka moznost + @cell.value.should == 'zaseste' end it 'can include links' do @sheet2.A12.should == '[http://example.org/]' - @sheet2.cells(12,2).valuexmlfindall('.//text:a').size.should eq 0 - @sheet2.cells(12,1).valuexmlfindall('.//text:a').size.should eq 1 - @sheet2.cells(12,1).valuexmlfindfirst('.//text:a').attributes['href'].should eq 'http://example.org/' + @sheet2.cell(12,2).valuexmlfindall('.//text:a').size.should eq 0 + @sheet2.cell(12,1).valuexmlfindall('.//text:a').size.should eq 1 + @sheet2.cell(12,1).valuexmlfindfirst('.//text:a').attributes['href'].should eq 'http://example.org/' end it 'contains good row and col coordinates even after table:number-columns-repeated cells' do - @cell = @sheet2.cells(13,5) + @cell = @sheet2.cell(13,5) @cell.value.should == 'afterrepeated' @cell.rowi.should == 13 @cell.coli.should == 5 end it 'reports good range of coordinates for repeated cells' do - @cell = @sheet2.cells(13,2) + @cell = @sheet2.cell(13,2) @cell.range.should == (1..4) @cell.mode.should == :repeated end it 'returns nil on negative and zero cell indexes or raises exception depending on configuration' do pom = Rspreadsheet.raise_on_negative_coordinates # default is to raise error - expect {@sheet2.cells(0,5) }.to raise_error + expect {@sheet2.cell(0,5) }.to raise_error # return nil if configured to do so Rspreadsheet.raise_on_negative_coordinates = false - @sheet2.cells(0,5).should be_nil - @sheet2.cells(2,-5).should be(nil) - @sheet2.cells(-2,-5).should be(nil) + @sheet2.cell(0,5).should be_nil + @sheet2.cell(2,-5).should be(nil) + @sheet2.cell(-2,-5).should be(nil) Rspreadsheet.raise_on_negative_coordinates = pom # reset the setting back end it 'has nonempty parents' do - @cell = @sheet2.cells(13,5) + @cell = @sheet2.cell(13,5) @cell.row.should_not be_nil @cell.worksheet.should_not be_nil - @cell = @sheet1.cells(2,2) + @cell = @sheet1.cell(2,2) @cell.row.should_not be_nil @cell.worksheet.should_not be_nil end it 'handles relative correctly' do - @sheet2.cells(3,3).relative(-1,+2).coordinates.should == [2,5] - @sheet2.cells(3,3).relative(0,0).coordinates.should == [3,3] + @sheet2.cell(3,3).relative(-1,+2).coordinates.should == [2,5] + @sheet2.cell(3,3).relative(0,0).coordinates.should == [3,3] end it 'is automatically "unrepeated" on value assignement' do - @cell = @sheet2.cells(13,2) + @cell = @sheet2.cell(13,2) @cell.is_repeated?.should == true @cell.value = 'cokoli' @cell.is_repeated?.should == false @cell.value.should == 'cokoli' - @sheet2.cells(13,1).should_not == 'cokoli' - @sheet2.cells(13,3).should_not == 'cokoli' - @sheet2.cells(13,4).should_not == 'cokoli' + @sheet2.cell(13,1).should_not == 'cokoli' + @sheet2.cell(13,3).should_not == 'cokoli' + @sheet2.cell(13,4).should_not == 'cokoli' end it 'returns correct type for the cell' do - @sheet2.cells(1,2).type.should eq :string - @sheet2.cells(2,2).type.should eq :date - @sheet2.cells(3,1).type.should eq :float - @sheet2.cells(3,2).type.should eq :percentage - @sheet2.cells(4,2).type.should eq :string - @sheet2.cells('B22').type.should eq :currency - @sheet2.cells('B23').type.should eq :currency - @sheet2.cells(200,200).type.should eq :unassigned + @sheet2.cell(1,2).type.should eq :string + @sheet2.cell(2,2).type.should eq :date + @sheet2.cell(3,1).type.should eq :float + @sheet2.cell(3,2).type.should eq :percentage + @sheet2.cell(4,2).type.should eq :string + @sheet2.cell('B22').type.should eq :currency + @sheet2.cell('B23').type.should eq :currency + @sheet2.cell(200,200).type.should eq :unassigned end it 'returns value of correct type' do @sheet2[1,2].should be_kind_of(String) @sheet2[2,2].should be_kind_of(Date) @sheet2[3,1].should be_kind_of(Float) @sheet2[3,2].should be_kind_of(Float) - @sheet2.cells(3,2).type.should eq :percentage - @sheet2.cells(3,2).guess_cell_type.should eq :percentage - @sheet2.cells(3,2).guess_cell_type(1).should eq :percentage + @sheet2.cell(3,2).type.should eq :percentage + @sheet2.cell(3,2).guess_cell_type.should eq :percentage + @sheet2.cell(3,2).guess_cell_type(1).should eq :percentage @sheet2[3,2]=0.1 - @sheet2.cells(3,2).type.should eq :percentage + @sheet2.cell(3,2).type.should eq :percentage @sheet2[4,2].should be_kind_of(String) end it 'is the same object no matter how you access it' do - @cell1 = @sheet2.cells(5,5) - @cell2 = @sheet2.rows(5).cells(5) + @cell1 = @sheet2.cell(5,5) + @cell2 = @sheet2.rows(5).cell(5) @cell1.should equal(@cell2) end it 'splits correctly cells if written in the middle of repeated group' do - @cell = @sheet2.cells(4,6) + @cell = @sheet2.cell(4,6) @cell.range.should == (4..7) @cell.value.should == 7 @cell.value = 'nebesa' @cell.range.should == (6..6) @cell.value.should == 'nebesa' - @cellA = @sheet2.cells(4,5) + @cellA = @sheet2.cell(4,5) @cellA.range.should == (4..5) @cellA.value.should == 7 - @cellB = @sheet2.cells(4,7) + @cellB = @sheet2.cell(4,7) @cellB.range.should == (7..7) @cellB.value.should == 7 end it 'inserts correctly cell in the middle of repeated group' do - @cell = @sheet2.cells(4,6) + @cell = @sheet2.cell(4,6) @cell.range.should == (4..7) @cell.value.should == 7 @cell.coli.should == 6 @sheet2.insert_cell_before(4,6) @cell.coli.should == 7 - @cellA = @sheet2.cells(4,5) + @cellA = @sheet2.cell(4,5) @cellA.range.should == (4..5) @cellA.value.should == 7 - @cellB = @sheet2.cells(4,7) + @cellB = @sheet2.cell(4,7) @cellB.range.should == (7..8) @cellB.value.should == 7 - @cell = @sheet2.cells(16,4) + @cell = @sheet2.cell(16,4) @cell.range.should == (1..7) @cell.value.should == nil @sheet2.rows(15).range.should == (14..18) @sheet2.rows(16).range.should == (14..18) @sheet2.rows(17).range.should == (14..18) @sheet2.insert_cell_before(16,3) - @sheet2.cells(16,3).value = 'baf' - @sheet2.cells(17,3).value.should_not == 'baf' + @sheet2.cell(16,3).value = 'baf' + @sheet2.cell(17,3).value.should_not == 'baf' @sheet2.rows(15).range.should == (14..15) @sheet2.rows(16).range.should == (16..16) @sheet2.rows(17).range.should == (17..18) - @cellA = @sheet2.cells(16,1) + @cellA = @sheet2.cell(16,1) @cellA.range.should == (1..2) @cellA.value.should be_nil - @cellB = @sheet2.cells(16,5) + @cellB = @sheet2.cell(16,5) @cellB.range.should == (4..8) @cellB.value.should be_nil end it 'inserted has correct class' do # based on real error @sheet2.insert_cell_before(1,1) - @sheet2.rows(1).cells(1).should be_kind_of(Rspreadsheet::Cell) + @sheet2.rows(1).cell(1).should be_kind_of(Rspreadsheet::Cell) end it 'can have different formats' do - @cell = @sheet2.cells(6,3) + @cell = @sheet2.cell(6,3) @cell.format.bold.should == true - @cell = @sheet2.cells(6,4) + @cell = @sheet2.cell(6,4) @cell.format.bold.should == false @cell.format.italic.should == true - @cell = @sheet2.cells(6,5) + @cell = @sheet2.cell(6,5) @cell.format.italic.should == false @cell.format.color.should == '#ff3333' - @cell = @sheet2.cells(6,6) + @cell = @sheet2.cell(6,6) @cell.format.color.should_not == '#ff3333' @cell.format.background_color.should == '#6666ff' - @cell = @sheet2.cells(6,7) + @cell = @sheet2.cell(6,7) @cell.format.font_size.should == '7pt' # after fresh create @cell.xmlnode.attributes['style-name'].should_not be_nil end - it 'can set formats of the cells in new file' do - @cell = @sheet1.cells(1,1) + it 'can set formats of the cell in new file' do + @cell = @sheet1.cell(1,1) @cell.value = '1' # bold @cell.format.bold.should be_falsey @cell.format.bold = true @cell.format.bold.should be_truthy @@ -224,109 +228,103 @@ @a.should be_kind_of(Array) @a.each { |item| item.should be_kind_of(Rspreadsheet::Cell)} end it 'changes coordinates when row inserted above' do - @sheet1.cells(2,2).detach - @cell = @sheet1.cells(2,2) + @sheet1.cell(2,2).detach + @cell = @sheet1.cell(2,2) @cell.rowi.should == 2 @sheet1.add_row_above(1) @cell.rowi.should == 3 end it 'switches to invalid_reference cell when deleted' do @sheet1[2,5] = 'nejaka data' - @cell = @sheet1.cells(2,2) + @cell = @sheet1.cell(2,2) @cell.value = 'data' @cell.invalid_reference?.should be false @cell.delete @cell.invalid_reference?.should be true expect { @cell.rowi }.to raise_error expect { @cell.address }.to raise_error - @sheet1.cells(2,2).type.should == :empty - @sheet1.cells(3,2).type.should == :unassigned + @sheet1.cell(2,2).type.should == :empty + @sheet1.cell(3,2).type.should == :unassigned end it 'switches to invalid_reference cell when its row is deleted' do - @cell = @sheet1.cells(6,2) + @cell = @sheet1.cell(6,2) @cell.value = 'data' @cell.rowi.should == 6 @sheet1.rows(6).delete expect { @cell.rowi }.to raise_error @cell.invalid_reference?.should be true end it 'has inspect method returning something good' do - @cell = @sheet1.cells(6,2) + @cell = @sheet1.cell(6,2) @cell.value = 'abcde' expect(@cell.inspect).to include('abcde','::Cell','6','2','row') end it 'stores date correctly' do - @cell = @sheet1.cells(1,1) + @cell = @sheet1.cell(1,1) @cell.value= Date.parse('2014-01-02') @cell.value.year.should eq 2014 @cell.value.month.should eq 1 @cell.value.day.should eq 2 end it 'can be addressed by even more ways and all are identical' do - @cell = @sheet1.cells(2,2) - @sheet1.cells('B2').value = 'zaseste' - @sheet1.cells('B2').value.should == 'zaseste' + @cell = @sheet1.cell(2,2) + @sheet1.cell('B2').value = 'zaseste' + @sheet1.cell('B2').value.should == 'zaseste' @cell.value.should == 'zaseste' - @sheet1.cells(2,'B').value.should == 'zaseste' - @sheet1.cells(2,'B').value = 'zasedme' + @sheet1.cell(2,'B').value.should == 'zaseste' + @sheet1.cell(2,'B').value = 'zasedme' @cell.value.should == 'zasedme' @sheet1['B2'].should == 'zasedme' @sheet1['B2'] = 'zaosme' @cell.value.should == 'zaosme' - @sheet2.cells('F2').should be @sheet2.cells(2,6) - @sheet2.cells('BA177').should be @sheet2.cells(177,53) - @sheet2.cells('ADA2').should be @sheet2.cells(2,781) + @sheet2.cell('F2').should be @sheet2.cell(2,6) + @sheet2.cell('BA177').should be @sheet2.cell(177,53) + @sheet2.cell('ADA2').should be @sheet2.cell(2,781) end it 'setting format in new file detaches the cell' do - @cell = @sheet1.cells(1,1) + @cell = @sheet1.cell(1,1) # bold @cell.format.bold.should be_falsey @cell.format.bold = true @cell.format.bold.should be_truthy @cell.mode.should eq :regular end it 'remembers formula when set' do - @cell = @sheet1.cells(1,1) + @cell = @sheet1.cell(1,1) # bold @cell.formula.should be_nil @cell.formula='=1+5' @cell.formula.should eq '=1+5' end it 'unsets cell type when formula set - we can not guess it correctly', :focus do - @cell = @sheet1.cells(1,1) + @cell = @sheet1.cell(1,1) @cell.value = 'ahoj' @cell.type.should eq :string @cell.formula='=1+5' typ = @cell.xmlnode.nil? ? 'N/A' : @cell.xmlnode.attributes['value-type'] @cell.type.should_not eq :string @cell.type.should eq :empty end it 'wipes out formula after assiging value' do - @cell = @sheet1.cells(1,1) + @cell = @sheet1.cell(1,1) @cell.formula='=1+5' @cell.formula.should_not be_nil @cell.value = 'baf' @cell.type.should eq :string @cell.formula.should be_nil end it 'works well with currency types' do - @usdcell = @sheet2.cells('B22') + @usdcell = @sheet2.cell('B22') @usdcell.type.should eq :currency @usdcell.value.should == -147984.84 @usdcell.format.currency.should == 'USD' - @czkcell = @sheet2.cells('B23') + @czkcell = @sheet2.cell('B23') @czkcell.value.should == 344.to_d @czkcell.format.currency.should == 'CZK' end end - - - - - -