ooxl 0.0.1.4.8 → 0.0.1.4.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2ffadaaea4b0b92c53bd633502c25e2d482a43aa
4
- data.tar.gz: 6bf3b567ff8f8f6ece08bb46370cf554d451cb16
3
+ metadata.gz: d66790c4d94aecd9aad507457b9f6aafc34a38db
4
+ data.tar.gz: a33065fe180455e33279e874b8443949feea4dc3
5
5
  SHA512:
6
- metadata.gz: 8490bb572cb19e2fe4053c930c4d23197ff5820e05288cd9efc8825f4fd2367aa86c758f45fa92b4432c2c7cc455fdc9829a1eccb4c9277b8a6f0f02ee7f49ee
7
- data.tar.gz: 83d250c400406df432058b8a3958e97d86b48a0000c50e1f2c19120055824a91bbae4e5934fde8dcd34cb51f63cf1ba2a9058b02f369fc860e9b6988d2d142f0
6
+ metadata.gz: 8a53c7e2d02e19a9206515270de32eeb48c8dc389368a5a6749b6ecd076215ed8822066c5d87d385b4b96b701aae7eaa3e90b359983e298db7660777645f47f7
7
+ data.tar.gz: 13cb6d5720b8dc3136e3166cfe687217f60ae4b5b1c8e8a73c453423e533ec21de9f900c90cd251a74704fabf92a37a2c548691ab56425984120ae6ec0ed8a2e
data/lib/ooxl/util.rb CHANGED
@@ -9,6 +9,10 @@ class OOXL
9
9
  COLUMN_LETTERS.index { |c_letter| c_letter == letter}
10
10
  end
11
11
 
12
+ def to_column_letter(reference)
13
+ reference.gsub(/\d+/, '')
14
+ end
15
+
12
16
  def uniform_reference(ref)
13
17
  ref.to_s[/[A-Z]/] ? letter_index(ref) + 1 : ref
14
18
  end
data/lib/ooxl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class OOXL
2
- VERSION = "0.0.1.4.8"
2
+ VERSION = "0.0.1.4.8.1"
3
3
  end
@@ -12,6 +12,7 @@ class OOXL
12
12
  @comments = {}
13
13
  @defined_names = {}
14
14
  @styles = []
15
+ @loaded_cache = {}
15
16
  end
16
17
 
17
18
  def code_name
@@ -47,22 +48,46 @@ class OOXL
47
48
  end
48
49
  end
49
50
 
50
- def row(index)
51
- rows.find { |row| row.id == index.to_s}
51
+ def row(index, stream: false)
52
+ if @loaded_cache[:rows] || !stream
53
+ rows.find { |row| row.id == index.to_s}
54
+ else
55
+ found_row = nil
56
+ rows do |row|
57
+ if row.id == index.to_s
58
+ found_row = row
59
+ break
60
+ end
61
+ end
62
+ found_row
63
+ end
64
+ end
65
+
66
+ # test mode
67
+ def cells_by_column(column_letter)
68
+ columns = []
69
+ rows.each do |row|
70
+ columns << row.cells.find { |cell| to_column_letter(cell.id) == column_letter}
71
+ end
72
+ columns
52
73
  end
53
74
 
54
75
  def rows
55
76
  @rows ||= begin
56
77
  # TODO: get the value of merged cells
57
78
  # merged_cells = @xml.xpath('//mergeCells/mergeCell').map { |merged_cell| merged_cell.attributes["ref"].try(:value) }
58
- @xml.xpath('//sheetData/row').map do |row_node|
59
- Row.load_from_node(row_node, @shared_strings, styles)
79
+ all_rows = @xml.xpath('//sheetData/row').map do |row_node|
80
+ row = Row.load_from_node(row_node, @shared_strings, styles)
81
+ yield row if block_given?
82
+ row
60
83
  end
84
+ @loaded_cache[:rows] = true
85
+ all_rows
61
86
  end
62
87
  end
63
88
 
64
89
  def each
65
- rows.each { |row| yield row }
90
+ rows { |row| yield row }
66
91
  end
67
92
 
68
93
  def font(cell_reference)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ooxl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.4.8
4
+ version: 0.0.1.4.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Mones