hanami-utils 1.3.5 → 1.3.6

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
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