comparison 0.1.0 → 0.1.99

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
- SHA1:
3
- metadata.gz: baea273a06f0a0abb98d762a042fa9839ffd1c0e
4
- data.tar.gz: 0b801fed057465fd098120a14e9cf931851c9198
2
+ SHA256:
3
+ metadata.gz: 3a1be3dfdb9956ab89e40615d7e019ac31cefb24596e236acb5a99c4e30ff15a
4
+ data.tar.gz: b8fce566958ce9801c2ccdab4adce9bbe9739e48b2fd92464763886702f918a6
5
5
  SHA512:
6
- metadata.gz: 6511bc82b1f7fde3f6c13f4d2ae1ad56622d08f3ec65a15a670c8fa370684996ea395d36455763f4894460ce8ca1920ff2f37ff7db4f473ef9305944e27fc3b7
7
- data.tar.gz: ccd9104172486a78800166080e0ba1268008b41bc36ae34524bc491f3576fc30562446110a48b05933b6cffbe051b33f431b47b6be7ba2b8e6dc45ffff950c4b
6
+ metadata.gz: 5a252e4fd07af9024f0972b5a42b5665fac54f1807cbd7f88affd2236bbd9448ad57ae79bc9c78ba31901c723015a0b50fae6ffd46cf78af0d2e8468c6d83ff0
7
+ data.tar.gz: f9d8b42bfed576f00e8bb200272b001f64a123f709603445e4a6fe165e7f6d4132f967308b3747cf5364c489d74b1b0647e18ebc1f1b78dd40282ec2ffd51f97
@@ -1,4 +1,4 @@
1
- Copyright 2016 John Parker
1
+ Copyright 2018 John Parker
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,17 +1,32 @@
1
+ # [![Gem Version](https://badge.fury.io/rb/comparison.svg)](https://badge.fury.io/rb/comparison) [![Build Status](https://travis-ci.org/jparker/comparison.svg?branch=master)](https://travis-ci.org/jparker/comparison)
2
+
1
3
  # Comparison
2
4
 
3
- I have often found myself implementing reporting features that compare two
4
- numbers to each other. For example, a report that compares the outcome for a
5
- quarter to the outcome of the same quarter in the prior year. Frequently I end
6
- up displaying both the raw difference between the two numbers, the percentage
7
- difference, and maybe a simple visual indicator such as an arrow (pointing up
8
- or down). Sometimes these comparisons require special handling for Infinity and
9
- NaN when one or both numbers are zero.
5
+ Comparison bundles up into Rails helpers the logic for rendering visually
6
+ informative comparisons of numbers. For example, say you were comparing the
7
+ sales figures from one quarter to the same quarter in a previous year. You
8
+ might want to show the percentage change, accompanied by an arrow or icon and
9
+ color-coded to indicate positive or negative growth. This plugin provides
10
+ helpers that abstract the logic of deciding what to show into a handful of
11
+ simple methods and leveraging I18n.
12
+
13
+ ## Upgrade Notes
14
+
15
+ This gem has been getting a facelift, and this has resulted in some changes
16
+ from the old behavior.
10
17
 
11
- I've tackled this task enough times and in enough applications that I felt it
12
- would simplify my life to extract and package the code for future re-use.
18
+ `Comparison::Presenter#classes` has been renamed to
19
+ `Comparison::Presenter#dom_classes`, and `Comparison::Presenter#css` has been
20
+ renamed to `Comparison::Presenter#style`. The old method names continue to
21
+ work, but they will emit deprecation warnings.
22
+
23
+ The I18n keys used by the above methods have been similarly renamed, but the
24
+ methods will continue to fall back on the old keys. Going forward, use
25
+ `comparison.dom_classes` instead of `comparison.classes` and `comparison.style`
26
+ instead of `comparison.css`.
13
27
 
14
28
  ## Usage
29
+
15
30
  The library has three components: the Comparison class for performing the
16
31
  actual math, the Presenter class for decorating the Comparison with
17
32
  view-friendly output, and a helper module for using the Presenter with the
