unitsml 0.2.9 → 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: f827b7e008cb967cbba93afa4777921dc1888d14a1c774fb9e8d53519c96a23f
4
- data.tar.gz: 9890b583f250c426d3dc6b0bc1f117a32aea3dd88179abb9326faddd68b4822d
3
+ metadata.gz: 5eec8700e144a7983623483da1e4093d961a717e0344f429ec03687257f1450f
4
+ data.tar.gz: 40b736d843d780c4b1366b11eb1441cbc53ba611f16507a33482b3f1c702ed7c
5
5
  SHA512:
6
- metadata.gz: d182c8400372ec3c46ac932436ca403e496b36ef27f478e08867452add6e9a10845fe49b9795ff3ac5f4393b968cab2ce07cbee9002151e31f287a80ad6df74c
7
- data.tar.gz: 41981bc903d629980f4937bd2b76e0971ab69f45d635ca897d414dd6a5871e1e7f4892838695593d3b5fe4953375401f61a8ab1bc8e19d55ea24a78b5bf7a2aa
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
@@ -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.9"
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.9
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-16 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