hanami-utils 1.3.5 → 1.3.6

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: c4939f478fe78b3060ebf7f744977332a2dea527f84bcd4ba809cf2fc6b9c02d
4
- data.tar.gz: 9b291ed5abecc39bd86da3605699b2770fa6f17f16d382802d3691ce4545bd42
3
+ metadata.gz: 0e6573938b28f1b4f3b8f46aebec53e487d0af4e85087a65d5e081c4fdc2f030
4
+ data.tar.gz: e2d13a7d2a675633a7b984882d7c01c5963b3933f1d9339b871ed20838b630c9
5
5
  SHA512:
6
- metadata.gz: 39cc6955396c483181fb2ee9aa520fc862fe9a8a8e40bbe248302bda58053f71009ebe143a9d403f27da12236aa6d3e607876c3a5d29b8de97b8b7cbb4fb6e3b
7
- data.tar.gz: b789c74a652f67bfa79c6dd349ee77d03af433850cd11e268abf3e1a9050da6bbab9227f48d1b6a61454f9e384662e0d7d8c400c7cf6c4734bf0430594d1a78a
6
+ metadata.gz: f8255168597fd310d075400c0a926b28f7bea6dd2025b1572d065e8df7e7ecfa76f991dc88afa1be37b3dfa57b06e70332015018e724ad7731184329a1cab559
7
+ data.tar.gz: 4ff3e862379db3b02d1fecace8336ed0f44df2b98c9588f807f46883b3b0e7a862beac8119da7428b07484802842b09aca509e1d01ee9dc25360438847d94f63
@@ -1,6 +1,13 @@
1
1
  # Hanami::Utils
2
2
  Ruby core extentions and class utilities for Hanami
3
3
 
4
+ ## v1.3.6 - 2020-01-07
5
+ ### Added
6
+ - [Luca Guidi] Official support for Ruby: MRI 2.7
7
+
8
+ ### Fixed
9
+ - [ippachi] `Utils::Files.append`: don't check breakline if file is empty
10
+
4
11
  ## v1.3.5 - 2019-10-25
5
12
  ### Fixed
6
13
  - [Ivan Kabluchkov] Ensure `Hanami::Logger` filters to not crash when logger stream is a closed tempfile
