Class: SleepingKingStudios::Tools::IntegerTools
- Defined in:
- lib/sleeping_king_studios/tools/integer_tools.rb
Overview
Tools for working with integers.
Constant Summary collapse
- ROMANIZE_MIN =
Minimum integer value that can be converted to a roman numeral.
1- ROMANIZE_MAX =
Maximum integer value that can be converted to a roman numeral.
4999
Instance Method Summary collapse
-
#count_digits(integer, base: 10) ⇒ Integer
Returns the number of digits in the given integer and base.
-
#digits(integer, base: 10) ⇒ Array<String>
Decomposes the given integer into its digits in the given base.
-
#integer?(obj) ⇒ Boolean
Returns true if the object is an Integer.
-
#pluralize(count, single, plural = nil) ⇒ String
Returns the singular or the plural value, depending on the provided count.
-
#romanize(integer, additive: false) ⇒ String
Represents an integer between 1 and 4999 (inclusive) as a Roman numeral.
Methods inherited from Base
Instance Method Details
#count_digits(integer, base: 10) ⇒ Integer
Returns the number of digits in the given integer and base.
This method ignores minus sign for negative numbers. You can use the :base parameter to configure the numeric base for the string representation.
87 88 89 |
# File 'lib/sleeping_king_studios/tools/integer_tools.rb', line 87 def count_digits(integer, base: 10) digits(integer.abs, base:).count end |
#digits(integer, base: 10) ⇒ Array<String>
Decomposes the given integer into its digits in the given base.
111 112 113 |
# File 'lib/sleeping_king_studios/tools/integer_tools.rb', line 111 def digits(integer, base: 10) integer.to_s(base).chars end |
#integer?(obj) ⇒ Boolean
Returns true if the object is an Integer.
130 131 132 |
# File 'lib/sleeping_king_studios/tools/integer_tools.rb', line 130 def integer?(obj) obj.is_a?(Integer) end |
#pluralize(count, single, plural = nil) ⇒ String
Returns the singular or the plural value, depending on the provided count.
If the plural form is not given, passes the singular form to StringTools#pluralize.
152 153 154 155 156 |
# File 'lib/sleeping_king_studios/tools/integer_tools.rb', line 152 def pluralize(count, single, plural = nil) plural ||= StringTools.pluralize(single) count == 1 ? single : plural end |
#romanize(integer, additive: false) ⇒ String
Represents an integer between 1 and 4999 (inclusive) as a Roman numeral.
177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/sleeping_king_studios/tools/integer_tools.rb', line 177 def romanize(integer, additive: false) check_romanize_range(integer) digits(integer) .reverse .map .with_index do |digit, index| romanize_digit(additive:, digit: digit.to_i, tens: index) end .reverse .join end |