unitsml 0.2.8 → 0.3.0

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
  SHA256:
3
- metadata.gz: 1a775437dde5a269c76fd4529f22f22eb41193345ef08cba32ac1e96cd5ebb74
4
- data.tar.gz: 354441d98afb6f35ea037d8530faf7672a24002b16a0a78b5b8ac4cf9b11e650
3
+ metadata.gz: 5eec8700e144a7983623483da1e4093d961a717e0344f429ec03687257f1450f
4
+ data.tar.gz: 40b736d843d780c4b1366b11eb1441cbc53ba611f16507a33482b3f1c702ed7c
5
5
  SHA512:
6
- metadata.gz: 49a85665c41be2e35c0e4ce380b92adb2d8243293a841efab83673f2cdf61e7c3d7d13f8ba4cad9d6a6ffab8c9dc68f54038fa079961c6fc3c9add266ad27849
7
- data.tar.gz: 1a231c9ba814a87cdf88ae3fc64e5cf4a8d1d6362dc0411c9169b1e437f4ddddad037ab93651b5b3daec8c9e8d86d192370e7ae4e1b8595b5c3cb3588f00b3e8
6
+ metadata.gz: b14c95f4aaa4c223138212b82e082e42b5ae5d86689d4186d657f8b97dc9c8553b171c14cf08b386c930dae4ac2532400ecb286b9624a36c8e29a4fb8d8d6c10
7
+ data.tar.gz: cc1a2a790ae2084763eddda110f3fd7a3425d3cf8ae93c65649b7496e4f6fa6c4a52c856bee4bbc2e436ca09aff9a3ce852316ba7407dffea9949a763b4af0f6
data/Gemfile CHANGED
@@ -3,4 +3,12 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in unitsml.gemspec
4
4
  gemspec
5
5
 
6
- gem "rake"
6
+ gem "byebug"
7
+ gem "equivalent-xml"
8
+ gem "oga"
9
+ gem "plurimath"
10
+ gem "pry"
11
+ gem "rake"
12
+ gem "rspec"
13
+ gem "rubocop"
14
+ gem "simplecov"
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Unitsml
4
+ class Error < StandardError
5
+ end
6
+ end
7
+
8
+ require_relative "errors/plurimath_load_error"
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Unitsml
4
+ module Errors
5
+ class PlurimathLoadError < Unitsml::Error
6
+ def to_s
7
+ <<~MESSAGE
8
+ [unitsml] Error: Failed to require 'plurimath'.
9
+ [unitsml] Please add 'plurimath' in your gemfile and run 'bundle install'
10
+ [unitsml] OR
11
+ [unitsml] run following command to install the gem:
12
+ [unitsml] gem install plurimath
13
+ [unitsml] If this is a bug, please report at our official issue tracker:
14
+ [unitsml] https://github.com/unitsml/unitsml-ruby/issues
15
+ MESSAGE
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "plurimath"
4
3
  require_relative "utility"
5
4
  module Unitsml
6
5
  class Formula
@@ -68,6 +67,7 @@ module Unitsml
68
67
  end
69
68
 
70
69
  def to_plurimath
70
+ ensure_plurimath_defined!
71
71
  return Plurimath::Math.parse(to_asciimath, :asciimath) if @orig_text.match?(/-$/)
72
72
 
73
73
  Plurimath::Math.parse(to_mathml, :mathml)
@@ -160,5 +160,13 @@ module Unitsml
160
160
  Utility.quantity(norm_text, explicit_value&.dig(:quantity)),
161
161
  ].join
162
162
  end
163
+
164
+ def ensure_plurimath_defined!
165
+ return if Object.const_defined?(:Plurimath)
166
+
167
+ require "plurimath"
168
+ rescue LoadError => e
169
+ raise Errors::PlurimathLoadError
170
+ end
163
171
  end
164
172
  end
@@ -8,6 +8,7 @@ module Unitsml
8
8
  @regexp = %r{(quantity|name|symbol|multiplier):\s*}
9
9
  @text = text&.match(/unitsml\((.*)\)/) ? Regexp.last_match[1] : text
10
10
  @orig_text = @text
11
+ @text = @text.gsub("−", "-")
11
12
  post_extras
12
13
  end
13
14
 
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "ox"
4
+ require "htmlentities"
4
5
  module Unitsml
5
6
  module Utility
7
+ Ox.default_options = { encoding: "UTF-8" }
6
8
 
7
9
  UNITSML_NS = "https://schema.unitsml.org/unitsml/1.0".freeze
8
10
  # Unit to dimension
@@ -1,3 +1,3 @@
1
1
  module Unitsml
2
- VERSION = "0.2.8"
2
+ VERSION = "0.3.0"
3
3
  end
data/lib/unitsml.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "unitsml/error"
1
2
  require "unitsml/sqrt"
2
3
  require "unitsml/unit"
3
4
  require "unitsml/parse"
data/unitsml.gemspec CHANGED
@@ -28,12 +28,6 @@ Gem::Specification.new do |spec|
28
28
  spec.require_paths = ["lib", "unitsdb/**/*.yaml"]
29
29
 
30
30
  spec.add_dependency "htmlentities"
31
- spec.add_dependency "plurimath", "~> 0.8.4"
32
- spec.add_development_dependency "byebug"
33
- spec.add_development_dependency "equivalent-xml"
34
- spec.add_development_dependency "pry", "~> 0.12.2"
35
- spec.add_development_dependency "rake", "~> 12.0"
36
- spec.add_development_dependency "rspec", "~> 3.6"
37
- spec.add_development_dependency "rubocop", "= 0.54.0"
38
- spec.add_development_dependency "simplecov", "~> 0.15"
31
+ spec.add_dependency "ox"
32
+ spec.add_dependency "parslet"
39
33
  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.2.8
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-11 00:00:00.000000000 Z
11
+ date: 2025-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: htmlentities
@@ -25,27 +25,13 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: plurimath
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 0.8.4
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.8.4
41
- - !ruby/object:Gem::Dependency
42
- name: byebug
28
+ name: ox
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
46
32
  - !ruby/object:Gem::Version
47
33
  version: '0'
48
- type: :development
34
+ type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
@@ -53,89 +39,19 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: equivalent-xml
42
+ name: parslet
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - ">="
60
46
  - !ruby/object:Gem::Version
61
47
  version: '0'
62
- type: :development
48
+ type: :runtime
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - ">="
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: pry
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.12.2
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.12.2
83
- - !ruby/object:Gem::Dependency
84
- name: rake
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '12.0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '12.0'
97
- - !ruby/object:Gem::Dependency
98
- name: rspec
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '3.6'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '3.6'
111
- - !ruby/object:Gem::Dependency
112
- name: rubocop
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '='
116
- - !ruby/object:Gem::Version
117
- version: 0.54.0
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '='
123
- - !ruby/object:Gem::Version
124
- version: 0.54.0
125
- - !ruby/object:Gem::Dependency
126
- name: simplecov
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '0.15'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '0.15'
139
55
  description: Gem-wrapper for working with unitsdb
140
56
  email:
141
57
  - open.source@ribose.com
@@ -158,6 +74,8 @@ files:
158
74
  - docs/navigation.adoc
159
75
  - lib/unitsml.rb
160
76
  - lib/unitsml/dimension.rb
77
+ - lib/unitsml/error.rb
78
+ - lib/unitsml/errors/plurimath_load_error.rb
161
79
  - lib/unitsml/extender.rb
162
80
  - lib/unitsml/formula.rb
163
81
  - lib/unitsml/parse.rb