unitsml 0.4.1 → 0.4.3

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: b6632e70a14a2c9662b85b1112a0569486677426e017cb088ebdc8f1e731e05c
4
- data.tar.gz: 4fa710e853070a32fac7270f42fe69943fec949640aca6e42808416a95d5a28e
3
+ metadata.gz: 3125feede7c0e09e2760c586f23b5faed651a41cd69e6a515b37628dcbfb6461
4
+ data.tar.gz: 834148b38b404bff32cda0ba16c948f5a505fe4f217cbc2c5815ce3da00f25b9
5
5
  SHA512:
6
- metadata.gz: 3624ad9bc0876043b78eff8f42d6894c0b4acc3d6a1938dd60e1f9ed7506f781c6fe96257c9cbd3e85a31a793833b8d021bb56300140faecd21eb47facd5eddc
7
- data.tar.gz: 1443c411718074a7fcff0c7362158233530777e31b09cf3a1e58379579ed3fa0a94ecfa08aca519cc2d59193d22834e9f224c0be6966307095ab140237d46b5c
6
+ metadata.gz: 1128ead5ecc9efa1fdfa66aa2edcb53a644384d78d4702079e9f00ce1da9ac9eb9167f21de63779ef25bc41ad72484cc75839591acc8c0ff115a9e1cb7e10214
7
+ data.tar.gz: c69cdf9204c9dcf431c605ac0686cba8b7e1f7c36c5263b9086b2763812e4745da29636e2f5b63b320ec6d22749cb159c8e71c84bff6675db95ea926ed15e1b6
@@ -14,37 +14,47 @@ module Unitsml
14
14
  end
15
15
 
16
16
  def to_mathml(options)
17
- multiplier = case options[:multiplier]
18
- when :space
19
- rspace = "thickmathspace"
20
- "⁢"
21
- when :nospace
22
- "⁢"
23
- else
24
- extender = options[:multiplier] || "⋅"
25
- Utility.string_to_html_entity(extender)
26
- end
17
+ rspace = "thickmathspace" if options[:multiplier] == :space
18
+ extender = multiplier(options[:multiplier] || "⋅", unicode: true)
27
19
  {
28
20
  method_name: :mo,
29
- value: ::Mml::Mo.new(value: multiplier, rspace: rspace),
21
+ value: ::Mml::Mo.new(value: extender, rspace: rspace),
30
22
  }
31
23
  end
32
24
 
33
25
  def to_latex(options)
34
- options[:multiplier] || "/"
26
+ multiplier(options[:multiplier] || "/")
35
27
  end
36
28
 
37
29
  def to_asciimath(options)
38
- options[:multiplier] || symbol
30
+ multiplier(options[:multiplier] || symbol)
39
31
  end
40
32
 
41
33
  def to_html(options)
42
- options[:multiplier] || "⋅"
34
+ multiplier(options[:multiplier] || "", unicode: true, html: true)
43
35
  end
44
36
 
45
37
  def to_unicode(options)
46
- options[:multiplier] ||
47
- symbol == "*" ? "·" : symbol
38
+ extender = options[:multiplier] ||
39
+ symbol == "*" ? "·" : symbol
40
+ multiplier(extender)
41
+ end
42
+
43
+ private
44
+
45
+ def multiplier(extender, unicode: false, html: false)
46
+ case extender
47
+ when :space
48
+ if html
49
+ " "
50
+ else
51
+ unicode ? "⁢" : " "
52
+ end
53
+ when :nospace
54
+ unicode ? "⁢" : ""
55
+ else
56
+ unicode ? Utility.string_to_html_entity(extender) : extender
57
+ end
48
58
  end
49
59
  end
50
60
  end
@@ -168,7 +168,7 @@ module Unitsml
168
168
 
169
169
  def add_math_element(math_instance, child_hash)
170
170
  method_name = child_hash[:method_name]
171
- method_value = math_instance.public_send(:"#{method_name}_value")
171
+ method_value = math_instance.public_send(:"#{method_name}_value") || []
172
172
  method_value += Array(child_hash[:value])
173
173
  math_instance.public_send(:"#{method_name}_value=", method_value)
174
174
  math_instance.element_order << Lutaml::Model::XmlAdapter::Element.new("Element", method_name.to_s)
@@ -78,7 +78,7 @@ module Unitsml
78
78
 
79
79
  instance_variable_set(:"@#{instance_var}", value)
80
80
  @processed_keys << instance_var.to_s
81
- return if value.dim_symbols.empty?
81
+ return if value.dim_symbols.nil? || value.dim_symbols.empty?
82
82
 
83
83
  @parsable = true
84
84
  value.dim_symbols_ids(@parsables, id)
@@ -87,7 +87,7 @@ module Unitsml
87
87
  def decompose_unit(u)
88
88
  if u&.unit_name == "g" || u.system_type == "SI_base"
89
89
  { unit: u, prefix: u&.prefix }
90
- elsif u.si_derived_bases.empty?
90
+ elsif u.si_derived_bases.nil? || u.si_derived_bases.empty?
91
91
  { unit: Unit.new("unknown") }
92
92
  else
93
93
  u.si_derived_bases.each_with_object([]) do |k, object|
@@ -1,3 +1,3 @@
1
1
  module Unitsml
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unitsml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-02-25 00:00:00.000000000 Z
11
+ date: 2025-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities
@@ -160,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  - !ruby/object:Gem::Version
161
161
  version: '0'
162
162
  requirements: []
163
- rubygems_version: 3.3.27
163
+ rubygems_version: 3.5.22
164
164
  signing_key:
165
165
  specification_version: 4
166
166
  summary: Gem-wrapper for working with unitsdb