lazier 4.1.0 → 4.2.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 +4 -4
- data/.travis-gemfile +2 -2
- data/CHANGELOG.md +4 -0
- data/Gemfile +6 -6
- data/README.md +1 -1
- data/doc/Lazier.html +185 -70
- data/doc/Lazier/Boolean.html +5 -5
- data/doc/Lazier/Configuration.html +78 -16
- data/doc/Lazier/DateTime.html +13 -12
- data/doc/Lazier/DateTime/ClassMethods.html +6 -6
- data/doc/Lazier/Exceptions.html +3 -3
- data/doc/Lazier/Exceptions/Debug.html +3 -3
- data/doc/Lazier/Exceptions/MissingTranslation.html +9 -9
- data/doc/Lazier/Exceptions/TranslationExceptionHandler.html +73 -9
- data/doc/Lazier/Hash.html +7 -7
- data/doc/Lazier/I18n.html +41 -41
- data/doc/Lazier/Math.html +4 -4
- data/doc/Lazier/Math/ClassMethods.html +7 -7
- data/doc/Lazier/Object.html +29 -26
- data/doc/Lazier/Pathname.html +11 -12
- data/doc/Lazier/Settings.html +63 -63
- data/doc/Lazier/String.html +122 -21
- data/doc/Lazier/TimeZone.html +128 -32
- data/doc/Lazier/TimeZone/ClassMethods.html +5 -5
- data/doc/Lazier/Version.html +4 -4
- data/doc/_index.html +4 -4
- data/doc/class_list.html +5 -1
- data/doc/file.README.html +4 -4
- data/doc/file_list.html +5 -1
- data/doc/frames.html +1 -1
- data/doc/index.html +4 -4
- data/doc/js/full_list.js +4 -1
- data/doc/method_list.html +91 -81
- data/doc/top-level-namespace.html +3 -3
- data/lib/lazier.rb +18 -17
- data/lib/lazier/boolean.rb +1 -1
- data/lib/lazier/configuration.rb +6 -6
- data/lib/lazier/datetime.rb +11 -11
- data/lib/lazier/exceptions.rb +7 -2
- data/lib/lazier/hash.rb +4 -4
- data/lib/lazier/i18n.rb +7 -7
- data/lib/lazier/math.rb +3 -3
- data/lib/lazier/object.rb +17 -15
- data/lib/lazier/pathname.rb +3 -5
- data/lib/lazier/settings.rb +10 -10
- data/lib/lazier/string.rb +10 -1
- data/lib/lazier/timezone.rb +23 -25
- data/lib/lazier/version.rb +1 -1
- data/spec/lazier/string_spec.rb +14 -0
- data/spec/spec_helper.rb +1 -8
- metadata +2 -2
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.8.7.
|
9
|
+
— Documentation by YARD 0.8.7.6
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -103,9 +103,9 @@
|
|
103
103
|
</div>
|
104
104
|
|
105
105
|
<div id="footer">
|
106
|
-
Generated on
|
106
|
+
Generated on Sun Nov 2 11:08:44 2014 by
|
107
107
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
108
|
-
0.8.7.
|
108
|
+
0.8.7.6 (ruby-2.1.3).
|
109
109
|
</div>
|
110
110
|
|
111
111
|
</body>
|
data/lib/lazier.rb
CHANGED
@@ -3,6 +3,8 @@
|
|
3
3
|
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
4
4
|
#
|
5
5
|
|
6
|
+
# PI: Ignore flog on this file.
|
7
|
+
|
6
8
|
require(RUBY_ENGINE != "jruby" ? "oj" : "json")
|
7
9
|
require "English"
|
8
10
|
require "tzinfo"
|
@@ -43,15 +45,14 @@ module Lazier
|
|
43
45
|
# Loads the extensions.
|
44
46
|
#
|
45
47
|
# @param what [Array] The modules to load. Valid values are:
|
46
|
-
#
|
47
|
-
#
|
48
|
-
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
54
|
-
# @option pathname Extensions for path objects.
|
48
|
+
# @option object Extensions for all objects.
|
49
|
+
# @option boolean Extensions for boolean values.
|
50
|
+
# @option string Extensions for strings.
|
51
|
+
# @option hash Extensions for hashs.
|
52
|
+
# @option hash_method_access Extensions for hash to allow method access. Not included by default.
|
53
|
+
# @option datetime Extensions date and time objects.
|
54
|
+
# @option math Extensions for Math module.
|
55
|
+
# @option pathname Extensions for path objects.
|
55
56
|
# @return [Settings] The settings for the extensions.
|
56
57
|
def self.load!(*what)
|
57
58
|
valid_modules = [:object, :boolean, :string, :hash, :datetime, :math, :pathname]
|
@@ -62,13 +63,13 @@ module Lazier
|
|
62
63
|
::Lazier::Settings.instance
|
63
64
|
end
|
64
65
|
|
65
|
-
# Loads Object extensions.
|
66
|
+
# Loads `Object` extensions.
|
66
67
|
def self.load_object
|
67
68
|
Lazier.load_boolean
|
68
69
|
perform_load(:object, ::Object, ::Lazier::Object)
|
69
70
|
end
|
70
71
|
|
71
|
-
# Loads Boolean extensions.
|
72
|
+
# Loads `Boolean` extensions.
|
72
73
|
def self.load_boolean
|
73
74
|
perform_load(:boolean) do
|
74
75
|
[::TrueClass, ::FalseClass].each do |klass|
|
@@ -80,12 +81,12 @@ module Lazier
|
|
80
81
|
end
|
81
82
|
end
|
82
83
|
|
83
|
-
# Loads String extensions.
|
84
|
+
# Loads `String` extensions.
|
84
85
|
def self.load_string
|
85
86
|
perform_load(:string, ::String, ::Lazier::String)
|
86
87
|
end
|
87
88
|
|
88
|
-
# Loads Hash extensions.
|
89
|
+
# Loads `Hash` extensions.
|
89
90
|
def self.load_hash
|
90
91
|
Lazier.load_object
|
91
92
|
|
@@ -95,7 +96,7 @@ module Lazier
|
|
95
96
|
end
|
96
97
|
end
|
97
98
|
|
98
|
-
# Loads DateTime extensions.
|
99
|
+
# Loads `DateTime` extensions.
|
99
100
|
def self.load_datetime
|
100
101
|
Lazier.load_object
|
101
102
|
|
@@ -108,13 +109,13 @@ module Lazier
|
|
108
109
|
end
|
109
110
|
end
|
110
111
|
|
111
|
-
# Loads Math extensions.
|
112
|
+
# Loads `Math` extensions.
|
112
113
|
def self.load_math
|
113
114
|
Lazier.load_object
|
114
115
|
perform_load(:math, ::Math, ::Lazier::Math)
|
115
116
|
end
|
116
117
|
|
117
|
-
# Loads Pathname extensions.
|
118
|
+
# Loads `Pathname` extensions.
|
118
119
|
def self.load_pathname
|
119
120
|
perform_load(:pathname, ::Pathname, ::Lazier::Pathname)
|
120
121
|
end
|
@@ -153,7 +154,7 @@ module Lazier
|
|
153
154
|
# Measure the time in milliseconds required to execute the given block.
|
154
155
|
#
|
155
156
|
# @param message [String|NilClass] An optional message (see return value).
|
156
|
-
# @param precision [Fixnum] The precision for the message (see return value)
|
157
|
+
# @param precision [Fixnum] The precision for the message (see return value).
|
157
158
|
# @param block [Proc] The block to evaluate.
|
158
159
|
# @return [Float|String] If a `message` is provided, then the message itself plus the duration under parenthesis will be returned,
|
159
160
|
# otherwise the duration alone as a number.
|
data/lib/lazier/boolean.rb
CHANGED
data/lib/lazier/configuration.rb
CHANGED
@@ -7,22 +7,22 @@ module Lazier
|
|
7
7
|
# A configuration class to set properties.
|
8
8
|
class Configuration < Hashie::Dash
|
9
9
|
# Initializes a new configuration object.
|
10
|
+
# @see Hash#initialize
|
10
11
|
#
|
11
12
|
# @param attributes [Hash] The initial values of properties of this configuration.
|
13
|
+
# @param block [Proc] A block to use for default values.
|
12
14
|
def initialize(attributes = {}, &block)
|
13
15
|
@i18n = Lazier::I18n.instance
|
14
16
|
super(attributes, &block)
|
15
17
|
end
|
16
18
|
|
17
19
|
# Defines a property on the configuration.
|
18
|
-
|
19
|
-
#
|
20
|
-
# * :default - Specify a default value for this property.
|
21
|
-
# * :required - Specify the value as required for this property, to raise an error if a value is unset in a new or existing configuration.
|
22
|
-
# * :readonly - Specify if the property is readonly, which means that it can only defined during creation of the configuration.
|
23
|
-
#
|
20
|
+
|
24
21
|
# @param name [String|Symbol] The new property name.
|
25
22
|
# @param options [Hash] The options for the property.
|
23
|
+
# @option options [Boolean] :default Specify a default value for this property.
|
24
|
+
# @option options [Boolean] :required Specify the value as required for this property, to raise an error if a value is unset in a new or existing configuration.
|
25
|
+
# @option options [Boolean] :readonly Specify if the property is readonly, which means that it can only defined during creation of the configuration.
|
26
26
|
def self.property(name, options = {})
|
27
27
|
super(name, options)
|
28
28
|
|
data/lib/lazier/datetime.rb
CHANGED
@@ -47,8 +47,8 @@ module Lazier
|
|
47
47
|
#
|
48
48
|
# @param offset [Fixnum] The width of the range.
|
49
49
|
# @param also_future [Boolean] If return also future years.
|
50
|
-
# @param reference [Fixnum] The ending (or middle, if `also_future` is `true`) value of the range. Defaults to the current year.
|
51
|
-
# @param as_objects [Boolean]
|
50
|
+
# @param reference [Fixnum|NilClass] The ending (or middle, if `also_future` is `true`) value of the range. Defaults to the current year.
|
51
|
+
# @param as_objects [Boolean] Whether to return years in hashes with `:value` and `label` keys.
|
52
52
|
# @return [Array] A range of years. Every entry is
|
53
53
|
def years(offset: 10, also_future: true, reference: nil, as_objects: false)
|
54
54
|
y = reference || ::Date.today.year
|
@@ -80,7 +80,7 @@ module Lazier
|
|
80
80
|
# Returns the Easter (according to Gregorian calendar) date for the year.
|
81
81
|
# @see http://en.wikipedia.org/wiki/Computus#Anonymous_Gregorian_algorithm
|
82
82
|
#
|
83
|
-
# @param year [Fixnum] The year to compute the date for. Defaults to the current year.
|
83
|
+
# @param year [Fixnum|NilClass] The year to compute the date for. Defaults to the current year.
|
84
84
|
# @return [Date] The Easter date for the year.
|
85
85
|
def easter(year = nil)
|
86
86
|
year = ::Date.today.year unless year.integer?
|
@@ -138,20 +138,20 @@ module Lazier
|
|
138
138
|
|
139
139
|
# Returns the number of months passed between the beginning of the base year and the current date.
|
140
140
|
#
|
141
|
-
#
|
142
|
-
# DateTime.civil(2013, 6, 1).in_months(2011)
|
143
|
-
# # => 18
|
144
|
-
# ```
|
141
|
+
# Example:
|
145
142
|
#
|
146
|
-
#
|
143
|
+
# DateTime.civil(2013, 6, 1).in_months(2011)
|
144
|
+
# # => 18
|
145
|
+
#
|
146
|
+
# @param base [DateTime|NilClass] The base year to start computation from. Default to current year.
|
147
147
|
# @return [Fixnum] Returns the number of months passed between the beginning of the base year and the current date.
|
148
148
|
def months_since_year(base = nil)
|
149
149
|
(year - (base || ::Date.today.year)) * 12 + month
|
150
150
|
end
|
151
151
|
|
152
|
-
# Returns the current month number with leading
|
152
|
+
# Returns the current month number with a leading zero if needed.
|
153
153
|
#
|
154
|
-
# @return [String] The current month number with leading
|
154
|
+
# @return [String] The current month number with leading zero if needed.
|
155
155
|
def padded_month
|
156
156
|
month.indexize
|
157
157
|
end
|
@@ -159,7 +159,7 @@ module Lazier
|
|
159
159
|
# Formats a datetime, eventually looking up also custom formats and/or moving to the current timezone.
|
160
160
|
# @see Settings#setup_date_formats
|
161
161
|
#
|
162
|
-
# @param format [String] A format or a custom format name to use for formatting.
|
162
|
+
# @param format [String|NilClass] A format or a custom format name to use for formatting.
|
163
163
|
# @param custom [Boolean] Whether to use custom formats.
|
164
164
|
# @param change_time_zone [Boolean] Whether to move the date to the current timezone.
|
165
165
|
# @return [String] The formatted date.
|
data/lib/lazier/exceptions.rb
CHANGED
@@ -12,7 +12,12 @@ module Lazier
|
|
12
12
|
|
13
13
|
# This is the handler for the core I18n gem.
|
14
14
|
class TranslationExceptionHandler < ::I18n::ExceptionHandler
|
15
|
-
#
|
15
|
+
# Implements the ExceptionHandler interface for I18n.
|
16
|
+
#
|
17
|
+
# @param exception [Exception] The error to raise.
|
18
|
+
# @param locale [String|Symbol] The locale that was requested.
|
19
|
+
# @param key [String|Symbol] The key that was requested.
|
20
|
+
# @param options [Hash] The options passed to the translation.
|
16
21
|
def call(exception, locale, key, options)
|
17
22
|
exception.is_a?(::I18n::MissingTranslation) ? raise(exception.to_exception) : super
|
18
23
|
end
|
@@ -23,7 +28,7 @@ module Lazier
|
|
23
28
|
# Creates a new missing translation exception.
|
24
29
|
#
|
25
30
|
# @param locale [Array] The locale that was requested to use.
|
26
|
-
# @param message [String] The message that was requested to translate.
|
31
|
+
# @param message [String|NilClass] The message that was requested to translate.
|
27
32
|
def initialize(locale, message = nil)
|
28
33
|
locale, message = locale if message.nil?
|
29
34
|
super("Unable to load the translation \"#{message}\" for the locale \"#{locale}\".")
|
data/lib/lazier/hash.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
module Lazier
|
7
|
-
# Extensions for Hash objects.
|
7
|
+
# Extensions for `Hash` objects.
|
8
8
|
module Hash
|
9
9
|
# The supported accesses for #ensure_access
|
10
10
|
VALID_ACCESSES = {
|
@@ -18,7 +18,7 @@ module Lazier
|
|
18
18
|
|
19
19
|
# Returns a new hash, removing all keys which values are blank.
|
20
20
|
#
|
21
|
-
# @param validator [Proc]
|
21
|
+
# @param validator [Proc] If present all the keys which evaluates to true will be removed. Otherwise all blank values will be removed.
|
22
22
|
# @return [Hash] The hash with all blank values removed.
|
23
23
|
def compact(&validator)
|
24
24
|
dup.compact!(&validator)
|
@@ -26,7 +26,7 @@ module Lazier
|
|
26
26
|
|
27
27
|
# Compacts the current hash, removing all keys which values are blank.
|
28
28
|
#
|
29
|
-
# @param validator [Proc]
|
29
|
+
# @param validator [Proc] If present all the keys which evaluates to true will be removed. Otherwise all blank values will be removed.
|
30
30
|
def compact!(&validator)
|
31
31
|
validator ||= ->(_, v) { v.blank? }
|
32
32
|
reject!(&validator)
|
@@ -34,7 +34,7 @@ module Lazier
|
|
34
34
|
|
35
35
|
# Makes sure that the keys of the hash are accessible in the desired way.
|
36
36
|
#
|
37
|
-
# @param accesses [Array] The requested access for the keys. Can be `:strings`, `:symbols` or `:indifferent`. If `nil` the keys are not modified.
|
37
|
+
# @param accesses [Array] The requested access for the keys. Can be `:dotted`, `:strings`, `:symbols` or `:indifferent`. If `nil` the keys are not modified.
|
38
38
|
# @return [Hash] The current hash with keys modified.
|
39
39
|
def ensure_access(*accesses)
|
40
40
|
methods = accesses.ensure_array(compact: true, no_duplicates: true, flatten: true) { |m| VALID_ACCESSES[m.ensure_string.to_sym] }.compact
|
data/lib/lazier/i18n.rb
CHANGED
@@ -23,10 +23,10 @@ module Lazier
|
|
23
23
|
|
24
24
|
# Returns the singleton instance of the settings.
|
25
25
|
#
|
26
|
-
# @param locale [Symbol] The locale to use for translations. Default is the current system locale.
|
26
|
+
# @param locale [Symbol|NilClass] The locale to use for translations. Default is the current system locale.
|
27
27
|
# @param root [Symbol] The root level of the translation.
|
28
|
-
# @param path [String] The path where the translations are stored.
|
29
|
-
# @param force [Boolean]
|
28
|
+
# @param path [String|NilClass] The path where the translations are stored.
|
29
|
+
# @param force [Boolean] Whether to force recreation of the instance.
|
30
30
|
# @return [I18n] The singleton instance of the i18n.
|
31
31
|
def self.instance(locale = nil, root: :lazier, path: nil, force: false)
|
32
32
|
@instance = nil if force
|
@@ -35,9 +35,9 @@ module Lazier
|
|
35
35
|
|
36
36
|
# Creates a new I18n object.
|
37
37
|
#
|
38
|
-
# @param locale [Symbol] The locale to use. Defaults to the current locale.
|
38
|
+
# @param locale [Symbol|NilClass] The locale to use. Defaults to the current locale.
|
39
39
|
# @param root [Symbol] The root level of the translation.
|
40
|
-
# @param path [String] The path where the translations are stored.
|
40
|
+
# @param path [String|NilClass] The path where the translations are stored.
|
41
41
|
def initialize(locale = nil, root: :lazier, path: nil)
|
42
42
|
Lazier.load_object
|
43
43
|
path ||= Lazier::ROOT + "/locales"
|
@@ -57,7 +57,7 @@ module Lazier
|
|
57
57
|
|
58
58
|
# Gets the list of available translation for a locale.
|
59
59
|
#
|
60
|
-
# @param locale [Symbol] The locale to list. Defaults to the current locale.
|
60
|
+
# @param locale [Symbol|NilClass] The locale to list. Defaults to the current locale.
|
61
61
|
# @return [Hash] The available translations for the specified locale.
|
62
62
|
def translations(locale = nil)
|
63
63
|
locale ||= @locale
|
@@ -98,8 +98,8 @@ module Lazier
|
|
98
98
|
|
99
99
|
# Localize a message in a specific locale.
|
100
100
|
#
|
101
|
-
# @param message [String|Symbol] The message to localize.
|
102
101
|
# @param locale [String|Symbol] The new locale to use for localization.
|
102
|
+
# @param message [String|Symbol] The message to localize.
|
103
103
|
# @param args [Array] Optional arguments to localize the message.
|
104
104
|
# @return [String] The localized message.
|
105
105
|
def translate_in_locale(locale, message, *args)
|
data/lib/lazier/math.rb
CHANGED
@@ -4,13 +4,13 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
module Lazier
|
7
|
-
# Utility methods for Math module.
|
7
|
+
# Utility methods for `Math` module.
|
8
8
|
module Math
|
9
9
|
extend ::ActiveSupport::Concern
|
10
10
|
|
11
11
|
# General methods.
|
12
12
|
module ClassMethods
|
13
|
-
# Returns the minimum value
|
13
|
+
# Returns the minimum value between the arguments.
|
14
14
|
#
|
15
15
|
# @param args [Array] A list of objects to compare (with the `<` operator).
|
16
16
|
# @return [Object] The minimum value or `nil` (if the list is empty).
|
@@ -18,7 +18,7 @@ module Lazier
|
|
18
18
|
args.ensure_array(default: [], no_duplicates: true, compact: true, flatten: true).min
|
19
19
|
end
|
20
20
|
|
21
|
-
# Returns the maximum value
|
21
|
+
# Returns the maximum value between the arguments.
|
22
22
|
#
|
23
23
|
# @param args [Array] A list of objects to compare (with the `>` operator).
|
24
24
|
# @return [Object] The maximum value or `nil` (if the list is empty).
|
data/lib/lazier/object.rb
CHANGED
@@ -93,10 +93,10 @@ module Lazier
|
|
93
93
|
# Makes sure that the object is an array. For non array objects, return a single element array containing the object.
|
94
94
|
#
|
95
95
|
# @param default [Array|NilClass] The default array to use. If not specified, an array containing the object is returned.
|
96
|
-
# @param no_duplicates [Boolean]
|
97
|
-
# @param compact [Boolean]
|
98
|
-
# @param flatten [Boolean]
|
99
|
-
# @param sanitizer [Symbol|
|
96
|
+
# @param no_duplicates [Boolean] Whether to remove duplicates from the array before sanitizing.
|
97
|
+
# @param compact [Boolean] Whether to compact the array before sanitizing.
|
98
|
+
# @param flatten [Boolean] Whether to flatten the array before sanitizing.
|
99
|
+
# @param sanitizer [Symbol|NilClass] If not `nil`, the method to use to sanitize entries of the array. *Ignored if a block is present.*
|
100
100
|
# @param block [Proc] A block to sanitize entries. It must accept the value as unique argument.
|
101
101
|
# @return [Array] If the object is an array, then the object itself, a single element array containing the object otherwise.
|
102
102
|
def ensure_array(default: nil, no_duplicates: false, compact: false, flatten: false, sanitizer: nil, &block)
|
@@ -119,7 +119,7 @@ module Lazier
|
|
119
119
|
# @param default [Hash|String|Symbol|NilClass] The default value to use. If it is an `Hash`, it is returned as value otherwise it is used to build
|
120
120
|
# as a key to build an hash with the current object as only value (everything but strings and symbols are mapped to `key`).
|
121
121
|
# Passing `nil` is equal to pass an empty Hash.
|
122
|
-
# @param sanitizer [Symbol|
|
122
|
+
# @param sanitizer [Symbol|NilClass] If not `nil`, the method to use to sanitize values of the hash. *Ignored if `block` is present.*
|
123
123
|
# @param block [Proc] A block to sanitize entries. It must accept the value as unique argument.
|
124
124
|
# @return [Hash] If the object is an hash, then the object itself, a hash with the object as single value otherwise.
|
125
125
|
def ensure_hash(accesses: nil, default: {}, sanitizer: nil, &block)
|
@@ -184,11 +184,11 @@ module Lazier
|
|
184
184
|
# Formats a number.
|
185
185
|
# @see Settings#setup_format_number
|
186
186
|
#
|
187
|
-
# @param precision [Fixnum] The precision to show.
|
188
|
-
# @param decimal_separator [String] The string to use as decimal separator.
|
189
|
-
# @param add_string [String] The string to append to the number.
|
190
|
-
# @param k_separator [String] The string to use as thousands separator.
|
191
|
-
# @return [String] The string representation of the object.
|
187
|
+
# @param precision [Fixnum|NilClass] The precision to show.
|
188
|
+
# @param decimal_separator [String|NilClass] The string to use as decimal separator.
|
189
|
+
# @param add_string [String|NilClass] The string to append to the number.
|
190
|
+
# @param k_separator [String|NilClass] The string to use as thousands separator.
|
191
|
+
# @return [String|NilClass] The string representation of the object or `nil`, if the object is not a number.
|
192
192
|
def format_number(precision: nil, decimal_separator: nil, add_string: nil, k_separator: nil)
|
193
193
|
if number?
|
194
194
|
settings = ::Lazier.settings.format_number
|
@@ -206,19 +206,21 @@ module Lazier
|
|
206
206
|
# Formats a boolean.
|
207
207
|
# @see Settings#setup_boolean_names
|
208
208
|
#
|
209
|
-
# @param true_name [String] The string representation of `true`. Defaults to `Yes`.
|
210
|
-
# @param false_name [String] The string representation of `false`. Defaults to `No`.
|
209
|
+
# @param true_name [String|NilClass] The string representation of `true`. Defaults to `Yes`.
|
210
|
+
# @param false_name [String|NilClass] The string representation of `false`. Defaults to `No`.
|
211
211
|
# @return [String] The string representation of the object.
|
212
212
|
def format_boolean(true_name: nil, false_name: nil)
|
213
213
|
settings = ::Lazier.settings.boolean_names
|
214
214
|
to_boolean ? (true_name || settings[true]) : (false_name || settings[false])
|
215
215
|
end
|
216
216
|
|
217
|
-
# Prepares an object to be printed in list summaries, like
|
217
|
+
# Prepares an object to be printed in list summaries, like
|
218
|
+
#
|
219
|
+
# [01/04] Opening this...
|
218
220
|
#
|
219
221
|
# @param length [Fixnum] The minimum length of the label.
|
220
|
-
# @param filler [String] The
|
221
|
-
# @param formatter [Symbol] The method to use to format the label. Must accept the `length` and the `filler arguments.
|
222
|
+
# @param filler [String] The character to use to fill the label.
|
223
|
+
# @param formatter [Symbol] The method to use to format the label. Must accept the `length` and the `filler` arguments.
|
222
224
|
# @return [String] The object inspected and formatted.
|
223
225
|
def indexize(length: 2, filler: "0", formatter: :rjust)
|
224
226
|
ensure_string.send(formatter, length, filler)
|
data/lib/lazier/pathname.rb
CHANGED
@@ -4,16 +4,14 @@
|
|
4
4
|
#
|
5
5
|
|
6
6
|
module Lazier
|
7
|
-
# Extensions for the Pathname class.
|
7
|
+
# Extensions for the `Pathname` class.
|
8
8
|
module Pathname
|
9
9
|
extend ::ActiveSupport::Concern
|
10
10
|
|
11
11
|
# Returns all the components that are included in this path.
|
12
12
|
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
# # => ["usr", "bin", "ruby"]
|
16
|
-
# ```
|
13
|
+
# Pathname.new("/usr/bin/ruby").components
|
14
|
+
# # => ["usr", "bin", "ruby"]
|
17
15
|
#
|
18
16
|
# @return [Array] A list of all components that are included in this path.
|
19
17
|
def components
|
data/lib/lazier/settings.rb
CHANGED
@@ -21,7 +21,7 @@ module Lazier
|
|
21
21
|
|
22
22
|
# Returns the singleton instance of the settings.
|
23
23
|
#
|
24
|
-
# @param force [Boolean]
|
24
|
+
# @param force [Boolean] Whether to force recreation of the instance.
|
25
25
|
# @return [Settings] The singleton instance of the settings.
|
26
26
|
def self.instance(force = false)
|
27
27
|
@instance = nil if force
|
@@ -60,8 +60,8 @@ module Lazier
|
|
60
60
|
# Setups strings representation of booleans.
|
61
61
|
# @see Object#format_boolean
|
62
62
|
#
|
63
|
-
# @param true_name [String] The string representation of `true`. Defaults to `Yes`.
|
64
|
-
# @param false_name [String] The string representation of `false`. Defaults to `No`.
|
63
|
+
# @param true_name [String|NilClass] The string representation of `true`. Defaults to `Yes`.
|
64
|
+
# @param false_name [String|NilClass] The string representation of `false`. Defaults to `No`.
|
65
65
|
# @return [Hash] The new representations.
|
66
66
|
def setup_boolean_names(true_name: nil, false_name: nil)
|
67
67
|
names = i18n.translate("boolean")
|
@@ -71,8 +71,8 @@ module Lazier
|
|
71
71
|
# Setups custom formats for dates and times.
|
72
72
|
# @see DateTime#lstrftime
|
73
73
|
#
|
74
|
-
# @param formats [Hash] The format to add or replace.
|
75
|
-
# @param replace [Boolean]
|
74
|
+
# @param formats [Hash|NilClass] The format to add or replace.
|
75
|
+
# @param replace [Boolean] Whether to discard current formats.
|
76
76
|
# @return [Hash] The new formats.
|
77
77
|
def setup_date_formats(formats = nil, replace = false)
|
78
78
|
@date_formats = HashWithIndifferentAccess.new if replace || !@date_formats
|
@@ -87,12 +87,12 @@ module Lazier
|
|
87
87
|
# Setups strings representation of days and months.
|
88
88
|
# @see DateTime::ClassMethods#days
|
89
89
|
# @see DateTime::ClassMethods#months
|
90
|
-
# @see DateTime#
|
90
|
+
# @see Lazier::DateTime#format
|
91
91
|
#
|
92
|
-
# @param long_months [Array] The string representation of months.
|
93
|
-
# @param short_months [Array] The abbreviated string representation of months.
|
94
|
-
# @param long_days [Array] The string representation of days.
|
95
|
-
# @param short_days [Array] The abbreviated string representation of days.
|
92
|
+
# @param long_months [Array|NilClass] The string representation of months.
|
93
|
+
# @param short_months [Array|NilClass] The abbreviated string representation of months.
|
94
|
+
# @param long_days [Array|NilClass] The string representation of days.
|
95
|
+
# @param short_days [Array|NilClass] The abbreviated string representation of days.
|
96
96
|
# @return [Hash] The new representations.
|
97
97
|
def setup_date_names(long_months: nil, short_months: nil, long_days: nil, short_days: nil)
|
98
98
|
definitions = prepare_definitions
|