rubyXL 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -49,15 +49,15 @@
49
49
  workbook[0].get_row_border_right(0) #returns weight of right border of first row (nil if none exists), other directions have the same syntax
50
50
 
51
51
  ==== Accessing column properties
52
- workbook[0].get_column_fill(0) #returns fill color for first column
53
- workbook[0].get_column_font_name(0) #returns font name for first column
54
- workbook[0].get_column_font_size(0) #returns font size for first column
55
- workbook[0].get_column_font_color(0) #returns font color for first column
56
- workbook[0].is_column_underlined(0) #returns if first column is italicized, other boolean properties have same syntax
57
- workbook[0].get_column_height(0) #returns height of first column
58
- workbook[0].get_column_horizontal_alignment(0) #returns horizontal alignment of first column (nil if none exists)
59
- workbook[0].get_column_vertical_alignment(0) #returns vertical alignment of first column (nil if none exists)
60
- workbook[0].get_column_border_right(0) #returns weight of right border of first column (nil if none exists), other directions have the same syntax
52
+ workbook[0].get_column_fill(0) #returns fill color for first column
53
+ workbook[0].get_column_font_name(0) #returns font name for first column
54
+ workbook[0].get_column_font_size(0) #returns font size for first column
55
+ workbook[0].get_column_font_color(0) #returns font color for first column
56
+ workbook[0].is_column_underlined(0) #returns if first column is italicized, other boolean properties have same syntax
57
+ workbook[0].get_column_height(0) #returns height of first column
58
+ workbook[0].get_column_horizontal_alignment(0) #returns horizontal alignment of first column (nil if none exists)
59
+ workbook[0].get_column_vertical_alignment(0) #returns vertical alignment of first column (nil if none exists)
60
+ workbook[0].get_column_border_right(0) #returns weight of right border of first column (nil if none exists), other directions have the same syntax
61
61
 
62
62
  ==== Table identification
63
63
  #get table
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.2
1
+ 1.1.3
@@ -579,6 +579,35 @@ class Worksheet < PrivateClass
579
579
  end
580
580
  end
581
581
 
582
+ def insert_cell(row=0,col=0,data=nil,formula=nil,shift=nil)
583
+ validate_workbook
584
+ validate_nonnegative(row)
585
+ validate_nonnegative(col)
586
+
587
+ increase_rows(row)
588
+ increase_columns(col)
589
+
590
+ if shift && shift != :right && shift != :down
591
+ raise 'invalid shift option'
592
+ end
593
+
594
+ if shift == :right
595
+ @sheet_data[row].insert(col,nil)
596
+ (row...(@sheet_data[row].size)).each do |index|
597
+ if @sheet_data[row][index].is_a?(Cell)
598
+ @sheet_data[row][index].column += 1
599
+ end
600
+ end
601
+ elsif shift == :down
602
+ @sheet_data << Array.new(@sheet_data[row].size)
603
+ (@sheet_data.size-1).downto(row+1) do |index|
604
+ @sheet_data[index][col] = @sheet_data[index-1][col]
605
+ end
606
+ end
607
+
608
+ return add_cell(row,col,data,formula)
609
+ end
610
+
582
611
  # by default, only sets cell to nil
583
612
  # if :left is specified, method will shift row contents to the right of the deleted cell to the left
584
613
  # if :up is specified, method will shift column contents below the deleted cell upward
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rubyXL}
8
- s.version = "1.1.2"
8
+ s.version = "1.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Vivek Bhagwat"]
@@ -1090,6 +1090,41 @@ describe RubyXL::Worksheet do
1090
1090
  end
1091
1091
  end
1092
1092
 
1093
+ describe '.insert_cell' do
1094
+ it 'should simply add a cell if no shift argument is specified' do
1095
+ @worksheet.insert_cell(0,0,'test')
1096
+ @worksheet[0][0].value.should == 'test'
1097
+ @worksheet[0][1].value.should == '0:1'
1098
+ @worksheet[1][0].value.should == '1:0'
1099
+ end
1100
+
1101
+ it 'should shift cells to the right if :right is specified' do
1102
+ @worksheet.insert_cell(0,0,'test',nil,:right)
1103
+ @worksheet[0][0].value.should == 'test'
1104
+ @worksheet[0][1].value.should == '0:0'
1105
+ @worksheet[1][0].value.should == '1:0'
1106
+ end
1107
+
1108
+ it 'should shift cells down if :down is specified' do
1109
+ @worksheet.insert_cell(0,0,'test',nil,:down)
1110
+ @worksheet[0][0].value.should == 'test'
1111
+ @worksheet[0][1].value.should == '0:1'
1112
+ @worksheet[1][0].value.should == '0:0'
1113
+ end
1114
+
1115
+ it 'should cause error if shift argument is specified whcih is not :right or :down' do
1116
+ lambda {
1117
+ @worksheet.insert_cell(0,0,'test',nil,:up)
1118
+ }.should raise_error
1119
+ end
1120
+
1121
+ it 'should cause error if a negative argument is passed in' do
1122
+ lambda {
1123
+ @worksheet.insert_cell(-1,-1)
1124
+ }.should raise_error
1125
+ end
1126
+ end
1127
+
1093
1128
  describe '.delete_cell' do
1094
1129
  it 'should make a cell nil if no shift argument specified' do
1095
1130
  deleted = @worksheet.delete_cell(0,0)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyXL
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 2
10
- version: 1.1.2
9
+ - 3
10
+ version: 1.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Vivek Bhagwat