lazier 4.1.0 → 4.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|