ooxl 0.0.1.4.15 → 0.0.1.4.16

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: 7cd2eaced2a635d0489216d35cc2993cad4b862d
4
- data.tar.gz: ec8120ea78a434dff4a456f3d8f78c82b9cefd8f
3
+ metadata.gz: 9117afb68f904cbe4b5991da76bf4b5a1d73778a
4
+ data.tar.gz: eb8f5cce279755713aac13899e8d267555a485f7
5
5
  SHA512:
6
- metadata.gz: 4d34305f65ec24ac089ea1b3497d53e658b79ae0cad782a95bcac453f70f71122663f1a777fbd7b3dcc349fb00fad18fbddcebc5d7c0934226c93c30a2428f3a
7
- data.tar.gz: 759e4eb418cbe51928692830cd515964067826621eba57ac38c2c6c03268e8e243d7e82ab7d4c1796df894fda664f13d612e683ed5b06d52f0d7b903170868c1
6
+ metadata.gz: 6d544aa1cc2afc2c230749f5c15357d4d00815423cadb551f138622a79186e05cf3ac04b4811e145e44578543c622d43e6e7c09fdf5064b53fa9606796b1ab81
7
+ data.tar.gz: cef443f411c7b69f97e024c857e3c76d623e8c2e1310d025f45ca8a6e00bd6308a0158c117b6cc2f6a90f3c7135cf3423631fcbb2a6bb4477ba51827f7fe1765
data/lib/ooxl/util.rb CHANGED
@@ -21,6 +21,16 @@ class OOXL
21
21
  node.try(:value)
22
22
  end
23
23
 
24
+ def column_letter_to_number(column_letter)
25
+ pow = column_letter.length - 1
26
+ result = 0
27
+ column_letter.each_byte do |b|
28
+ result += 26**pow * (b - 64)
29
+ pow -= 1
30
+ end
31
+ result
32
+ end
33
+
24
34
  def node_attribute_value(node, attribute_name)
25
35
  unless node.blank?
26
36
  attribute = node.attributes.find { |key, attribute| key == attribute_name}
data/lib/ooxl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class OOXL
2
- VERSION = "0.0.1.4.15"
2
+ VERSION = "0.0.1.4.16"
3
3
  end
@@ -1,6 +1,7 @@
1
1
  class OOXL
2
2
  class Sheet
3
3
  class DataValidation
4
+ include Util
4
5
  attr_accessor :allow_blank, :prompt, :type, :sqref, :formula
5
6
 
6
7
  def in_sqref_range?(cell_id)
@@ -8,11 +9,19 @@ class OOXL
8
9
  cell_letter = cell_id.gsub(/[\d]/, '')
9
10
  index = cell_id.gsub(/[^\d]/, '').to_i
10
11
  range = sqref_range.find do |single_cell_letter_or_range, row_range|
11
- single_cell_letter_or_range.is_a?(Range) ? single_cell_letter_or_range.include?(cell_letter) : single_cell_letter_or_range == cell_letter
12
+ single_cell_letter_or_range.is_a?(Range) ? single_cell_letter_or_range.include?(cell_letter) || in_normalized_range?(single_cell_letter_or_range, cell_letter) : single_cell_letter_or_range == cell_letter
12
13
  end
13
14
  range.last.include?(index) if range.present?
14
15
  end
15
16
 
17
+ def in_normalized_range?(range, letter_to_find)
18
+ if range.first.length != range.last.length
19
+ (column_letter_to_number(range.first)..column_letter_to_number(range.last)).include?(column_letter_to_number(letter_to_find))
20
+ else
21
+ range.include?(letter_to_find)
22
+ end
23
+ end
24
+
16
25
  def self.load_from_node(data_validation_node)
17
26
  allow_blank = data_validation_node.attribute('allowBlank').try(:value)
18
27
  prompt = data_validation_node.attribute('prompt').try(:value)
@@ -21,7 +21,7 @@ class OOXL
21
21
  end
22
22
 
23
23
  def comment(cell_ref)
24
- @comments[cell_ref]
24
+ @comments[cell_ref] unless @comments.blank?
25
25
  end
26
26
 
27
27
  def data_validation(cell_ref)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ooxl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.4.15
4
+ version: 0.0.1.4.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Mones
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-28 00:00:00.000000000 Z
11
+ date: 2016-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
153
153
  version: '0'
154
154
  requirements: []
155
155
  rubyforge_project:
156
- rubygems_version: 2.6.4
156
+ rubygems_version: 2.6.8
157
157
  signing_key:
158
158
  specification_version: 4
159
159
  summary: OOXL Excel - Parse Excel Spreadsheets (xlsx, xlsm).