@@ -53,6 +68,7 @@ change, an empty string).
53
68
 
54
69
 
55
70
  ## Configuration
71
+
56
72
  Comparison uses I18n to configure the output of some of the Presenter methods.
57
73
  Default implementations are provided where it makes sense. You can provide your
58
74
  own implementations by adding translations to your application.
@@ -60,11 +76,11 @@ own implementations by adding translations to your application.
60
76
  ```yml
61
77
  en:
62
78
  comparison:
63
- classes:
79
+ dom_classes:
64
80
  positive: 'comparison positive'
65
81
  negative: 'comparison negative'
66
82
  nochange: 'comparison nochange'
67
- css:
83
+ style:
68
84
  positive_html: 'color: #3c763d; background-color: #dff0d8;'
69
85
  negative_html: 'color: #a94442; background-color: #f2dede;'
70
86
  nochange_html: 'color: #777777;'
@@ -79,6 +95,7 @@ en:
79
95
  ```
80
96
 
81
97
  ## Installation
98
+
82
99
  Add this line to your application's Gemfile:
83
100
 
84
101
  ```ruby
@@ -96,9 +113,11 @@ $ gem install comparison
96
113
  ```
97
114
 
98
115
  ## Contributing
116
+
99
117
  Open an GitHub issue for problems and suggestions. This library is in its
100
118
  infancy, so use it at your own risk.
101
119
 
102
120
  ## License
121
+
103
122
  The gem is available as open source under the terms of the
