ooxml_parser 0.15.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d95158b66da173b7cc2b1c80b4780c0893cb840ff47a20bee389285054e3f4e
4
- data.tar.gz: ec88614112d6ec0c69e5269dd8d128ead722cd1d338ac0500f7868409e8a5160
3
+ metadata.gz: 93d49b878e6b9a06afef0feb2bc87343ce8ee65010b40cf97d4df4be73fc32d9
4
+ data.tar.gz: 90466124985a9d35ee740930b459f8d03a72bd4ed84534d8e90427c58cf3e881
5
5
  SHA512:
6
- metadata.gz: ac0bae842196c698f38563be771715d3cb78de1081904528f4557fe6faf0c7b20199945f0b5da952da0eef238e5b38a80e06e3c65a64a76b44824d9a105a24b4
7
- data.tar.gz: cec21fd072fc64cc6ec436b86a0f68a0a11fb42356ca6826f20e2e8ccaa3de291e2ba2e8f76bcda5243473a46217f1d3a6b04beedfa0e9b2ac00f11aa9a7983f
6
+ metadata.gz: fba03885d36dbea193b6cd4616062e9d7ed5c6cfee9ac35d1767a3715736ab96b63d6a2a0015227aad188bef73e7ad8196a347667d38173de1c1d4c0773235f1
7
+ data.tar.gz: 0db3346a2caf864675cc3bfa0a0bce44bbf6dcda1423941c2c2fd95cce8d90cb4721bb2127a0493fd206b43b61a94eb8780f586ab499137bbd252689709839f7
@@ -45,11 +45,11 @@ module OoxmlParser
45
45
  hls_color.h = if max == red && green >= blue
46
46
  60.0 * (green - blue) / delta
47
47
  elsif max == red && green < blue
48
- 60.0 * (green - blue) / delta + 360.0
48
+ (60.0 * (green - blue) / delta) + 360.0
49
49
  elsif max == green
50
- 60.0 * (blue - red) / delta + 120.0
50
+ (60.0 * (blue - red) / delta) + 120.0
51
51
  else
52
- 60.0 * (red - green) / delta + 240.0
52
+ (60.0 * (red - green) / delta) + 240.0
53
53
  end
54
54
  end
55
55
 
@@ -48,7 +48,7 @@ module OoxmlParser
48
48
 
49
49
  # @return [String] result of convert of object to string
50
50
  def to_s
51
- if @red == VALUE_FOR_NONE_COLOR && @green == VALUE_FOR_NONE_COLOR && @blue == VALUE_FOR_NONE_COLOR
51
+ if primary_colors_none?
52
52
  'none'
53
53
  else
54
54
  "RGB (#{@red}, #{@green}, #{@blue})"
@@ -69,8 +69,8 @@ module OoxmlParser
69
69
 
70
70
  # @return [True, False] is color default
71
71
  def none?
72
- (@red == VALUE_FOR_NONE_COLOR) && (@green == VALUE_FOR_NONE_COLOR) && (@blue == VALUE_FOR_NONE_COLOR) ||
73
- (style == :nil)
72
+ primary_colors_none? ||
73
+ style == :nil
74
74
  end
75
75
 
76
76
  # @return [True, False] is color not default
@@ -83,6 +83,14 @@ module OoxmlParser
83
83
  (@red == 255) && (@green == 255) && (@blue == 255)
84
84
  end
85
85
 
86
+ # Check if all three primary colors are none
87
+ # @return [Boolean]
88
+ def primary_colors_none?
89
+ @red == VALUE_FOR_NONE_COLOR &&
90
+ @green == VALUE_FOR_NONE_COLOR &&
91
+ @blue == VALUE_FOR_NONE_COLOR
92
+ end
93
+
86
94
  # Method to copy object
87
95
  # @return [Color] copied object
88
96
  def copy
@@ -22,9 +22,9 @@ module OoxmlParser
22
22
  # Chroma - The "colorfulness relative to the brightness of a similarly illuminated white".
23
23
  # @return [Color] result
24
24
  def to_rgb
25
- chroma = (1 - (2 * @l - 1).abs) * @s
26
- x = chroma * (1 - ((@h / 60.0) % 2.0 - 1).abs)
27
- m = @l - chroma / 2.0
25
+ chroma = (1 - ((2 * @l) - 1).abs) * @s
26
+ x = chroma * (1 - (((@h / 60.0) % 2.0) - 1).abs)
27
+ m = @l - (chroma / 2.0)
28
28
 
29
29
  rgb = if @h.zero?
30
30
  Color.new(0, 0, 0)
@@ -52,7 +52,7 @@ module OoxmlParser
52
52
  if tint.nil?
53
53
  lum
54
54
  else
55
- tint.negative? ? lum * (1.0 + tint) : lum * (1.0 - tint) + (255 - 255 * (1.0 - tint))
55
+ tint.negative? ? lum * (1.0 + tint) : (lum * (1.0 - tint)) + (255 - (255 * (1.0 - tint)))
56
56
  end
57
57
  end
58
58
 
@@ -114,7 +114,7 @@ module OoxmlParser
114
114
  # and converts into integer
115
115
  def column_number
116
116
  @column.reverse.each_char.reduce(0) do |result, char|
117
- result + (char.downcase.ord - 96) * (26**@column.reverse.index(char))
117
+ result + ((char.downcase.ord - 96) * (26**@column.reverse.index(char)))
118
118
  end
