ruby-units 2.4.1 → 4.0.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: cef2eee9d07cdfbb9761babe05cf20dcd2d64fcd8b1c72e1c82f0c7120f0aafe
4
- data.tar.gz: 3b7f5ecd1dff12af14de4f9c6eb5109a7a09f0fa3223f5880befbb99a556237b
3
+ metadata.gz: 572cf98377411ff41dd490f784564f3b50401a7342552a7999688ea0763eec5b
4
+ data.tar.gz: 735696cb4410be7d1d7a1d03fabaa4fa734a2dc6f5c4a8a37648dcd88a461168
5
5
  SHA512:
6
- metadata.gz: 44f63528e99535c8d5dd56ce7a2ca4f2a1fe800ace101495be272c5fa9e6c25b6abd3d1f35c695cf69ec848b333c8b9147f044e275122124bf08b1acee432bcb
7
- data.tar.gz: cb72ea094586f7750524527c605f151431b0c96d3d3350337eceed2f7fb29d30568f14f0c2f9ee2179b0f8ca638b1cfef580c8929c2551ff9085107bd6d7cd8f
6
+ metadata.gz: d0d994f5f9a10375fad35fa00905dc23ae5227e08157f10f27c85955e1d0df98500bb6d1174298b9f95f02a4f568a6d363af21204f6564e1c28f8b19c44a229f
7
+ data.tar.gz: 491e25dbb90dc0e7f5829b46c4973b178a49119ed3343fc6fe9931131d08525b0e8655079a6321bbbfef4f3624c0746dbbfde5b9dc866828fbe1a97d691b9569
@@ -42,7 +42,7 @@ jobs:
42
42
 
43
43
  # Initializes the CodeQL tools for scanning.
44
44
  - name: Initialize CodeQL
45
- uses: github/codeql-action/init@v1
45
+ uses: github/codeql-action/init@v2
46
46
  with:
47
47
  languages: ${{ matrix.language }}
48
48
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -53,7 +53,7 @@ jobs:
53
53
  # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54
54
  # If this step fails, then you should remove it and run the build manually (see below)
55
55
  - name: Autobuild
56
- uses: github/codeql-action/autobuild@v1
56
+ uses: github/codeql-action/autobuild@v2
57
57
 
58
58
  # ℹ️ Command-line programs to run using the OS shell.
59
59
  # 📚 https://git.io/JvXDl
@@ -67,4 +67,4 @@ jobs:
67
67
  # make release
68
68
 
69
69
  - name: Perform CodeQL Analysis
70
- uses: github/codeql-action/analyze@v1
70
+ uses: github/codeql-action/analyze@v2
@@ -15,7 +15,9 @@ jobs:
15
15
  strategy:
16
16
  fail-fast: false
17
17
  matrix:
18
- ruby: ['2.6', '2.7', '3.0', '3.1', 'jruby-9.3']
18
+ ruby: ['3.0', '3.1', '3.2', '3.3', 'jruby-9.4']
19
+ env:
20
+ BUNDLE_WITHOUT: optional
19
21
  steps:
20
22
  - uses: actions/checkout@v2
21
23
  - uses: ruby/setup-ruby@v1
data/.rubocop.yml CHANGED
@@ -18,6 +18,8 @@ Style/SingleLineBlockParams:
18
18
  Naming/FileName:
19
19
  Exclude:
20
20
  - 'lib/ruby-units.rb'
21
+ Naming/MethodParameterName:
22
+ Enabled: false
21
23
  Style/FormatString:
22
24
  Enabled: false
23
25
  Style/DateTime:
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.10
1
+ 3.0.6
data/.solargraph.yml CHANGED
@@ -9,8 +9,8 @@ exclude:
9
9
  require: []
10
10
  domains: []
11
11
  reporters:
12
- - rubocop
13
12
  - require_not_found
13
+ - typecheck
14
14
  require_paths: []
15
15
  plugins: []
16
16
  max_files: 5000
data/.tool-versions ADDED
@@ -0,0 +1,2 @@
1
+ java adoptopenjdk-18.0.1+10
2
+ ruby 3.0.6
data/CHANGELOG.txt CHANGED
@@ -1,6 +1,8 @@
1
1
  Change Log for Ruby-units
2
2
  =========================
3
- see Github releases (https://github.com/olbrich/ruby-units/releases)
3
+
4
+ see GitHub releases (https://github.com/olbrich/ruby-units/releases) for more recent releases. This file will no longer
5
+ be updated.
4
6
 
5
7
  2020-12-29 2.3.2 * Remove Jeweler (see #178) also adds Code of Conduct
6
8
  * Fix specs related to Complex comparisons (see #213)
data/Gemfile CHANGED
@@ -1,10 +1,25 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- group :development do
3
+ # These are gems that are only used for local development and don't need to be included at runtime or for running tests.
4
+ # The CI process will not install them.
5
+ group :optional do
4
6
  gem 'debug', '>= 1.0.0', platform: :mri
7
+ gem 'guard-rspec'
8
+ gem 'pry'
5
9
  gem 'redcarpet', platform: :mri # redcarpet doesn't support jruby
10
+ gem 'rubocop'
11
+ gem 'rubocop-rake'
12
+ gem 'rubocop-rspec'
6
13
  gem 'ruby-maven', platform: :jruby
7
14
  gem 'ruby-prof', platform: :mri
15
+ gem 'simplecov-html'
16
+ gem 'solargraph'
17
+ gem 'terminal-notifier'
18
+ gem 'terminal-notifier-guard'
19
+ gem 'webrick'
20
+ gem 'yard'
8
21
  end
9
22
 
23
+ gem 'simplecov'
24
+
10
25
  gemspec
data/Gemfile.lock CHANGED
@@ -1,25 +1,26 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-units (2.4.1)
4
+ ruby-units (4.0.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  ast (2.4.2)
10
10
  backport (1.2.0)
11
- benchmark (0.2.0)
11
+ base64 (0.1.1)
12
+ benchmark (0.2.1)
12
13
  coderay (1.1.3)
13
- debug (1.6.2)
14
- irb (>= 1.3.6)
14
+ debug (1.8.0)
15
+ irb (>= 1.5.0)
15
16
  reline (>= 0.3.1)
16
17
  diff-lcs (1.5.0)
17
18
  docile (1.4.0)
18
19
  e2mmap (0.1.0)
19
- ffi (1.15.5)
20
- ffi (1.15.5-java)
20
+ ffi (1.16.1)
21
+ ffi (1.16.1-java)
21
22
  formatador (1.1.0)
22
- guard (2.18.0)
23
+ guard (2.18.1)
23
24
  formatador (>= 0.2.4)
24
25
  listen (>= 2.7, < 4.0)
25
26
  lumberjack (>= 1.0.12, < 2.0)
@@ -33,130 +34,154 @@ GEM
33
34
  guard (~> 2.1)
34
35
  guard-compat (~> 1.1)
35
36
  rspec (>= 2.99.0, < 4.0)
36
- io-console (0.5.11)
37
- irb (1.4.1)
38
- reline (>= 0.3.0)
39
- jaro_winkler (1.5.4)
40
- jaro_winkler (1.5.4-java)
41
- json (2.6.2)
42
- json (2.6.2-java)
37
+ io-console (0.6.0)
38
+ io-console (0.6.0-java)
39
+ irb (1.8.1)
40
+ rdoc
41
+ reline (>= 0.3.8)
42
+ jar-dependencies (0.4.1)
43
+ jaro_winkler (1.5.6)
44
+ jaro_winkler (1.5.6-java)
45
+ json (2.6.3)
46
+ json (2.6.3-java)
43
47
  kramdown (2.4.0)
44
48
  rexml
45
49
  kramdown-parser-gfm (1.1.0)
46
50
  kramdown (~> 2.0)
47
- listen (3.7.1)
51
+ language_server-protocol (3.17.0.3)
52
+ listen (3.8.0)
48
53
  rb-fsevent (~> 0.10, >= 0.10.3)
49
54
  rb-inotify (~> 0.9, >= 0.9.10)
50
- lumberjack (1.2.8)
55
+ lumberjack (1.2.9)
51
56
  method_source (1.0.0)
52
- mini_portile2 (2.8.0)
53
57
  nenv (0.3.0)
54
- nokogiri (1.13.8)
55
- mini_portile2 (~> 2.8.0)
58
+ nokogiri (1.15.4-arm64-darwin)
56
59
  racc (~> 1.4)
57
- nokogiri (1.13.8-java)
60
+ nokogiri (1.15.4-java)
58
61
  racc (~> 1.4)
59
- nokogiri (1.13.8-x86_64-darwin)
62
+ nokogiri (1.15.4-x86_64-darwin)
63
+ racc (~> 1.4)
64
+ nokogiri (1.15.4-x86_64-linux)
60
65
  racc (~> 1.4)
61
66
  notiffany (0.1.3)
62
67
  nenv (~> 0.1)
63
68
  shellany (~> 0.0)
64
- parallel (1.22.1)
65
- parser (3.1.2.1)
69
+ parallel (1.23.0)
70
+ parser (3.2.2.3)
66
71
  ast (~> 2.4.1)
67
- pry (0.14.1)
72
+ racc
73
+ pry (0.14.2)
68
74
  coderay (~> 1.1)
69
75
  method_source (~> 1.0)
70
- pry (0.14.1-java)
76
+ pry (0.14.2-java)
71
77
  coderay (~> 1.1)
72
78
  method_source (~> 1.0)
73
79
  spoon (~> 0.0)
74
- racc (1.6.0)
75
- racc (1.6.0-java)
80
+ psych (5.1.0)
81
+ stringio
82
+ psych (5.1.0-java)
83
+ jar-dependencies (>= 0.1.7)
84
+ racc (1.7.1)
85
+ racc (1.7.1-java)
76
86
  rainbow (3.1.1)
77
87
  rake (13.0.6)
78
- rb-fsevent (0.11.1)
88
+ rb-fsevent (0.11.2)
79
89
  rb-inotify (0.10.1)
80
90
  ffi (~> 1.0)
81
- redcarpet (3.5.1)
82
- regexp_parser (2.5.0)
83
- reline (0.3.1)
91
+ rbs (2.8.4)
92
+ rdoc (6.5.0)
93
+ psych (>= 4.0.0)
94
+ redcarpet (3.6.0)
95
+ regexp_parser (2.8.1)
96
+ reline (0.3.8)
84
97
  io-console (~> 0.5)
85
98
  reverse_markdown (2.1.1)
86
99
  nokogiri
87
- rexml (3.2.5)
88
- rspec (3.11.0)
89
- rspec-core (~> 3.11.0)
90
- rspec-expectations (~> 3.11.0)
91
- rspec-mocks (~> 3.11.0)
92
- rspec-core (3.11.0)
93
- rspec-support (~> 3.11.0)
94
- rspec-expectations (3.11.0)
100
+ rexml (3.2.6)
101
+ rspec (3.12.0)
102
+ rspec-core (~> 3.12.0)
103
+ rspec-expectations (~> 3.12.0)
104
+ rspec-mocks (~> 3.12.0)
105
+ rspec-core (3.12.2)
106
+ rspec-support (~> 3.12.0)
107
+ rspec-expectations (3.12.3)
95
108
  diff-lcs (>= 1.2.0, < 2.0)
96
- rspec-support (~> 3.11.0)
97
- rspec-mocks (3.11.1)
109
+ rspec-support (~> 3.12.0)
110
+ rspec-mocks (3.12.6)
98
111
  diff-lcs (>= 1.2.0, < 2.0)
99
- rspec-support (~> 3.11.0)
100
- rspec-support (3.11.0)
101
- rubocop (1.35.1)
112
+ rspec-support (~> 3.12.0)
113
+ rspec-support (3.12.1)
114
+ rubocop (1.56.4)
115
+ base64 (~> 0.1.1)
102
116
  json (~> 2.3)
117
+ language_server-protocol (>= 3.17.0)
103
118
  parallel (~> 1.10)
104
- parser (>= 3.1.2.1)
119
+ parser (>= 3.2.2.3)
105
120
  rainbow (>= 2.2.2, < 4.0)
106
121
  regexp_parser (>= 1.8, < 3.0)
107
122
  rexml (>= 3.2.5, < 4.0)
108
- rubocop-ast (>= 1.20.1, < 2.0)
123
+ rubocop-ast (>= 1.28.1, < 2.0)
109
124
  ruby-progressbar (~> 1.7)
110
- unicode-display_width (>= 1.4.0, < 3.0)
111
- rubocop-ast (1.21.0)
112
- parser (>= 3.1.1.0)
125
+ unicode-display_width (>= 2.4.0, < 3.0)
126
+ rubocop-ast (1.29.0)
127
+ parser (>= 3.2.1.0)
128
+ rubocop-capybara (2.19.0)
129
+ rubocop (~> 1.41)
130
+ rubocop-factory_bot (2.24.0)
131
+ rubocop (~> 1.33)
113
132
  rubocop-rake (0.6.0)
114
133
  rubocop (~> 1.0)
115
- rubocop-rspec (2.12.1)
116
- rubocop (~> 1.31)
134
+ rubocop-rspec (2.24.1)
135
+ rubocop (~> 1.33)
136
+ rubocop-capybara (~> 2.17)
137
+ rubocop-factory_bot (~> 2.22)
117
138
  ruby-maven (3.3.13)
118
139
  ruby-maven-libs (~> 3.3.9)
119
140
  ruby-maven-libs (3.3.9)
120
- ruby-prof (1.4.3)
121
- ruby-progressbar (1.11.0)
141
+ ruby-prof (1.6.3)
142
+ ruby-progressbar (1.13.0)
122
143
  shellany (0.0.1)
123
- simplecov (0.21.2)
144
+ simplecov (0.22.0)
124
145
  docile (~> 1.1)
125
146
  simplecov-html (~> 0.11)
126
147
  simplecov_json_formatter (~> 0.1)
127
148
  simplecov-html (0.12.3)
128
149
  simplecov_json_formatter (0.1.4)
129
- solargraph (0.46.0)
150
+ solargraph (0.49.0)
130
151
  backport (~> 1.2)
131
152
  benchmark
132
- bundler (>= 1.17.2)
153
+ bundler (~> 2.0)
133
154
  diff-lcs (~> 1.4)
134
155
  e2mmap
135
156
  jaro_winkler (~> 1.5)
136
157
  kramdown (~> 2.3)
137
158
  kramdown-parser-gfm (~> 1.1)
138
159
  parser (~> 3.0)
139
- reverse_markdown (>= 1.0.5, < 3)
140
- rubocop (>= 0.52)
160
+ rbs (~> 2.0)
161
+ reverse_markdown (~> 2.0)
162
+ rubocop (~> 1.38)
141
163
  thor (~> 1.0)
142
164
  tilt (~> 2.0)
143
165
  yard (~> 0.9, >= 0.9.24)
144
166
  spoon (0.0.6)
145
167
  ffi
168
+ stringio (3.0.8)
146
169
  terminal-notifier (2.0.0)
147
170
  terminal-notifier-guard (1.7.0)
148
- thor (1.2.1)
149
- tilt (2.0.11)
150
- unicode-display_width (2.2.0)
151
- webrick (1.7.0)
152
- yard (0.9.28)
153
- webrick (~> 1.7.0)
171
+ thor (1.2.2)
172
+ tilt (2.3.0)
173
+ unicode-display_width (2.5.0)
174
+ webrick (1.8.1)
175
+ yard (0.9.34)
154
176
 
155
177
  PLATFORMS
178
+ arm64-darwin-21
179
+ arm64-darwin-22
156
180
  java
157
- ruby
158
181
  universal-java-11
182
+ universal-java-18
159
183
  x86_64-darwin-19
184
+ x86_64-linux
160
185
 
161
186
  DEPENDENCIES
162
187
  debug (>= 1.0.0)
@@ -180,4 +205,4 @@ DEPENDENCIES
180
205
  yard
181
206
 
182
207
  BUNDLED WITH
183
- 2.3.13
208
+ 2.4.19
data/README.md CHANGED
@@ -131,6 +131,8 @@ The `to_s` also accepts some options.
131
131
  ```ruby
132
132
  Unit.new('1.5 mm').to_s("%0.2f") # "1.50 mm". Enter any valid format
133
133
  # string. Also accepts strftime format
134
+ Unit.new('10 mm').to_s("%0.2f in")# "0.39 in". can also format and convert in
135
+ # the same time.
134
136
  Unit.new('1.5 mm').to_s("in") # converts to inches before printing
135
137
  Unit.new("2 m").to_s(:ft) # returns 6'7"
136
138
  Unit.new("100 kg").to_s(:lbs) # returns 220 lbs, 7 oz
@@ -1,9 +1,19 @@
1
- class Array
2
- # Construct a unit from an array
3
- # @example [1, 'mm'].to_unit => RubyUnits::Unit.new("1 mm")
4
- # @return (see RubyUnits::Unit#initialize)
5
- # @param [Object] other convert to same units as passed
6
- def to_unit(other = nil)
7
- other ? RubyUnits::Unit.new(self).convert_to(other) : RubyUnits::Unit.new(self)
1
+ module RubyUnits
2
+ # Extra methods for [::Array] to support conversion to [RubyUnits::Unit]
3
+ module Array
4
+ # Construct a unit from an array
5
+ #
6
+ # @example [1, 'mm'].to_unit => RubyUnits::Unit.new("1 mm")
7
+ # @param [RubyUnits::Unit, String] other convert to same units as passed
8
+ # @return [RubyUnits::Unit]
9
+ def to_unit(other = nil)
10
+ other ? RubyUnits::Unit.new(self).convert_to(other) : RubyUnits::Unit.new(self)
11
+ end
8
12
  end
9
13
  end
14
+
15
+ # @note Do this instead of Array.prepend(RubyUnits::Array) to avoid YARD warnings
16
+ # @see https://github.com/lsegal/yard/issues/1353
17
+ class Array
18
+ prepend(RubyUnits::Array)
19
+ end
@@ -1,21 +1,34 @@
1
1
  module RubyUnits
2
- class Unit < Numeric
3
- @@cached_units = {}
2
+ # Performance optimizations to avoid creating units unnecessarily
3
+ class Cache
4
+ attr_accessor :data
4
5
 
5
- class Cache
6
- def self.get(key = nil)
7
- key.nil? ? @@cached_units : @@cached_units[key]
8
- end
6
+ def initialize
7
+ clear
8
+ end
9
+
10
+ # @param key [String, #to_unit]
11
+ # @return [RubyUnits::Unit, nil]
12
+ def get(key)
13
+ key = key&.to_unit&.units unless key.is_a?(String)
14
+ data[key]
15
+ end
9
16
 
10
- def self.set(key, value)
11
- @@cached_units[key] = value
12
- end
17
+ # @param key [String, #to_unit]
18
+ # @return [void]
19
+ def set(key, value)
20
+ key = key.to_unit.units unless key.is_a?(String)
21
+ data[key] = value
22
+ end
23
+
24
+ # @return [Array<String>]
25
+ def keys
26
+ data.keys
27
+ end
13
28
 
14
- def self.clear
15
- @@cached_units = {}
16
- @@base_unit_cache = {}
17
- Unit.new(1)
18
- end
29
+ # Reset the cache
30
+ def clear
31
+ @data = {}
19
32
  end
20
33
  end
21
34
  end
@@ -1,10 +1,3 @@
1
- # allow for optional configuration of RubyUnits
2
- #
3
- # Usage:
4
- #
5
- # RubyUnits.configure do |config|
6
- # config.separator = false
7
- # end
8
1
  module RubyUnits
9
2
  class << self
10
3
  attr_writer :configuration
@@ -18,6 +11,13 @@ module RubyUnits
18
11
  @configuration = Configuration.new
19
12
  end
20
13
 
14
+ # allow for optional configuration of RubyUnits
15
+ #
16
+ # Usage:
17
+ #
18
+ # RubyUnits.configure do |config|
19
+ # config.separator = false
20
+ # end
21
21
  def self.configure
22
22
  yield configuration
23
23
  end
@@ -34,7 +34,7 @@ module RubyUnits
34
34
  end
35
35
 
36
36
  def separator=(value)
37
- raise ArgumentError, "configuration 'separator' may only be true or false" unless value == true || value == false
37
+ raise ArgumentError, "configuration 'separator' may only be true or false" unless [true, false].include?(value)
38
38
 
39
39
  @separator = value ? ' ' : nil
40
40
  end
@@ -1,64 +1,57 @@
1
1
  require 'date'
2
2
 
3
- # Allow date objects to do offsets by a time unit
4
- # Date.today + Unit.new("1 week") => gives today+1 week
5
- class Date
6
- alias unit_date_add +
7
- # @param [Object] other
8
- # @return [Unit]
9
- def +(other)
10
- case other
11
- when RubyUnits::Unit
12
- other = other.convert_to('d').round if %w[y decade century].include? other.units
13
- unit_date_add(other.convert_to('day').scalar)
14
- else
15
- unit_date_add(other)
3
+ module RubyUnits
4
+ # Extra methods for [::Date] to allow it to be used as a [RubyUnits::Unit]
5
+ module Date
6
+ # Allow date objects to do offsets by a time unit
7
+ #
8
+ # @example Date.today + Unit.new("1 week") => gives today+1 week
9
+ # @param [RubyUnits::Unit, Object] other
10
+ # @return [RubyUnits::Unit]
11
+ def +(other)
12
+ case other
13
+ when RubyUnits::Unit
14
+ other = other.convert_to('d').round if %w[y decade century].include? other.units
15
+ super(other.convert_to('day').scalar)
16
+ else
17
+ super
18
+ end
16
19
  end
17
- end
18
20
 
19
- alias unit_date_sub -
20
- # @param [Object] other
21
- # @return [Unit]
22
- def -(other)
23
- case other
24
- when RubyUnits::Unit
25
- other = other.convert_to('d').round if %w[y decade century].include? other.units
26
- unit_date_sub(other.convert_to('day').scalar)
27
- else
28
- unit_date_sub(other)
21
+ # Allow date objects to do offsets by a time unit
22
+ #
23
+ # @example Date.today - Unit.new("1 week") => gives today-1 week
24
+ # @param [RubyUnits::Unit, Object] other
25
+ # @return [RubyUnits::Unit]
26
+ def -(other)
27
+ case other
28
+ when RubyUnits::Unit
29
+ other = other.convert_to('d').round if %w[y decade century].include? other.units
30
+ super(other.convert_to('day').scalar)
31
+ else
32
+ super
33
+ end
29
34
  end
30
- end
31
35
 
32
- # Construct a unit from a Date
33
- # @example Date.today.to_unit => Unit
34
- # @return (see Unit#initialize)
35
- # @param [Object] other convert to same units as passed
36
- def to_unit(other = nil)
37
- other ? RubyUnits::Unit.new(self).convert_to(other) : RubyUnits::Unit.new(self)
38
- end
39
-
40
- # :nocov_19:
41
- unless Date.instance_methods.include?(:to_time)
42
- # @return [Time]
43
- def to_time
44
- Time.local(*ParseDate.parsedate(to_s))
36
+ # Construct a unit from a Date. This returns the number of days since the
37
+ # start of the Julian calendar as a Unit.
38
+ #
39
+ # @example Date.today.to_unit => Unit
40
+ # @return [RubyUnits::Unit]
41
+ # @param other [RubyUnits::Unit, String] convert to same units as passed
42
+ def to_unit(other = nil)
43
+ other ? RubyUnits::Unit.new(self).convert_to(other) : RubyUnits::Unit.new(self)
45
44
  end
46
- end
47
- # :nocov_19:
48
45
 
49
- alias units_datetime_inspect inspect
50
- # @deprecated
51
- def inspect(dump = false)
52
- return units_datetime_inspect if dump
53
- to_s
54
- end
55
-
56
- unless Date.instance_methods.include?(:to_date)
57
- # :nocov_19:
58
- # @return [Date]
59
- def to_date
60
- Date.civil(year, month, day)
46
+ # @deprecated
47
+ def inspect(dump = false)
48
+ dump ? super : to_s
61
49
  end
62
- # :nocov_19:
63
50
  end
64
51
  end
52
+
53
+ # @note Do this instead of Date.prepend(RubyUnits::Date) to avoid YARD warnings
54
+ # @see https://github.com/lsegal/yard/issues/1353
55
+ class Date
56
+ prepend RubyUnits::Date
57
+ end