104
123
  [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen-string-literal: true
2
+
1
3
  begin
2
4
  require 'bundler/setup'
3
5
  rescue LoadError
@@ -14,22 +16,19 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
16
  rdoc.rdoc_files.include('lib/**/*.rb')
15
17
  end
16
18
 
17
-
19
+ APP_RAKEFILE = File.expand_path('test/dummy/Rakefile', __dir__)
20
+ load 'rails/tasks/engine.rake'
18
21
 
19
22
  load 'rails/tasks/statistics.rake'
20
23
 
21
-
22
-
23
24
  require 'bundler/gem_tasks'
24
25
 
25
26
  require 'rake/testtask'
26
27
 
27
28
  Rake::TestTask.new(:test) do |t|
28
- t.libs << 'lib'
29
29
  t.libs << 'test'
30
30
  t.pattern = 'test/**/*_test.rb'
31
31
  t.verbose = false
32
32
  end
33
33
 
34
-
35
34
  task default: :test
@@ -1,13 +1,18 @@
1
+ # frozen-string-literal: true
2
+
1
3
  module Comparison
2
- module ApplicationHelper
4
+ module ApplicationHelper # :nodoc:
3
5
  ##
4
6
  # Returns a Presenter for a Comparator for +m+ and +n+.
5
7
  #
6
8
  # If a block is given, the Presenter is yielded to the block.
9
+ #
10
+ # rubocop:disable Naming/UncommunicativeMethodParamName
7
11
  def compare(m, n)
8
12
  comparison = Presenter.new Comparator.new m, n
9
13
  yield comparison if block_given?
10
14
  comparison
11
15
  end
16
+ # rubocop:enable Naming/UncommunicativeMethodParamName
12
17
  end
13
18
  end
@@ -4,14 +4,17 @@ en:
4
4
  # positive: 'comparison positive'
5
5
  # negative: 'comparison negative'
6
6
  # nochange: 'comparison nochange'
7
- css:
8
- positive_html: ''
9
- negative_html: ''
10
- nochange_html: ''
7
+
11
8
  # icons:
12
9
  # positive_html: '<span class="glyphicon glyphicon-arrow-up"></span>'
13
10
  # negative_html: '<span class="glyphicon glyphicon-arrow-down"></span>'
14
11
  # nochange_html: '<span class="glyphicon glyphicon-minus"></span>'
12
+
13
+ style:
14
+ positive_html: ''
15
+ negative_html: ''
16
+ nochange_html: ''
17
+
15
18
  arrows:
16
19
  positive_html: '&uarr;'
17
20
  negative_html: '&darr;'
@@ -1,6 +1,8 @@
1
+ # frozen-string-literal: true
2
+
1
3
  require 'comparison/engine'
2
4
  require 'comparison/comparator'
3
5
  require 'comparison/presenter'
4
6
 
5
- module Comparison
7
+ module Comparison # :nodoc:
6
8
  end
@@ -1,16 +1,26 @@
1
+ # frozen-string-literal: true
2
+
1
3
  require 'bigdecimal'
2
4
  require 'forwardable'
3
5
 
4
6
  module Comparison
7
+ ##
8
+ # The Comparator object compares two numbers to each other and exposes the
9
+ # raw and percentage differences.
5
10
  class Comparator
6
11
  extend Forwardable
7
12
 
8
13
  ##
9
14
  # Instantiates a new Comparator to compare two numbers, +m+ and +n+.
15
+ #
16
+ # Both numbers will be converted to instances of `BigDecimal`.
17
+ #
18
+ # rubocop:disable Naming/UncommunicativeMethodParamName
10
19
  def initialize(m, n)
11
20
  @m = m.to_d
12
21
  @n = n.to_d
13
22
  end
23
+ # rubocop:enable Naming/UncommunicativeMethodParamName
14
24
 
15
25
  attr_reader :m, :n
16
26
 
@@ -22,7 +32,7 @@ module Comparison
22
32
  @absolute ||= m - n
23
33
  end
24
34
 
25
- alias_method :difference, :absolute
35
+ alias difference absolute
26
36
 
27
37
  ##
28
38
  # Returns the percentage difference of +@m+ to +@n+.
@@ -34,6 +44,6 @@ module Comparison
34
44
  end
35
45
  end
36
46
 
37
- alias_method :percentage, :relative
47
+ alias percentage relative
38
48
  end
39
49
  end
@@ -1,9 +1,11 @@
1
+ # frozen-string-literal: true
2
+
1
3
  module Comparison
2
- class Engine < ::Rails::Engine
4
+ class Engine < ::Rails::Engine # :nodoc:
3
5
  isolate_namespace Comparison
4
6
 
5
7
  initializer 'comparison.view_helpers' do
6
- ActionView::Base.send :include, ApplicationHelper
8
+ ActionView::Base.send :include, helpers
7
9
  end
8
10
  end
9
11
  end
@@ -1,19 +1,20 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  require 'delegate'
4
- require 'forwardable'
5
4
 
6
5
  module Comparison
6
+ ##
7
+ # The Presenter object wraps a Comparator with methods that return
8
+ # view-friendly output.
7
9
  class Presenter < DelegateClass(Comparator)
8
- extend Forwardable
9
10
  include ActionView::Helpers::TranslationHelper
10
11
 
11
- ARROWS = { up: '&uarr;', down: '&darr;', none: '' }
12
+ ARROWS = { up: '&uarr;', down: '&darr;', none: '' }.freeze
12
13
 
13
14
  # TODO: This shouldn't necessarily return a currency representation.
14
15
 
15
16
  ##
16
- # Returns `Comparator#absolute` presented as currency.
17
+ # Returns Comparator#absolute presented as currency.
17
18
  def difference(**options)
18
19
  if positive?
19
20
  number_to_currency absolute, format: '+%u%n', **options
@@ -23,33 +24,26 @@ module Comparison
23
24
  end
24
25
 
25
26
  ##
26
- # Returns `Comparator#relative` formatted as a percentage.
27
+ # Returns Comparator#relative formatted as a percentage.
27
28
  #
28
29
  # If the relative percentage evaluates to Infinity or -Infinity, +nil+ is
29
30
  # returned. If it evaluates to NaN, 0 is returned.
30
- def percentage(delimiter: ',', precision: 0, **options)
31
- case
32
- when nan? || zero?
33
- number_to_percentage 0, precision: precision, **options
34
- when infinite?
31
+ def percentage(**options)
32
+ if nan? || zero?
33
+ number_to_percentage 0, **options
34
+ elsif infinite?
35
35
  # TODO: Return nil, or lookup an optional representation in I18n?
36
36
  nil
37
- when positive?
38
- number_to_percentage relative, delimiter: delimiter,
39
- precision: precision, format: '+%n%', **options
37
+ elsif positive?
38
+ number_to_percentage relative, format: '+%n%', **options
40
39
  else
41
- number_to_percentage relative, delimiter: delimiter,
42
- precision: precision, **options
40
+ number_to_percentage relative, **options
43
41
  end
44
42
  end
45
43
 
46
- alias_method :change, :percentage
47
- deprecate :change
48
-
49
- delegate %i[number_to_currency number_to_percentage] => :'ActiveSupport::NumberHelper'
50
-
44
+ # rubocop:disable Metrics/LineLength
51
45
  ##
52
- # Returns the I18n translation for `comparison.icons`. (See also `#arrow`.)
46
+ # Returns the I18n translation for `comparison.icons`. (See also #arrow.)
53
47
  #
54
48
  # This method is intended to display a graphical representation of the
55
49
  # comparison. Typically this would be an arrow pointing up or down.
@@ -61,17 +55,18 @@ module Comparison
61
55
  # with Bootstrap, you could add the following translations to your
62
56
  # application:
63
57
  #
64
- # en:
65
- # comparison:
66
- # icons:
67
- # positive_html: '<span class="glyphicon glyphicon-arrow-up"></span>'
68
- # negative_html: '<span class="glyphicon glyphicon-arrow-down"></span>'
69
- # nochange_html: '<span class="glyphicon glyphicon-minus"></span>'
58
+ # en:
59
+ # comparison:
60
+ # icons:
61
+ # positive_html: '<span class="glyphicon glyphicon-arrow-up"></span>'
62
+ # negative_html: '<span class="glyphicon glyphicon-arrow-down"></span>'
63
+ # nochange_html: '<span class="glyphicon glyphicon-minus"></span>'
64
+ #
65
+ # rubocop:enable Metrics/LineLength
70
66
  def icon
71
- case
72
- when positive?
67
+ if positive?
73
68
  t 'comparison.icons.positive_html'
74
- when negative?
69
+ elsif negative?
75
70
  t 'comparison.icons.negative_html'
76
71
  else
77
72
  t 'comparison.icons.nochange_html'
@@ -79,40 +74,39 @@ module Comparison
79
74
  end
80
75
 
81
76
  ##
82
- # Returns the I18n translation for `comparison.icons`. (See also `#icon`.)
77
+ # Returns the I18n translation for `comparison.icons`. (See also #icon.)
83
78
  #
84
79
  # This method is intended to display a graphical representation of the
85
80
  # comparison. Typically this would be an arrow pointing up or down.
86
81
  #
87
82
  # The default implementation is as follows:
88
83
  #
89
- # en:
90
- # comparison:
91
- # arrows:
92
- # positive_html: '&uarr;'
93
- # negative_html: '&darr;'
94
- # nochange_html: ''
84
+ # en:
85
+ # comparison:
86
+ # arrows:
87
+ # positive_html: '&uarr;'
88
+ # negative_html: '&darr;'
89
+ # nochange_html: ''
95
90
  #
96
91
  # For example, to generate up and down arrows using Glyphicons included
97
92
  # with Bootstrap, you could add the following translations to your
98
93
  # application:
99
94
  #
100
- # `#arrows` and its sister method `#icon` perform roughly identical tasks
101
- # with roughly identical intentions. The difference between the two methods
102
- # is in the context in which they are intended to be used.
95
+ # #arrows and its sister method #icon perform roughly identical tasks with
96
+ # roughly identical intentions. The difference between the two methods is
97
+ # in the context in which they are intended to be used.
103
98
  #
104
- # `#arrows` is meant to be used from view contexts with limited
105
- # functionality such as an HTML email. As such, the translations you
106
- # specify should be simple enough, like HTML character entities, to work
107
- # within said view context.
99
+ # #arrows is meant to be used from view contexts with limited functionality
100
+ # such as an HTML email. As such, the translations you specify should be
101
+ # simple enough, like HTML character entities, to work within said view
102
+ # context.
108
103
  #
109
- # `#icons` is meant to be used from full-featured view contexts. As such,
110
- # `#icons` is the one to use to generate HTML tags.
104
+ # #icons is meant to be used from full-featured view contexts. As such,
105
+ # #icons is the one to use to generate HTML tags.
111
106
  def arrow
112
- case
113
- when positive?
107
+ if positive?
114
108
  t 'comparison.arrows.positive_html', default: ARROWS[:up]
115
- when negative?
109
+ elsif negative?
116
110
  t 'comparison.arrows.negative_html', default: ARROWS[:down]
117
111
  else
118
112
  t 'comparison.arrows.nochange_html', default: ARROWS[:none]
@@ -120,72 +114,106 @@ module Comparison
120
114
  end
121
115
 
122
116
  ##
123
- # Returns the I18n translation for `comparison.classes`. (See also `#css`.)
117
+ # Returns the I18n translation for `comparison.dom_classes`.
124
118
  #
125
119
  # Use these translations to specify CSS classes for tags that contain
126
120
  # comparison data. For example:
127
121
  #
128
- # en:
129
- # comparison:
130
- # classes:
131
- # positive: 'comparison positive'
132
- # negative: 'comparison negative'
133
- # nochange: 'comparison nochange'
134
- #
135
- # .comparison.positive {
136
- # color: #3c763d;
137
- # background-color: #dff0d8;
138
- # }
139
- # .comparison.negative {
140
- # color: #a94442;
141
- # background-color: #f2dede;
142
- # }
143
- # .comparison.nochange {
144
- # color: #777777;
145
- # }
146
- #
147
- # content_tag cmp.difference, class: cmp.classes
148
- def classes
149
- case
150
- when positive?
151
- t 'comparison.classes.positive'
152
- when negative?
153
- t 'comparison.classes.negative'
122
+ # en:
123
+ # comparison:
124
+ # dom_classes:
125
+ # positive: 'comparison positive'
126
+ # negative: 'comparison negative'
127
+ # nochange: 'comparison nochange'
128
+ #
129
+ # .comparison.positive {
130
+ # color: #3c763d;
131
+ # background-color: #dff0d8;
132
+ # }
133
+ # .comparison.negative {
134
+ # color: #a94442;
135
+ # background-color: #f2dede;
136
+ # }
137
+ # .comparison.nochange {
138
+ # color: #777777;
139
+ # }
140
+ #
141
+ # content_tag :span, cmp.difference, class: cmp.dom_classes
142
+ # # => "<span class=\"comparison positive\">+10%</span>"
143
+ #
144
+ # If you need to work with inline styles instead of CSS classes, see the
145
+ # `#style` method.
146
+ def dom_classes
147
+ if positive?
148
+ t 'comparison.dom_classes.positive',
149
+ default: %i[comparison.classes.positive]
150
+ elsif negative?
151
+ t 'comparison.dom_classes.negative',
152
+ default: %i[comparison.classes.negative]
154
153
  else
155
- t 'comparison.classes.nochange'
154
+ t 'comparison.dom_classes.nochange',
155
+ default: %i[comparison.classes.nochange]
156
156
  end
157
157
  end
158
158
 
159
+ def classes
160
+ Kernel.warn '[DEPRECATION WARNING] #classes is deprecated: ' \
161
+ "use #dom_classes instead: #{caller(3..3).first}"
162
+ dom_classes
163
+ end
164
+
165
+ # rubocop:disable Metrics/LineLength
159
166
  ##
160
- # Returns the I18n translation for `comparison.css`. (See also `#classes`.)
167
+ # Returns the I18n translation for `comparison.style`.
161
168
  #
162
- # Use these translations to specify raw CSS style rules to be used when
169
+ # Use these translations to specify inline CSS style rules to be used when
163
170
  # formatting comparison data. For example:
164
171
  #
165
- # en:
166
- # comparison:
167
- # css:
168
- # positive: 'color: #3c763d; background-color: #dff0d8;'
169
- # negative: 'color: #a94442; background-color: #f2dede;'
170
- # nochange: 'color: #777777;'
172
+ # en:
173
+ # comparison:
174
+ # style:
175
+ # positive: 'color: #3c763d; background-color: #dff0d8;'
176
+ # negative: 'color: #a94442; background-color: #f2dede;'
177
+ # nochange: 'color: #777777;'
171
178
  #
172
- # content_tag cmp.difference, style: cmp.css
179
+ # content_tag :span, cmp.difference, style: cmp.style
180
+ # # => "<span style=\"color: #3c763d; background-color: #dff0d8;\">+10%</span>"
173
181
  #
174
- # `#css` and its sister method `#classes` perform very similar tasks. Use
175
- # `#css` when you need to embed the CSS style rules in an HTML tag using
176
- # the style attribute. Use `#classes` when you want have the CSS style
177
- # rules defined in a class and want to add that class to the HTML tag.
178
- def css
179
- case
180
- when positive?
181
- t 'comparison.css.positive', default: ''
182
- when negative?
183
- t 'comparison.css.negative', default: ''
182
+ # In general, it's probably preferable to use `#dom_classes` in conjunction
183
+ # with CSS style rules defined separate CSS files, but this isn't always
184
+ # possible.
185
+ #
186
+ # rubocop:enable Metrics/LineLength
187
+ def style
188
+ if positive?
189
+ t 'comparison.style.positive',
190
+ default: [:'comparison.css.positive', '']
191
+ elsif negative?
192
+ t 'comparison.style.negative',
193
+ default: [:'comparison.css.negative', '']
184
194
  else
185
- t 'comparison.css.nochange', default: ''
195
+ t 'comparison.style.nochange',
196
+ default: [:'comparison.css.nochange', '']
186
197
  end
187
198
  end
188
199
 
189
- alias_method :style, :css
200
+ def css
201
+ Kernel.warn '[DEPRECATION WARNING] #css is deprecated: ' \
202
+ "use #style instead: #{caller(3..3).first}"
203
+ style
204
+ end
205
+
206
+ private
207
+
208
+ def number_to_percentage(value, delimiter: ',', precision: 0, **options)
209
+ ActiveSupport::NumberHelper.number_to_percentage value,
210
+ delimiter: delimiter,
211
+ precision: precision,
212
+ **options
213
+ end
214
+
215
+ def number_to_currency(*args)
216
+ ActiveSupport::NumberHelper.number_to_currency(*args)
217
+ end
190
218
  end
191
219
  end
@@ -1,3 +1,5 @@
1
+ # frozen-string-literal: true
2
+
1
3
  module Comparison
2
- VERSION = '0.1.0'
4
+ VERSION = '0.1.99'
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comparison
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.99
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Parker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-28 00:00:00.000000000 Z
11
+ date: 2018-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -45,7 +45,21 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  - !ruby/object:Gem::Dependency
48
- name: pry-rails
48
+ name: pry
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rubocop
49
63
  requirement: !ruby/object:Gem::Requirement
50
64
  requirements:
51
65
  - - ">="
@@ -75,7 +89,6 @@ files:
75
89
  - lib/comparison/engine.rb
76
90
  - lib/comparison/presenter.rb
77
91
  - lib/comparison/version.rb
78
- - lib/tasks/comparison_tasks.rake
79
92
  homepage: https://github.com/jparker/comparison
80
93
  licenses:
81
94
  - MIT
@@ -88,7 +101,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
101
  requirements:
89
102
  - - ">="
90
103
  - !ruby/object:Gem::Version
91
- version: '0'
104
+ version: '2.3'
92
105
  required_rubygems_version: !ruby/object:Gem::Requirement
93
106
  requirements:
94
107
  - - ">="
@@ -96,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
109
  version: '0'
97
110
  requirements: []
98
111
  rubyforge_project:
99
- rubygems_version: 2.6.6
112
+ rubygems_version: 2.7.7
100
113
  signing_key:
101
114
  specification_version: 4
102
115
  summary: Helpers for displaying details of comparing two numbers.
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :comparison do
3
- # # Task goes here
4
- # end