119
119
  end
120
120
 
@@ -96,5 +96,17 @@ module OoxmlParser
96
96
  end
97
97
  end
98
98
  end
99
+
100
+ # Fetch data from `ParagraphSpacing`
101
+ # Which have values with parameters
102
+ # @param valued_spacing [ParagraphSpacing] spacing to get params
103
+ # @return [Spacing]
104
+ def fetch_from_valued_spacing(valued_spacing)
105
+ @before = valued_spacing.before.to_unit(:centimeter).value if valued_spacing.before
106
+ @after = valued_spacing.after.to_unit(:centimeter).value if valued_spacing.after
107
+ @line = valued_spacing.line.to_unit(:centimeter).value if valued_spacing.line
108
+ @line_rule = valued_spacing.line_rule if valued_spacing.line_rule
109
+ self
110
+ end
99
111
  end
100
112
  end
@@ -33,7 +33,7 @@ module OoxmlParser
33
33
  when 'effect'
34
34
  self.effect = node_child.attribute('val').value
35
35
  when 'position'
36
- self.position = (node_child.attribute('val').value.to_f / (28.0 + 1.0 / 3.0) / 2.0).round(1)
36
+ self.position = (node_child.attribute('val').value.to_f / (28.0 + (1.0 / 3.0)) / 2.0).round(1)
37
37
  when 'em'
38
38
  self.em = node_child.attribute('val').value
39
39
  when 'spacing'
@@ -216,12 +216,8 @@ module OoxmlParser
216
216
  @align = node_child.attribute('val').value.to_sym unless node_child.attribute('val').nil?
217
217
  @align = :justify if node_child.attribute('val').value == 'both'
218
218
  when 'spacing'
219
- @spacing.before = (node_child.attribute('before').value.to_f / 566.9).round(2) unless node_child.attribute('before').nil?
220
- @spacing.after = (node_child.attribute('after').value.to_f / 566.9).round(2) unless node_child.attribute('after').nil?
221
- @spacing.line_rule = node_child.attribute('lineRule').value.sub('atLeast', 'at_least').to_sym unless node_child.attribute('lineRule').nil?
222
- unless node_child.attribute('line').nil?
223
- @spacing.line = (@spacing.line_rule == :auto ? (node_child.attribute('line').value.to_f / 240.0).round(2) : (node_child.attribute('line').value.to_f / 566.9).round(2))
224
- end
219
+ @valued_spacing = ParagraphSpacing.new(parent: self).parse(node_child)
220
+ @spacing = @spacing.fetch_from_valued_spacing(@valued_spacing)
225
221
  when 'sectPr'
226
222
  @sector_properties = PageProperties.new(parent: self).parse(node_child, self, default_char_style)
227
223
  @section_break = case @sector_properties.type
@@ -19,8 +19,8 @@ module OoxmlParser
19
19
 
20
20
  # @return [True, False] compare dimensions of size, ignoring orientation
21
21
  def same_dimensions?(other)
22
- (@height == other.height) && (@width == other.width) ||
23
- (@height == other.width) && (@width == other.height)
22
+ ((@height == other.height) && (@width == other.width)) ||
23
+ ((@height == other.width) && (@width == other.height))
24
24
  end
25
25
 
26
26
  # @return [String] get human format name
@@ -4,6 +4,6 @@ module OoxmlParser
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
6
  # [String] Version of Gem
7
- STRING = '0.15.0'
7
+ STRING = '0.16.0'
8
8
  end
9
9
  end
@@ -19,15 +19,19 @@ module OoxmlParser
19
19
  attr_reader :stop_if_true
20
20
  # @return [Symbol] Relational operator in value rule
21
21
  attr_reader :operator
22
+ # @return [Symbol] Specifies whether top/bottom rule highlights bottom values
23
+ attr_reader :bottom
22
24
  # @return [Symbol] Specifies whether percent is used in top/bottom rule
23
25
  attr_reader :percent
24
26
  # @return [Integer] Number of items in top/bottom rule
25
27
  attr_reader :rank
26
28
  # @return [Integer] Number of standard deviations in above/below average rule
27
29
  attr_reader :standard_deviation
28
- # @return [String] text value in text rule
30
+ # @return [String] Text value in text rule
29
31
  attr_reader :text
30
- # @return [Array, Formula] Formulas to determine condition
32
+ # @return [Symbol] Time period in date rule
33
+ attr_reader :time_period
34
+ # @return [Array<Formula>] Formulas to determine condition
31
35
  attr_reader :formulas
32
36
  # @return [DifferentialFormattingRecord] Format
33
37
  attr_reader :rule_format
@@ -61,6 +65,8 @@ module OoxmlParser
61
65
  @stop_if_true = attribute_enabled?(value)
62
66
  when 'operator'
63
67
  @operator = value.value.to_sym
68
+ when 'bottom'
69
+ @bottom = attribute_enabled?(value)
64
70
  when 'percent'
65
71
  @percent = attribute_enabled?(value)
66
72
  when 'rank'
@@ -69,6 +75,8 @@ module OoxmlParser
69
75
  @standard_deviation = value.value.to_i
70
76
  when 'text'
71
77
  @text = value.text.to_s
78
+ when 'timePeriod'
79
+ @time_period = value.value.to_sym
72
80
  end
73
81
  end
74
82
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ooxml_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ONLYOFFICE
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-09-13 00:00:00.000000000 Z
13
+ date: 2021-09-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri