unitsml 0.4.3 → 0.4.5
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 +4 -4
- data/LICENSE.md +33 -0
- data/docs/README.adoc +268 -14
- data/lib/unitsml/formula.rb +18 -12
- data/lib/unitsml/utility.rb +1 -1
- data/lib/unitsml/version.rb +1 -1
- data/lib/unitsml.rb +5 -0
- data/unitsml.gemspec +16 -16
- metadata +5 -5
- data/LICENSE.txt +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 595f12d3478d434cc3c1ef1c1f1a4098b76b58fa7f0d278161303962b464c62c
|
4
|
+
data.tar.gz: 1a506fc8ee2ba7ce2dadfe29126c2117381cd0cd178288ce17076b542f2f2c1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cd31af2b06a97774ac9c4ff957c76d4e704672d47b6477eb97145a5164afa1bc41b856fe35661adde71b96295038897c4ff6549af9f0311448d3ec2545a5457
|
7
|
+
data.tar.gz: 6e44d3fc983c0cd348529f8061677d4f0d76d586372c00b96530955d231982a125c15b7e3f93893f2183ca4cca98a11f69c37ec7a89884b1fb4c4a4e6e1a0ff4
|
data/LICENSE.md
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
Licenses & Copyright
|
2
|
+
====================
|
3
|
+
|
4
|
+
This license file adheres to the formatting guidelines of
|
5
|
+
[readable-licenses](https://github.com/nevir/readable-licenses).
|
6
|
+
|
7
|
+
|
8
|
+
Ribose's BSD 2-Clause License
|
9
|
+
-----------------------------
|
10
|
+
|
11
|
+
Copyright (c) 2021-2025, [Ribose Inc](https://www.ribose.com).
|
12
|
+
All rights reserved.
|
13
|
+
|
14
|
+
Redistribution and use in source and binary forms, with or without modification,
|
15
|
+
are permitted provided that the following conditions are met:
|
16
|
+
|
17
|
+
1. Redistributions of source code must retain the above copyright notice,
|
18
|
+
this list of conditions and the following disclaimer.
|
19
|
+
|
20
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
21
|
+
this list of conditions and the following disclaimer in the documentation
|
22
|
+
and/or other materials provided with the distribution.
|
23
|
+
|
24
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
25
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
26
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
27
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
28
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
29
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
30
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
31
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
32
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
33
|
+
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/docs/README.adoc
CHANGED
@@ -1,6 +1,175 @@
|
|
1
|
-
=
|
1
|
+
= UnitsML in Ruby
|
2
|
+
|
3
|
+
https://github.com/unitsml/unitsml-ruby[image:https://img.shields.io/github/stars/unitsml/unitsml-ruby.svg?style=social[GitHub Stars]]
|
4
|
+
https://github.com/unitsml/unitsml-ruby[image:https://img.shields.io/github/forks/unitsml/unitsml-ruby.svg?style=social[GitHub Forks]]
|
5
|
+
image:https://img.shields.io/github/license/unitsml/unitsml-ruby.svg[License]
|
6
|
+
image:https://img.shields.io/github/actions/workflow/status/unitsml/unitsml-ruby/rake.yml?branch=main[Build Status]
|
7
|
+
image:https://img.shields.io/gem/v/unitsml.svg[RubyGems Version]
|
8
|
+
|
9
|
+
== Purpose
|
10
|
+
|
11
|
+
UnitsML is a markup language for representing units of measurement in a
|
12
|
+
machine-readable format.
|
13
|
+
|
14
|
+
It is designed to be used in various applications, including scientific
|
15
|
+
computing, data analysis, and engineering.
|
16
|
+
|
17
|
+
The UnitsML Ruby library provides the following components:
|
18
|
+
|
19
|
+
XML syntax for:
|
20
|
+
|
21
|
+
* representing units and quantity information
|
22
|
+
Composite units
|
23
|
+
|
24
|
+
* Parser for the UnitsML parser - Parses UnitsML expressions.
|
25
|
+
* Unit Converter - Converts units between formats.
|
26
|
+
* Formatter - Formats units for display in various formats.
|
27
|
+
|
28
|
+
|
29
|
+
The UnitsML Ruby library is a gem for parsing, manipulating, and converting unit expressions based on the Units Markup Language (UnitsML) specification. This library provides functionality to handle units of measurement in a standardized way across different formats.
|
30
|
+
|
31
|
+
|
32
|
+
== Structure
|
33
|
+
|
34
|
+
The UnitsML Ruby library consists of several key components:
|
35
|
+
|
36
|
+
* Parser: Parses string expressions into structured data
|
37
|
+
* Transform: Transforms parsed data into domain objects
|
38
|
+
* Formula: Represents compound unit expressions
|
39
|
+
* Unit: Represents individual units
|
40
|
+
* Prefix: Represents unit prefixes (k, m, μ, etc.)
|
41
|
+
* Dimension: Represents physical dimensions
|
42
|
+
|
43
|
+
The library also includes the full https://github.com/unitsml/unitsdb[UnitsDB]
|
44
|
+
units database, which contains standard units, prefixes, and dimensions.
|
45
|
+
|
46
|
+
|
47
|
+
== Usage
|
48
|
+
|
49
|
+
=== AsciiUnits
|
50
|
+
|
51
|
+
The UnitsML Ruby library supports AsciiUnits, a text-based syntax for
|
52
|
+
representing units of measurement in a compact and human-readable format.
|
53
|
+
|
54
|
+
The UnitsML Ruby library supports all available units defined in the official
|
55
|
+
UnitsDB database.
|
56
|
+
|
57
|
+
=== Basic units
|
58
|
+
|
59
|
+
A basic unit is a unit that has an entry in the UnitsDB database
|
60
|
+
with a unique identifier.
|
61
|
+
|
62
|
+
Basic units are represented in the library as `Unitsml::Unit` objects.
|
63
|
+
|
64
|
+
[source,ruby]
|
65
|
+
----
|
66
|
+
require 'unitsml'
|
67
|
+
unit = Unitsml.parse("m") # Parse a unit expression
|
68
|
+
unit.to_s # => "m"
|
69
|
+
unit.to_xml
|
70
|
+
# =>
|
71
|
+
<Unit xmlns="https://schema.unitsml.org/unitsml/1.0" xml:id="U_NISTu1" dimensionURL="#NISTd1">
|
72
|
+
<UnitSystem name="SI" type="SI_derived" xml:lang="en-US"/>
|
73
|
+
<UnitName xml:lang="en">meter</UnitName>
|
74
|
+
<UnitSymbol type="HTML">m</UnitSymbol>
|
75
|
+
<UnitSymbol type="MathMl">
|
76
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
77
|
+
<mi mathvariant="normal">m</mi>
|
78
|
+
</math>
|
79
|
+
</UnitSymbol>
|
80
|
+
</Unit>
|
81
|
+
|
82
|
+
<Dimension xmlns="https://schema.unitsml.org/unitsml/1.0" xml:id="NISTd1">
|
83
|
+
<Length symbol="L" powerNumerator="1"/>
|
84
|
+
</Dimension>
|
85
|
+
----
|
86
|
+
|
87
|
+
|
88
|
+
=== Prefixed units
|
89
|
+
|
90
|
+
A prefixed unit is a unit that has a prefix (like kilo, milli, micro, etc.)
|
91
|
+
that modifies its value.
|
92
|
+
|
93
|
+
Prefixed units are represented in the library as `Unitsml::Prefix` objects.
|
94
|
+
|
95
|
+
The library supports the full range of prefixes defined in the UnitsDB database.
|
96
|
+
|
97
|
+
[source,ruby]
|
98
|
+
----
|
99
|
+
require 'unitsml'
|
100
|
+
unit = Unitsml.parse("um") # Parse a unit expression
|
101
|
+
unit.to_s # => "um"
|
102
|
+
unit.to_xml
|
103
|
+
# =>
|
104
|
+
<Unit xmlns="https://schema.unitsml.org/unitsml/1.0" xml:id="U_um" dimensionURL="#NISTd1">
|
105
|
+
<UnitSystem name="SI" type="SI_derived" xml:lang="en-US"/>
|
106
|
+
<UnitName xml:lang="en">um</UnitName>
|
107
|
+
<UnitSymbol type="HTML">µm</UnitSymbol>
|
108
|
+
<UnitSymbol type="MathMl"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
109
|
+
<mi mathvariant='normal'>µm</mi>
|
110
|
+
</math>
|
111
|
+
</UnitSymbol>
|
112
|
+
<RootUnits>
|
113
|
+
<EnumeratedRootUnit unit="meter" prefix="u"/>
|
114
|
+
</RootUnits>
|
115
|
+
</Unit>
|
116
|
+
|
117
|
+
<Prefix xmlns="https://schema.unitsml.org/unitsml/1.0" prefixBase="10" prefixPower="-6" xml:id="NISTp10_-6">
|
118
|
+
<PrefixName xml:lang="en">micro</PrefixName>
|
119
|
+
<PrefixSymbol type="ASCII">u</PrefixSymbol>
|
120
|
+
<PrefixSymbol type="unicode">μ</PrefixSymbol>
|
121
|
+
<PrefixSymbol type="LaTeX">$mu$</PrefixSymbol>
|
122
|
+
<PrefixSymbol type="HTML">µ</PrefixSymbol>
|
123
|
+
</Prefix>
|
124
|
+
|
125
|
+
<Dimension xmlns="https://schema.unitsml.org/unitsml/1.0" xml:id="NISTd1">
|
126
|
+
<Length symbol="L" powerNumerator="1"/>
|
127
|
+
</Dimension>
|
128
|
+
----
|
129
|
+
|
130
|
+
Prefixed units: mm, kg, μm
|
131
|
+
|
132
|
+
|
133
|
+
=== Creating composite units
|
134
|
+
|
135
|
+
A composite unit is a unit that is derived from two or more basic units
|
136
|
+
conjoined by multiplication or division.
|
137
|
+
|
138
|
+
Composite units are created using the `Unitsml.parse` method.
|
139
|
+
|
140
|
+
Compound units with operations: kg*s^-2
|
141
|
+
Units with powers: C^3
|
142
|
+
Square roots: sqrt(Hz)
|
143
|
+
Units with prefixes: m/s, m^2/s^2
|
144
|
+
|
145
|
+
|
146
|
+
=== Format representation
|
147
|
+
|
148
|
+
The library supports representation of UnitsML-encoded units in various formats.
|
149
|
+
|
150
|
+
These formats include:
|
151
|
+
|
152
|
+
* MathML
|
153
|
+
* LaTeX
|
154
|
+
* AsciiMath
|
155
|
+
* HTML
|
156
|
+
* Unicode
|
157
|
+
* XML (in UnitsML)
|
158
|
+
|
159
|
+
Units can be converted to multiple formats as follows:
|
160
|
+
|
161
|
+
[source,ruby]
|
162
|
+
----
|
163
|
+
unit = Unitsml.parse("m/s")
|
164
|
+
unit.to_mathml # MathML representation
|
165
|
+
unit.to_latex # LaTeX representation
|
166
|
+
unit.to_asciimath # AsciiMath representation
|
167
|
+
unit.to_html # HTML representation
|
168
|
+
unit.to_unicode # Unicode representation
|
169
|
+
unit.to_xml # XML (in UnitsML) representation
|
170
|
+
----
|
171
|
+
|
2
172
|
|
3
|
-
Gem-wrapper for unitsdb
|
4
173
|
|
5
174
|
== Installation
|
6
175
|
|
@@ -13,42 +182,127 @@ gem 'unitsml'
|
|
13
182
|
|
14
183
|
And then execute:
|
15
184
|
|
16
|
-
[source,
|
185
|
+
[source,console]
|
17
186
|
----
|
18
187
|
$ bundle install
|
19
188
|
----
|
20
189
|
|
21
|
-
Or install it yourself
|
190
|
+
Or install it yourself with:
|
22
191
|
|
23
|
-
[source,
|
192
|
+
[source,console]
|
24
193
|
----
|
25
194
|
$ gem install unitsml
|
26
195
|
----
|
27
196
|
|
28
197
|
== Usage
|
29
198
|
|
30
|
-
|
199
|
+
*UnitsML* Ruby provides functionality to represent and convert units between different formats including *MathML*, *LaTeX*, *AsciiMath*, *HTML*, *Unicode*, and *XML*(*Unitsml* schema based elements).
|
200
|
+
|
201
|
+
=== Basic Usage
|
31
202
|
|
32
203
|
[source,ruby]
|
33
204
|
----
|
34
|
-
|
205
|
+
require 'unitsml'
|
206
|
+
|
207
|
+
Unitsml.parse("mm*kg/s^2") # Parse a unit expression
|
208
|
+
----
|
209
|
+
|
210
|
+
=== Format Conversions
|
211
|
+
|
212
|
+
Units can be converted to different formats:
|
213
|
+
|
214
|
+
[source,ruby]
|
215
|
+
----
|
216
|
+
unit = Unitsml.parse("m/s") # Create a unit example
|
217
|
+
|
218
|
+
# Convert to different formats
|
219
|
+
unit.to_mathml
|
220
|
+
unit.to_latex
|
221
|
+
unit.to_asciimath
|
222
|
+
unit.to_html
|
223
|
+
unit.to_unicode
|
224
|
+
unit.to_xml
|
225
|
+
----
|
226
|
+
|
227
|
+
=== Extenders
|
228
|
+
|
229
|
+
An `Extender` is the symbol between units (like multiplication or division):
|
230
|
+
|
231
|
+
[[example]]
|
232
|
+
[source, ruby]
|
233
|
+
----
|
234
|
+
formula = Unitsml.parse("m*m") # the '*' is the extender
|
235
|
+
formula.to_mathml
|
236
|
+
----
|
237
|
+
|
238
|
+
[source,xml]
|
239
|
+
----
|
240
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
241
|
+
<mi mathvariant="normal">m</mi>
|
242
|
+
<mo>⋅</mo>
|
243
|
+
<mi mathvariant="normal">m</mi>
|
244
|
+
</math>
|
245
|
+
----
|
246
|
+
|
247
|
+
The output of extenders can be customized by passing the `multiplier` argument:
|
248
|
+
|
249
|
+
[[example]]
|
250
|
+
|
251
|
+
[source, ruby]
|
35
252
|
----
|
253
|
+
formula = Unitsml.parse("m/m")
|
254
|
+
formula.to_asciimath(multiplier: "·") # the '·' is the extender for the output
|
255
|
+
> "m·m^-1"
|
256
|
+
----
|
257
|
+
|
258
|
+
The `multiplier` argument is supported in all supported conversions.
|
259
|
+
|
260
|
+
==== Supported multipliers
|
261
|
+
|
262
|
+
The `multiplier` argument supports following types of input:
|
263
|
+
|
264
|
+
* `:space` - Represents multiplication with a space
|
265
|
+
* `:nospace` - Represents multiplication with no space
|
266
|
+
* Custom symbols - Like "·", "/", "*", "aA", "12", etc.
|
267
|
+
|
268
|
+
=== Plurimath support
|
269
|
+
|
270
|
+
This gem requires the *Plurimath* gem to provide `to_plurimath` method
|
271
|
+
functionality. You need to explicitly install it, please follow the installtion
|
272
|
+
instructions in the
|
273
|
+
https://github.com/plurimath/plurimath?tab=readme-ov-file#installation[*Plurimath*]
|
274
|
+
repository.
|
36
275
|
|
37
276
|
== Development
|
38
277
|
|
39
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `
|
278
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
40
279
|
|
41
|
-
|
280
|
+
=== Submodules
|
42
281
|
|
43
|
-
|
282
|
+
When developing or contributing to *UnitsML Ruby*, you'll need to ensure the
|
283
|
+
submodules are available. After cloning the repository, verify that the
|
284
|
+
submodules exist in the directory.
|
44
285
|
|
45
|
-
|
286
|
+
If not, populate the submodules by running:
|
46
287
|
|
288
|
+
[source,console]
|
289
|
+
----
|
290
|
+
$ git submodule update --init --recursive
|
291
|
+
----
|
47
292
|
|
48
|
-
|
293
|
+
*`unitsdb`* is the only submodule required in this gem for now.
|
49
294
|
|
50
|
-
The gem is available as open source under the terms of the https://opensource.org/licenses/MIT[MIT license].
|
51
295
|
|
52
296
|
== Code of Conduct
|
53
297
|
|
54
|
-
Everyone interacting in the Unitsml project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the
|
298
|
+
Everyone interacting in the Unitsml project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the
|
299
|
+
https://github.com/unitsml/unitsml-ruby/blob/master/docs/CODE_OF_CONDUCT.adoc[code of conduct].
|
300
|
+
|
301
|
+
|
302
|
+
== License and Copyright
|
303
|
+
|
304
|
+
This project is licensed under the BSD 2-clause License.
|
305
|
+
|
306
|
+
See the link:LICENSE.md[] file for details.
|
307
|
+
|
308
|
+
Copyright Ribose.
|
data/lib/unitsml/formula.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require "mml"
|
4
4
|
require "htmlentities"
|
5
5
|
require "unitsml/utility"
|
6
|
+
|
6
7
|
module Unitsml
|
7
8
|
class Formula
|
8
9
|
attr_accessor :value, :explicit_value, :root
|
@@ -33,17 +34,11 @@ module Unitsml
|
|
33
34
|
math = ::Mml::MathWithNamespace.new(display: "block")
|
34
35
|
math.ordered = true
|
35
36
|
math.element_order ||= []
|
36
|
-
value.each
|
37
|
-
|
38
|
-
|
39
|
-
when Array
|
40
|
-
processed_instance.each { |hash| add_math_element(math, hash) }
|
41
|
-
when Hash
|
42
|
-
add_math_element(math, processed_instance)
|
43
|
-
end
|
44
|
-
end
|
37
|
+
value.each { |instance| process_value(math, instance.to_mathml(options)) }
|
38
|
+
|
39
|
+
generated_math = math.to_xml.gsub(/&(.*?)(?=<\/)/, '&\1')
|
45
40
|
reset_mml_models if plurimath_available?
|
46
|
-
|
41
|
+
generated_math
|
47
42
|
else
|
48
43
|
value.map { |obj| obj.to_mathml(options) }
|
49
44
|
end
|
@@ -171,11 +166,13 @@ module Unitsml
|
|
171
166
|
method_value = math_instance.public_send(:"#{method_name}_value") || []
|
172
167
|
method_value += Array(child_hash[:value])
|
173
168
|
math_instance.public_send(:"#{method_name}_value=", method_value)
|
174
|
-
math_instance.element_order << Lutaml::Model::
|
169
|
+
math_instance.element_order << Lutaml::Model::Xml::Element.new("Element", method_name.to_s)
|
175
170
|
end
|
176
171
|
|
177
172
|
def plurimath_available?
|
178
|
-
Object.const_defined?(:Plurimath)
|
173
|
+
Object.const_defined?(:Plurimath) &&
|
174
|
+
Plurimath.const_defined?(:Math) &&
|
175
|
+
Plurimath.const_defined?(:Mathml)
|
179
176
|
end
|
180
177
|
|
181
178
|
def nullify_mml_models
|
@@ -186,6 +183,15 @@ module Unitsml
|
|
186
183
|
::Mml::Configuration.custom_models = Plurimath::Mathml::Parser::CONFIGURATION
|
187
184
|
end
|
188
185
|
|
186
|
+
def process_value(math, mathml_instances)
|
187
|
+
case mathml_instances
|
188
|
+
when Array
|
189
|
+
mathml_instances.each { |hash| process_value(math, hash) }
|
190
|
+
when Hash
|
191
|
+
add_math_element(math, mathml_instances)
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
189
195
|
def update_options(options)
|
190
196
|
return options unless root
|
191
197
|
|
data/lib/unitsml/utility.rb
CHANGED
@@ -234,7 +234,7 @@ module Unitsml
|
|
234
234
|
uniq_prefixes = units.map { |unit| unit.prefix }.compact.uniq {|d| d.prefix_name }
|
235
235
|
uniq_prefixes.map do |prefix|
|
236
236
|
prefix_attrs = { prefix_base: prefix&.base, prefix_power: prefix&.power, id: prefix&.id }
|
237
|
-
type_and_methods = { ASCII: :to_asciimath, unicode: :to_unicode,
|
237
|
+
type_and_methods = { ASCII: :to_asciimath, unicode: :to_unicode, LaTeX: :to_latex, HTML: :to_html }
|
238
238
|
prefix_attrs[:name] = Model::Prefixes::Name.new(content: prefix&.name)
|
239
239
|
prefix_attrs[:symbol] = type_and_methods.map do |type, method_name|
|
240
240
|
Model::Prefixes::Symbol.new(
|
data/lib/unitsml/version.rb
CHANGED
data/lib/unitsml.rb
CHANGED
@@ -36,3 +36,8 @@ Unitsdb::Config.models = {
|
|
36
36
|
dimension_quantity: Unitsml::Unitsdb::DimensionQuantity,
|
37
37
|
}
|
38
38
|
require "unitsdb"
|
39
|
+
|
40
|
+
DEFAULT_XML_ADAPTER = RUBY_ENGINE == "opal" ? :oga : :ox
|
41
|
+
Lutaml::Model::Config.xml_adapter_type = DEFAULT_XML_ADAPTER
|
42
|
+
# TODO: Remove Moxml adapter assignment when Lutaml::Model utilizes Moxml completely
|
43
|
+
Moxml::Config.default_adapter = DEFAULT_ADAPTER
|
data/unitsml.gemspec
CHANGED
@@ -1,34 +1,34 @@
|
|
1
1
|
require_relative 'lib/unitsml/version'
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
|
-
spec.name =
|
4
|
+
spec.name = 'unitsml'
|
5
5
|
spec.version = Unitsml::VERSION
|
6
|
-
spec.authors = [
|
7
|
-
spec.email = [
|
6
|
+
spec.authors = ['Ribose Inc.']
|
7
|
+
spec.email = ['open.source@ribose.com']
|
8
8
|
|
9
|
-
spec.summary =
|
10
|
-
spec.description =
|
9
|
+
spec.summary = 'UnitsML in Ruby'
|
10
|
+
spec.description = 'Library to work with UnitsML in Ruby'
|
11
11
|
|
12
|
-
spec.homepage =
|
13
|
-
spec.license =
|
12
|
+
spec.homepage = 'https://github.com/unitsml/unitsml-ruby'
|
13
|
+
spec.license = 'BSD-2-Clause'
|
14
14
|
|
15
|
-
spec.required_ruby_version = Gem::Requirement.new(
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
|
16
16
|
|
17
|
-
spec.metadata[
|
17
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
18
18
|
|
19
19
|
# Specify which files should be added to the gem when it is released.
|
20
20
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
21
|
-
spec.files
|
21
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
22
22
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
23
23
|
end
|
24
24
|
spec.files += Dir.glob('unitsdb/**/*')
|
25
25
|
|
26
|
-
spec.bindir =
|
26
|
+
spec.bindir = 'exe'
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
|
-
spec.require_paths = [
|
28
|
+
spec.require_paths = ['lib', 'unitsdb/**/*.yaml']
|
29
29
|
|
30
|
-
spec.add_dependency
|
31
|
-
spec.add_dependency
|
32
|
-
spec.add_dependency
|
33
|
-
spec.add_dependency
|
30
|
+
spec.add_dependency 'htmlentities'
|
31
|
+
spec.add_dependency 'mml'
|
32
|
+
spec.add_dependency 'parslet'
|
33
|
+
spec.add_dependency 'unitsdb'
|
34
34
|
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.
|
4
|
+
version: 0.4.5
|
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-
|
11
|
+
date: 2025-04-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
description:
|
69
|
+
description: Library to work with UnitsML in Ruby
|
70
70
|
email:
|
71
71
|
- open.source@ribose.com
|
72
72
|
executables: []
|
@@ -81,7 +81,7 @@ files:
|
|
81
81
|
- ".gitmodules"
|
82
82
|
- ".rspec"
|
83
83
|
- Gemfile
|
84
|
-
- LICENSE.
|
84
|
+
- LICENSE.md
|
85
85
|
- Rakefile
|
86
86
|
- bin/console
|
87
87
|
- bin/setup
|
@@ -163,5 +163,5 @@ requirements: []
|
|
163
163
|
rubygems_version: 3.5.22
|
164
164
|
signing_key:
|
165
165
|
specification_version: 4
|
166
|
-
summary:
|
166
|
+
summary: UnitsML in Ruby
|
167
167
|
test_files: []
|
data/LICENSE.txt
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
The MIT License (MIT)
|
2
|
-
|
3
|
-
Copyright (c) 2021 Тараскин Михаил
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
13
|
-
all copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
-
THE SOFTWARE.
|