data/README.md CHANGED
@@ -5,7 +5,7 @@ Ruby core extensions and class utilities for [Hanami](http://hanamirb.org)
5
5
  ## Status
6
6
 
7
7
  [![Gem Version](https://badge.fury.io/rb/hanami-utils.svg)](https://badge.fury.io/rb/hanami-utils)
8
- [![TravisCI](https://travis-ci.org/hanami/utils.svg?branch=master)](https://travis-ci.org/hanami/utils)
8
+ [![Build Status](https://ci.hanamirb.org/api/badges/hanami/utils/status.svg)](https://ci.hanamirb.org/hanami/utils)
9
9
  [![CircleCI](https://circleci.com/gh/hanami/utils/tree/master.svg?style=svg)](https://circleci.com/gh/hanami/utils/tree/master)
10
10
  [![Test Coverage](https://codecov.io/gh/hanami/utils/branch/master/graph/badge.svg)](https://codecov.io/gh/hanami/utils)
11
11
  [![Depfu](https://badges.depfu.com/badges/a8545fb67cf32a2c75b6227bc0821027/overview.svg)](https://depfu.com/github/hanami/utils?project=Bundler)
@@ -40,7 +40,7 @@ module Hanami
40
40
  @success = true
41
41
  end
42
42
 
43
- # Check if the current status is successful
43
+ # Checks if the current status is successful
44
44
  #
45
45
  # @return [TrueClass,FalseClass] the result of the check
46
46
  #
@@ -52,7 +52,7 @@ module Hanami
52
52
  # @since 0.3.5
53
53
  alias success? successful?
54
54
 
55
- # Check if the current status is not successful
55
+ # Checks if the current status is not successful
56
56
  #
57
57
  # @return [TrueClass,FalseClass] the result of the check
58
58
  #
@@ -61,7 +61,7 @@ module Hanami
61
61
  !successful?
62
62
  end
63
63
 
64
- # Force the status to be a failure
64
+ # Forces the status to be a failure
65
65
  #
66
66
  # @since 0.3.5
67
67
  def fail!
@@ -104,7 +104,7 @@ module Hanami
104
104
  errors.first
105
105
  end
106
106
 
107
- # Prepare the result before to be returned
107
+ # Prepares the result before to be returned
108
108
  #
109
109
  # @param payload [Hash] an updated payload
110
110
  #
@@ -377,7 +377,7 @@ module Hanami
377
377
 
378
378
  private
379
379
 
380
- # Check if proceed with <tt>#call</tt> invokation.
380
+ # Checks if proceed with <tt>#call</tt> invocation.
381
381
  # By default it returns <tt>true</tt>.
382
382
  #
383
383
  # Developers can override it.
@@ -389,7 +389,7 @@ module Hanami
389
389
  true
390
390
  end
391
391
 
392
- # Fail and interrupt the current flow.
392
+ # Fails and interrupts the current flow.
393
393
  #
394
394
  # @since 0.3.5
395
395
  #
@@ -428,7 +428,7 @@ module Hanami
428
428
  throw :fail
429
429
  end
430
430
 
431
- # Log an error without interrupting the flow.
431
+ # Logs an error without interrupting the flow.
432
432
  #
433
433
  # When used, the returned result won't be successful.
434
434
  #
@@ -483,7 +483,7 @@ module Hanami
483
483
  false
484
484
  end
485
485
 
486
- # Log an error AND interrupting the flow.
486
+ # Logs an error and interrupts the flow.
487
487
  #
488
488
  # When used, the returned result won't be successful.
489
489
  #
@@ -579,7 +579,7 @@ module Hanami
579
579
  end
580
580
  end
581
581
 
582
- # Expose local instance variables into the returning value of <tt>#call</tt>
582
+ # Exposes local instance variables into the returning value of <tt>#call</tt>
583
583
  #
584
584
  # @param instance_variable_names [Symbol,Array<Symbol>] one or more instance
585
585
  # variable names
@@ -588,7 +588,7 @@ module Hanami
588
588
  #
589
589
  # @see Hanami::Interactor::Result
590
590
  #
591
- # @example Expose instance variable
591
+ # @example Exposes instance variable
592
592
  #
593
593
  # class Signup
594
594
  # include Hanami::Interactor
@@ -7,7 +7,7 @@ require "hanami/utils/files"
7
7
  module Hanami
8
8
  # Hanami logger
9
9
  #
10
- # Implement with the same interface of Ruby std lib `Logger`.
10
+ # Implementation with the same interface of Ruby std lib `Logger`.
11
11
  # It uses `STDOUT`, `STDERR`, file name or open file as output stream.
12
12
  #
13
13
  #
@@ -16,7 +16,7 @@ module Hanami
16
16
  #
17
17
  # This is useful for auto-tagging the output. Eg (`app=Booshelf`).
18
18
  #
19
- # When used stand alone (eg. `Hanami::Logger.info`), it tags lines with `app=Shared`.
19
+ # When used standalone (eg. `Hanami::Logger.info`), it tags lines with `app=Shared`.
20
20
  #
21
21
  #
22
22
  # The available severity levels are the same of `Logger`:
@@ -30,7 +30,7 @@ module Hanami
30
30
  #
31
31
  # Those levels are available both as class and instance methods.
32
32
  #
33
- # Also Hanami::Logger support different formatters. Now available only two:
33
+ # Also Hanami::Logger supports different formatters. Now available only two:
34
34
  #
35
35
  # * Formatter (default)
36
36
  # * JSONFormatter
@@ -279,7 +279,7 @@ module Hanami
279
279
  # logger.info "Hello World"
280
280
  #
281
281
  # # => {"app":"Hanami","severity":"DEBUG","time":"2017-03-30T13:57:59Z","message":"Hello World"}
282
- # rubocop:disable Lint/HandleExceptions
282
+ # rubocop:disable Lint/SuppressedException
283
283
  # rubocop:disable Metrics/ParameterLists
284
284
  def initialize(application_name = nil, *args, stream: $stdout, level: DEBUG, formatter: nil, filter: [], colorizer: nil)
285
285
  begin
@@ -296,7 +296,7 @@ module Hanami
296
296
  end
297
297
 
298
298
  # rubocop:enable Metrics/ParameterLists
299
- # rubocop:enable Lint/HandleExceptions
299
+ # rubocop:enable Lint/SuppressedException
300
300
 
301
301
  # Returns the current application name, this is used for tagging purposes
302
302
  #
@@ -313,7 +313,7 @@ module Hanami
313
313
  super _level(value)
314
314
  end
315
315
 
316
- # Close the logging stream if this stream isn't an STDOUT
316
+ # Closes the logging stream if this stream isn't an STDOUT
317
317
  #
318
318
  # @since 0.8.0
319
319
  def close
@@ -21,7 +21,7 @@ module Hanami
21
21
 
22
22
  # Checks if the current VM is JRuby
23
23
  #
24
- # @return [TrueClass,FalseClass] return if the VM is JRuby or not
24
+ # @return [TrueClass,FalseClass] info whether the VM is JRuby or not
25
25
  #
26
26
  # @since 0.3.1
27
27
  # @api private
@@ -31,7 +31,7 @@ module Hanami
31
31
 
32
32
  # Checks if the current VM is Rubinius
33
33
  #
34
- # @return [TrueClass,FalseClass] return if the VM is Rubinius or not
34
+ # @return [TrueClass,FalseClass] info whether the VM is Rubinius or not
35
35
  #
36
36
  # @since 0.3.1
37
37
  # @api private
@@ -39,7 +39,7 @@ module Hanami
39
39
  RUBY_ENGINE == HANAMI_RUBINIUS
40
40
  end
41
41
 
42
- # Recursively require Ruby files under the given directory.
42
+ # Recursively requires Ruby files under the given directory.
43
43
  #
44
44
  # If the directory is relative, it implies it's the path from current directory.
45
45
  # If the directory is absolute, it uses as it is.
@@ -54,7 +54,7 @@ module Hanami
54
54
  for_each_file_in(directory) { |file| require_relative(file) }
55
55
  end
56
56
 
57
- # Recursively reload Ruby files under the given directory.
57
+ # Recursively reloads Ruby files under the given directory.
58
58
  #
59
59
  # If the directory is relative, it implies it's the path from current directory.
60
60
  # If the directory is absolute, it uses as it is.
@@ -4,7 +4,7 @@ module Hanami
4
4
  #
5
5
  # @since 0.3.5
6
6
  class BasicObject < ::BasicObject
7
- # Lookup constants at the top-level namespace, if they are missing in the
7
+ # Lookups constants at the top-level namespace, if they are missing in the
8
8
  # current context.
9
9
  #
10
10
  # @param name [Symbol] the constant name
@@ -21,7 +21,7 @@ module Hanami
21
21
  ::Object.const_get(name)
22
22
  end
23
23
 
24
- # Return the class for debugging purposes.
24
+ # Returns the class for debugging purposes.
25
25
  #
26
26
  # @since 0.3.5
27
27
  #
@@ -48,7 +48,7 @@ module Hanami
48
48
 
49
49
  # @!macro [attach] instance_of?(class)
50
50
  #
51
- # Determine if self is an instance of given class or module
51
+ # Determines if self is an instance of given class or module
52
52
  #
53
53
  # @param class [Class,Module] the class of module to verify
54
54
  #
@@ -63,7 +63,7 @@ module Hanami
63
63
 
64
64
  # @!macro [attach] is_a?(class)
65
65
  #
66
- # Determine if self is of the type of the object class or module
66
+ # Determines if self is of the type of the object class or module
67
67
  #
68
68
  # @param class [Class,Module] the class of module to verify
69
69
  #
@@ -78,7 +78,7 @@ module Hanami
78
78
 
79
79
  # @!macro [attach] kind_of?(class)
80
80
  #
81
- # Determine if self is of the kind of the object class or module
81
+ # Determines if self is of the kind of the object class or module
82
82
  #
83
83
  # @param class [Class,Module] the class of module to verify
84
84
  #
@@ -11,7 +11,7 @@ module Hanami
11
11
  # @api private
12
12
  STRING_MATCHER = /\A[[:space:]]*\z/.freeze
13
13
 
14
- # Checks object is blank
14
+ # Checks if object is blank
15
15
  #
16
16
  # @example Basic Usage
17
17
  # require 'hanami/utils/blank'
@@ -25,7 +25,7 @@ module Hanami
25
25
  #
26
26
  # @param object the argument
27
27
  #
28
- # @return [TrueClass,FalseClass]
28
+ # @return [TrueClass,FalseClass] info, whether object is blank
29
29
  #
30
30
  # @since 0.8.0
31
31
  # @api private
@@ -44,7 +44,7 @@ module Hanami
44
44
  end
45
45
  end
46
46
 
47
- # Checks object is filled
47
+ # Checks if object is filled
48
48
  #
49
49
  # @example Basic Usage
50
50
  # require 'hanami/utils/blank'
@@ -58,7 +58,7 @@ module Hanami
58
58
  #
59
59
  # @param object the argument
60
60
  #
61
- # @return [TrueClass,FalseClass]
61
+ # @return [TrueClass,FalseClass] whether the object is filled
62
62
  #
63
63
  # @since 1.0.0
64
64
  # @api private
@@ -10,7 +10,7 @@ module Hanami
10
10
  # @since 0.1.0
11
11
  # @private
12
12
  class Chain
13
- # Return a new chain
13
+ # Returns a new chain
14
14
  #
15
15
  # @return [Hanami::Utils::Callbacks::Chain]
16
16
  #
@@ -115,7 +115,7 @@ module Hanami
115
115
  tokenize(pattern) do |token|
116
116
  begin
117
117
  return namespace.const_get(token, false)
118
- rescue NameError # rubocop:disable Lint/HandleExceptions
118
+ rescue NameError # rubocop:disable Lint/SuppressedException
119
119
  end
120
120
  end
121
121
 
@@ -397,7 +397,7 @@ module Hanami
397
397
  end
398
398
  end
399
399
 
400
- # Escape HTML contents
400
+ # Escapes HTML contents
401
401
  #
402
402
  # This MUST be used only for tag contents.
403
403
  # Please use `html_attribute` for escaping HTML attributes.
@@ -430,7 +430,7 @@ module Hanami
430
430
  result
431
431
  end
432
432
 
433
- # Escape HTML attributes
433
+ # Escapes HTML attributes
434
434
  #
435
435
  # This can be used both for HTML attributes and contents.
436
436
  # Please note that this is more computational expensive.
@@ -463,7 +463,7 @@ module Hanami
463
463
  result
464
464
  end
465
465
 
466
- # Escape URL for HTML attributes (href, src, etc..).
466
+ # Escapes URL for HTML attributes (href, src, etc..).
467
467
  #
468
468
  # It extracts from the given input the first valid URL that matches the
469
469
  # whitelisted schemes (default: http, https and mailto).
@@ -521,7 +521,7 @@ module Hanami
521
521
  class << self
522
522
  private
523
523
 
524
- # Encode the given string into UTF-8
524
+ # Encodes the given string into UTF-8
525
525
  #
526
526
  # @param input [String] the input
527
527
  #
@@ -4,7 +4,7 @@ module Hanami
4
4
  #
5
5
  # @since 0.9.0
6
6
  module FileList
7
- # Return an ordered list of files, consistent across operating systems
7
+ # Returns an ordered list of files, consistent across operating systems
8
8
  #
9
9
  # It has the same signature of <tt>Dir.glob</tt>, it just guarantees to
10
10
  # order the results before to return them.
@@ -163,7 +163,7 @@ module Hanami
163
163
  mkdir_p(path)
164
164
 
165
165
  content = ::File.readlines(path)
166
- content << "\n" unless content.last.end_with?("\n")
166
+ content << "\n" if _append_newline?(content)
167
167
  content << "#{contents}\n"
168
168
 
169
169
  write(path, content)
@@ -452,6 +452,16 @@ module Hanami
452
452
  end
453
453
 
454
454
  private_class_method :line_number
455
+
456
+ # @since 1.3.6
457
+ # @api private
458
+ def self._append_newline?(content)
459
+ return false if content.empty?
460
+
461
+ !content.last.end_with?("\n")
462
+ end
463
+
464
+ private_class_method :_append_newline?
455
465
  end
456
466
  end
457
467
  end
@@ -47,7 +47,7 @@ module Hanami
47
47
  self[:symbolize_keys].call(input)
48
48
  end
49
49
 
50
- # Deep symbolize the given hash
50
+ # Performs deep symbolize on the given hash
51
51
  #
52
52
  # @param input [::Hash] the input
53
53
  #
@@ -69,7 +69,7 @@ module Hanami
69
69
  self[:deep_symbolize_keys].call(input)
70
70
  end
71
71
 
72
- # Stringify the given hash
72
+ # Stringifies the given hash
73
73
  #
74
74
  # @param input [::Hash] the input
75
75
  #
@@ -89,7 +89,7 @@ module Hanami
89
89
  self[:stringify_keys].call(input)
90
90
  end
91
91
 
92
- # Deeply stringify the given hash
92
+ # Deeply stringifies the given hash
93
93
  #
94
94
  # @param input [::Hash] the input
95
95
  #
@@ -121,15 +121,15 @@ module Hanami
121
121
  end
122
122
  end
123
123
 
124
- # Deep duplicate hash values
124
+ # Deep duplicates hash values
125
125
  #
126
- # The output of this function is a shallow duplicate of the input.
126
+ # The output of this function is a deep duplicate of the input.
127
127
  # Any further modification on the input, won't be reflected on the output
128
128
  # and viceversa.
129
129
  #
130
130
  # @param input [::Hash] the input
131
131
  #
132
- # @return [::Hash] the shallow duplicate of input
132
+ # @return [::Hash] the deep duplicate of input
133
133
  #
134
134
  # @since 1.0.1
135
135
  #
@@ -169,7 +169,7 @@ module Hanami
169
169
  end
170
170
  end
171
171
 
172
- # Deep serialize given object into a `Hash`
172
+ # Deep serializes given object into a `Hash`
173
173
  #
174
174
  # Please note that the returning `Hash` will use symbols as keys.
175
175
  #
@@ -239,7 +239,7 @@ module Hanami
239
239
  @hash.default_proc = blk if blk
240
240
  end
241
241
 
242
- # Convert in-place all the keys to Symbol instances.
242
+ # Converts in-place all the keys to Symbol instances.
243
243
  #
244
244
  # @return [Hash] self
245
245
  #
@@ -263,7 +263,7 @@ module Hanami
263
263
  self
264
264
  end
265
265
 
266
- # Convert in-place all the keys to Symbol instances, nested hashes are converted too.
266
+ # Converts in-place all the keys to Symbol instances, nested hashes are converted too.
267
267
  #
268
268
  # @return [Hash] self
269
269
  #
@@ -289,7 +289,7 @@ module Hanami
289
289
  self
290
290
  end
291
291
 
292
- # Convert in-place all the keys to Symbol instances, nested hashes are converted too.
292
+ # Converts in-place all the keys to Symbol instances, nested hashes are converted too.
293
293
  #
294
294
  # @return [Hash] self
295
295
  #
@@ -315,7 +315,7 @@ module Hanami
315
315
  self
316
316
  end
317
317
 
318
- # Return a deep copy of the current Hanami::Utils::Hash
318
+ # Returns a deep copy of the current Hanami::Utils::Hash
319
319
  #
320
320
  # @return [Hash] a deep duplicated self
321
321
  #
@@ -498,7 +498,7 @@ module Hanami
498
498
  @hash.inspect
499
499
  end
500
500
 
501
- # Override Ruby's method_missing in order to provide ::Hash interface
501
+ # Overrides Ruby's method_missing in order to provide ::Hash interface
502
502
  #
503
503
  # @api private
504
504
  # @since 0.3.0
@@ -512,7 +512,7 @@ module Hanami
512
512
  h
513
513
  end
514
514
 
515
- # Override Ruby's respond_to_missing? in order to support ::Hash interface
515
+ # Overrides Ruby's respond_to_missing? in order to support ::Hash interface
516
516
  #
517
517
  # @api private
518
518
  # @since 0.3.0
@@ -314,7 +314,7 @@ module Hanami
314
314
  class_eval(&blk)
315
315
  end
316
316
 
317
- # Add a custom inflection exception
317
+ # Adds a custom inflection exception
318
318
  #
319
319
  # @param [String] singular form
320
320
  # @param [String] plural form
@@ -345,7 +345,7 @@ module Hanami
345
345
  Inflecto.inflections.irregular(singular, plural)
346
346
  end
347
347
 
348
- # Add an uncountable word
348
+ # Adds an uncountable word
349
349
  #
350
350
  # @param [Array<String>] words
351
351
  #
@@ -366,7 +366,7 @@ module Hanami
366
366
  end
367
367
  end
368
368
 
369
- # Pluralize the given string
369
+ # Pluralizes the given string
370
370
  #
371
371
  # @param string [String] a string to pluralize
372
372
  #
@@ -424,7 +424,7 @@ module Hanami
424
424
  # rubocop:enable Metrics/CyclomaticComplexity
425
425
  # rubocop:enable Metrics/MethodLength
426
426
 
427
- # Singularize the given string
427
+ # Singularizes the given string
428
428
  #
429
429
  # @param string [String] a string to singularize
430
430
  #
@@ -41,7 +41,7 @@ module Hanami
41
41
  end
42
42
  # rubocop:enable Style/ClassVars
43
43
 
44
- # Parse the given JSON paylod
44
+ # Parses the given JSON paylod
45
45
  #
46
46
  # @param payload [String] a JSON payload
47
47
  #
@@ -7,7 +7,7 @@ require 'hanami/utils'
7
7
  require 'hanami/utils/string'
8
8
 
9
9
  unless defined?(Boolean)
10
- # Define top level constant Boolean, so it can be easily used by other libraries
10
+ # Defines top level constant Boolean, so it can be easily used by other libraries
11
11
  # in coercions DSLs
12
12
  #
13
13
  # @since 0.3.0
@@ -1021,7 +1021,7 @@ module Hanami
1021
1021
  raise TypeError.new "can't convert #{inspect_type_error(arg)}into Symbol"
1022
1022
  end
1023
1023
 
1024
- # Check if the given argument is a string representation of a number
1024
+ # Checks if the given argument is a string representation of a number
1025
1025
  #
1026
1026
  # @param arg [Object] the input
1027
1027
  #
@@ -1042,11 +1042,11 @@ module Hanami
1042
1042
  # @since 0.4.3
1043
1043
  # @api private
1044
1044
  def self.inspect_type_error(arg)
1045
- (arg.respond_to?(:inspect) ? arg.inspect : arg.to_s) << ' '
1045
+ (arg.respond_to?(:inspect) ? arg.inspect : arg.to_s) + ' '
1046
1046
  rescue NoMethodError
1047
1047
  # missing the #respond_to? method, fall back to returning the class' name
1048
1048
  begin
1049
- arg.class.name << ' instance '
1049
+ arg.class.name + ' instance '
1050
1050
  rescue NoMethodError
1051
1051
  # missing the #class method, can't fall back to anything better than nothing
1052
1052
  # Callers will have to guess from their code
@@ -48,7 +48,7 @@ module Hanami
48
48
  @paths = original.instance_variable_get(:@paths).dup
49
49
  end
50
50
 
51
- # Iterates thru the collection and yields the given block.
51
+ # Iterates through the collection and yields the given block.
52
52
  # It skips duplications and raises an error in case one of the paths
53
53
  # doesn't exist.
54
54
  #
@@ -156,7 +156,7 @@ module Hanami
156
156
 
157
157
  private
158
158
 
159
- # Allow subclasses to define their own policy to discover the realpath
159
+ # Allows subclasses to define their own policy to discover the realpath
160
160
  # of the given path.
161
161
  #
162
162
  # @since 0.2.0
@@ -12,7 +12,7 @@ module Hanami
12
12
  # @api private
13
13
  HASH_SEPARATOR = ","
14
14
 
15
- # Serialize input into a query string
15
+ # Serializes input into a query string
16
16
  #
17
17
  # @param input [Object] the input
18
18
  #
@@ -18,7 +18,7 @@ module Hanami
18
18
  end
19
19
  end
20
20
 
21
- # Escape codes for terminals to output strings in colors
21
+ # Escapes codes for terminals to output strings in colors
22
22
  #
23
23
  # @since 1.2.0
24
24
  # @api private
@@ -33,7 +33,7 @@ module Hanami
33
33
  gray: 37,
34
34
  ].freeze
35
35
 
36
- # Colorize output
36
+ # Colorizes output
37
37
  # 8 colors available: black, red, green, yellow, blue, magenta, cyan, and gray
38
38
  #
39
39
  # @param input [#to_s] the string to colorize
@@ -79,7 +79,7 @@ module Hanami
79
79
  extend Transproc::Registry
80
80
  extend Transproc::Composer
81
81
 
82
- # Apply the given transformation(s) to `input`
82
+ # Applies the given transformation(s) to `input`
83
83
  #
84
84
  # It performs a pipeline of transformations, by applying the given functions from `Hanami::Utils::String` and `::String`.
85
85
  # The transformations are applied in the given order.
@@ -164,7 +164,7 @@ module Hanami
164
164
  binding.instance_exec(value, &fun)
165
165
  end
166
166
 
167
- # Return a titleized version of the string
167
+ # Returns a titleized version of the string
168
168
  #
169
169
  # @param input [::String] the input
170
170
  #
@@ -181,7 +181,7 @@ module Hanami
181
181
  underscore(string).split(CLASSIFY_SEPARATOR).map(&:capitalize).join(TITLEIZE_SEPARATOR)
182
182
  end
183
183
 
184
- # Return a capitalized version of the string
184
+ # Returns a capitalized version of the string
185
185
  #
186
186
  # @param input [::String] the input
187
187
  #
@@ -208,7 +208,7 @@ module Hanami
208
208
  tail.unshift(head.capitalize).join(CAPITALIZE_SEPARATOR)
209
209
  end
210
210
 
211
- # Return a CamelCase version of the string
211
+ # Returns a CamelCase version of the string
212
212
  #
213
213
  # @param input [::String] the input
214
214
  #
@@ -232,7 +232,7 @@ module Hanami
232
232
  words.zip(delimiters).join
233
233
  end
234
234
 
235
- # Return a downcased and underscore separated version of the string
235
+ # Returns a downcased and underscore separated version of the string
236
236
  #
237
237
  # Revised version of `ActiveSupport::Inflector.underscore` implementation
238
238
  # @see https://github.com/rails/rails/blob/feaa6e2048fe86bcf07e967d6e47b865e42e055b/activesupport/lib/active_support/inflector/methods.rb#L90
@@ -257,7 +257,7 @@ module Hanami
257
257
  string.downcase
258
258
  end
259
259
 
260
- # Return a downcased and dash separated version of the string
260
+ # Returns a downcased and dash separated version of the string
261
261
  #
262
262
  # @param input [::String] the input
263
263
  #
@@ -278,7 +278,7 @@ module Hanami
278
278
  underscore(string).split(CLASSIFY_SEPARATOR).join(DASHERIZE_SEPARATOR)
279
279
  end
280
280
 
281
- # Return the string without the Ruby namespace of the class
281
+ # Returns the string without the Ruby namespace of the class
282
282
  #
283
283
  # @param input [::String] the input
284
284
  #
@@ -296,7 +296,7 @@ module Hanami
296
296
  ::String.new(input.to_s).split(NAMESPACE_SEPARATOR).last
297
297
  end
298
298
 
299
- # Return the top level namespace name
299
+ # Returns the top level namespace name
300
300
  #
301
301
  # @param input [::String] the input
302
302
  #
@@ -314,7 +314,7 @@ module Hanami
314
314
  ::String.new(input.to_s).split(NAMESPACE_SEPARATOR).first
315
315
  end
316
316
 
317
- # Return a pluralized version of self.
317
+ # Returns a pluralized version of self.
318
318
  #
319
319
  # @param input [::String] the input
320
320
  #
@@ -334,7 +334,7 @@ module Hanami
334
334
  Inflector.pluralize(string)
335
335
  end
336
336
 
337
- # Return a singularized version of self.
337
+ # Returns a singularized version of self.
338
338
  #
339
339
  # @param input [::String] the input
340
340
  #
@@ -354,7 +354,7 @@ module Hanami
354
354
  Inflector.singularize(string)
355
355
  end
356
356
 
357
- # Replace the rightmost match of `pattern` with `replacement`
357
+ # Replaces the rightmost match of `pattern` with `replacement`
358
358
  #
359
359
  # If the pattern cannot be matched, it returns the original string.
360
360
  #
@@ -396,7 +396,7 @@ module Hanami
396
396
  @string = string.to_s
397
397
  end
398
398
 
399
- # Return a titleized version of the string
399
+ # Returns a titleized version of the string
400
400
  #
401
401
  # @return [Hanami::Utils::String] the transformed string
402
402
  #
@@ -412,7 +412,7 @@ module Hanami
412
412
  self.class.new underscore.split(CLASSIFY_SEPARATOR).map(&:capitalize).join(TITLEIZE_SEPARATOR)
413
413
  end
414
414
 
415
- # Return a capitalized version of the string
415
+ # Returns a capitalized version of the string
416
416
  #
417
417
  # @return [Hanami::Utils::String] the transformed string
418
418
  #
@@ -444,7 +444,7 @@ module Hanami
444
444
  )
445
445
  end
446
446
 
447
- # Return a CamelCase version of the string
447
+ # Returns a CamelCase version of the string
448
448
  #
449
449
  # @return [Hanami::Utils::String] the transformed string
450
450
  #
@@ -467,7 +467,7 @@ module Hanami
467
467
  self.class.new words.zip(delimiters).join
468
468
  end
469
469
 
470
- # Return a downcased and underscore separated version of the string
470
+ # Returns a downcased and underscore separated version of the string
471
471
  #
472
472
  # Revised version of `ActiveSupport::Inflector.underscore` implementation
473
473
  # @see https://github.com/rails/rails/blob/feaa6e2048fe86bcf07e967d6e47b865e42e055b/activesupport/lib/active_support/inflector/methods.rb#L90
@@ -491,7 +491,7 @@ module Hanami
491
491
  self.class.new new_string
492
492
  end
493
493
 
494
- # Return a downcased and dash separated version of the string
494
+ # Returns a downcased and dash separated version of the string
495
495
  #
496
496
  # @return [Hanami::Utils::String] the transformed string
497
497
  #
@@ -513,7 +513,7 @@ module Hanami
513
513
  self.class.new underscore.split(CLASSIFY_SEPARATOR).join(DASHERIZE_SEPARATOR)
514
514
  end
515
515
 
516
- # Return the string without the Ruby namespace of the class
516
+ # Returns the string without the Ruby namespace of the class
517
517
  #
518
518
  # @return [Hanami::Utils::String] the transformed string
519
519
  #
@@ -532,7 +532,7 @@ module Hanami
532
532
  self.class.new split(NAMESPACE_SEPARATOR).last
533
533
  end
534
534
 
535
- # Return the top level namespace name
535
+ # Returns the top level namespace name
536
536
  #
537
537
  # @return [Hanami::Utils::String] the transformed string
538
538
  #
@@ -590,7 +590,7 @@ module Hanami
590
590
  end
591
591
  # rubocop:enable Metrics/MethodLength
592
592
 
593
- # Return a pluralized version of self.
593
+ # Returns a pluralized version of self.
594
594
  #
595
595
  # @return [Hanami::Utils::String] the pluralized string.
596
596
  #
@@ -603,7 +603,7 @@ module Hanami
603
603
  self.class.new Inflector.pluralize(self)
604
604
  end
605
605
 
606
- # Return a singularized version of self.
606
+ # Returns a singularized version of self.
607
607
  #
608
608
  # @return [Hanami::Utils::String] the singularized string.
609
609
  #
@@ -650,7 +650,7 @@ module Hanami
650
650
 
651
651
  alias eql? ==
652
652
 
653
- # Split the string with the given pattern
653
+ # Splits the string with the given pattern
654
654
  #
655
655
  # @return [Array<::String>]
656
656
  #
@@ -662,7 +662,7 @@ module Hanami
662
662
  @string.split(pattern, limit)
663
663
  end
664
664
 
665
- # Replace the given pattern with the given replacement
665
+ # Replaces the given pattern with the given replacement
666
666
  #
667
667
  # @return [::String]
668
668
  #
@@ -678,7 +678,7 @@ module Hanami
678
678
  end
679
679
  end
680
680
 
681
- # Iterate through the string, matching the pattern.
681
+ # Iterates through the string, matching the pattern.
682
682
  # Either return all those patterns, or pass them to the block.
683
683
  #
684
684
  # @return [Array<::String>]
@@ -691,7 +691,7 @@ module Hanami
691
691
  @string.scan(pattern, &blk)
692
692
  end
693
693
 
694
- # Replace the rightmost match of `pattern` with `replacement`
694
+ # Replaces the rightmost match of `pattern` with `replacement`
695
695
  #
696
696
  # If the pattern cannot be matched, it returns the original string.
697
697
  #
@@ -726,7 +726,7 @@ module Hanami
726
726
  end
727
727
  end
728
728
 
729
- # Override Ruby's method_missing in order to provide ::String interface
729
+ # Overrides Ruby's method_missing in order to provide ::String interface
730
730
  #
731
731
  # @api private
732
732
  # @since 0.3.0
@@ -740,7 +740,7 @@ module Hanami
740
740
  s
741
741
  end
742
742
 
743
- # Override Ruby's respond_to_missing? in order to support ::String interface
743
+ # Overrides Ruby's respond_to_missing? in order to support ::String interface
744
744
  #
745
745
  # @api private
746
746
  # @since 0.3.0
@@ -3,6 +3,6 @@ module Hanami
3
3
  # Defines the version
4
4
  #
5
5
  # @since 0.1.0
6
- VERSION = '1.3.5'.freeze
6
+ VERSION = '1.3.6'.freeze
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.5
4
+ version: 1.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-25 00:00:00.000000000 Z
11
+ date: 2020-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: transproc
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0'
146
146
  requirements: []
147
- rubygems_version: 3.0.6
147
+ rubygems_version: 3.1.2
148
148
  signing_key:
149
149
  specification_version: 4
150
150
  summary: Ruby core extentions and Hanami utilities