refinements 2.2.1 → 3.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a6392abcce831054b4c6570ef13529d99fe0f851
4
- data.tar.gz: 9710d2658ddacd73de0f27c3839a3586ce3c4a20
3
+ metadata.gz: c3892f7956e4d8cfc57a1872c6c13509c569fbac
4
+ data.tar.gz: b36a0d0ad57850bfbb554b40ff0606b6c48fe522
5
5
  SHA512:
6
- metadata.gz: b801764507cab23f18c9f311f1a7c2a55a0ec2301857478635b25545f03f1636885cdc5aee2c660270d8769aa3d120d2d87cc6951c673d5eb6f3e8745ff0ea6c
7
- data.tar.gz: 2e928536b26a04d4c63a7d670bcb63ac2824d396e1ffa2b4b6071df9351249cf63d27f5e88b4a086f187f9d24ae6268db517ae1091dee450a3c3b335cd509979
6
+ metadata.gz: 327582d5686e68f62be1b48e267a30e3ee13befeefcc4082be3692083098ed273b2f5ed3aba570f625395824ced13641b00ba4e2ac87e9ce9add80fc01ad8436
7
+ data.tar.gz: a38b3a142c34986ed08f3ac085c56c330aabe3159290d592cb2af06114cef3211b2f9d327832acff10e0acd17c147bcf078655bc707047935561a3d629a06f1e
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![Travis CI Status](https://secure.travis-ci.org/bkuhlmann/refinements.svg)](https://travis-ci.org/bkuhlmann/refinements)
8
8
  [![Patreon](https://img.shields.io/badge/patreon-donate-brightgreen.svg)](https://www.patreon.com/bkuhlmann)
9
9
 
10
- Provides a collection of refinements for core Ruby objects.
10
+ Provides a collection of refinements to core Ruby objects.
11
11
 
12
12
  <!-- Tocer[start]: Auto-generated, don't remove. -->
13
13
 
@@ -36,26 +36,30 @@ Provides a collection of refinements for core Ruby objects.
36
36
 
37
37
  # Features
38
38
 
39
- - Adds BigDecimal refinements:
39
+ - Provides Array refinements:
40
+ - `Array#compress` - Removes `nil` and empty values without modifying itself.
41
+ - `Array#compress!` - Removes `nil` and empty values while modifying itself.
42
+ - Provides BigDecimal refinements:
40
43
  - `BigDecimal#inspect` - Allows one to inspect a big decimal with numeric representation.
41
- - Adds Array refinements:
42
- - `Array#compress` - Removes nil and empty values without modifying itself.
43
- - `Array#compress!` - Removes nil and empty values and modifies itself.
44
- - Adds Hash refinements:
45
- - `#compact` - Removes key/value pairs with nil values without modifying itself.
46
- - `#compact!` - Removes key/value pairs with nil values and modifies itself.
47
- - `#deep_merge` - Merges deeply nested hashes together without itself.
48
- - `#deep_merge!` - Merges deeply nested hashes together and modifies itself.
44
+ - Provides Hash refinements:
45
+ - `#compact` - Removes key/value pairs with `nil` values without modifying itself.
46
+ - `#compact!` - Removes key/value pairs with `nil` values while modifying itself.
47
+ - `#deep_merge` - Merges deeply nested hashes together without modifying itself.
48
+ - `#deep_merge!` - Merges deeply nested hashes together while modifying itself.
49
49
  - `#reverse_merge` - Merges calling hash into passed in hash without modifying calling hash.
50
- - `#reverse_merge!` - Merges calling hash into passed in hash and modifies calling hash.
51
- - Adds String refinements:
50
+ - `#reverse_merge!` - Merges calling hash into passed in hash while modifying calling hash.
51
+ - Provides String refinements:
52
+ - `#blank?` - Answers `true`/`false` based on whether string is blank
53
+ or not (i.e. `<space>`, `\n`, `\t`, `\r`).
54
+ - `#up` - Answers string with only first letter upcased.
55
+ - `#down` - Answers string with only first letter downcased.
52
56
  - `#camelcase` - Answers a camelcased string. Example: "ThisIsCamelcase".
53
57
  - `#snakecase` - Answers a snakecased string. Example: "this_is_snakecase".
54
58
  - `#titleize` - Answers titleized string. Example: "This Is Titleized".
55
59
 
56
60
  # Requirements
57
61
 
58
- 0. [MRI 2.3.x](https://www.ruby-lang.org).
62
+ 0. [Ruby 2.3.x](https://www.ruby-lang.org).
59
63
  0. A solid understanding of [Ruby refinements and lexical scope](https://www.youtube.com/watch?v=qXC9Gk4dCEw).
60
64
 
61
65
  # Setup
@@ -65,8 +69,9 @@ For a secure install, type the following from the command line (recommended):
65
69
  gem cert --add <(curl --location --silent https://www.alchemists.io/gem-public.pem)
66
70
  gem install refinements --trust-policy MediumSecurity
67
71
 
68
- NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification while
69
- allowing the installation of unsigned dependencies since they are beyond the scope of this gem.
72
+ NOTE: A HighSecurity trust policy would be best but MediumSecurity enables signed gem verification
73
+ while allowing the installation of unsigned dependencies since they are beyond the scope of this
74
+ gem.
70
75
 
71
76
  For an insecure install, type the following (not recommended):
72
77
 
@@ -80,38 +85,41 @@ Add the following to your Gemfile file:
80
85
 
81
86
  ## Requires
82
87
 
83
- Due to this gem being a collection of Ruby refinements, none of the refinements are auto-loaded by default in order to
84
- reduce code bloat for your app. Instead, require the specific requirement for the code that needs it. You'll want to
85
- require one or all of the following:
88
+ Due to this gem being a collection of Ruby refinements, none of the refinements are auto-loaded by
89
+ default in order to reduce application bloat. Instead, require the specific requirement for the code
90
+ that needs it. You'll want to require one or all of the following:
86
91
 
87
- require "refinements/string_extensions"
88
- require "refinements/big_decimal_extensions"
89
- require "refinements/array_extensions"
90
- require "refinements/hash_extensions"
92
+ require "refinements/arrays"
93
+ require "refinements/big_decimals"
94
+ require "refinements/hashes"
95
+ require "refinements/strings"
91
96
 
92
97
  ## Using
93
98
 
94
- In addition to requiring the appropriate refinement file for the code that needs it, you'll also need to use the
95
- refinement by using the `using` keyword within your object. You'll want to use one or all of the following:
99
+ In addition to requiring the appropriate refinement for the code that needs it, you'll also need to
100
+ use the refinement by using the `using` keyword within your object. You'll want to use one or all of
101
+ the following:
96
102
 
97
103
  class Example
98
- using Refinements::StringExtensions
99
- using Refinements::BigDecimalExtensions
100
- using Refinements::ArrayExtensions
101
- using Refinements::HashExtensions
104
+ using Refinements::Arrays
105
+ using Refinements::BigDecimals
106
+ using Refinements::Hashes
107
+ using Refinements::Strings
102
108
  end
103
109
 
104
110
  ## Examples
105
111
 
106
- With the appropriate refinements required and used within your objects, the following sections demonstrates how each
107
- refinement enriches your objects with new capabilities.
112
+ With the appropriate refinements required and used within your objects, the following sections
113
+ demonstrate how each refinement enriches your objects with new capabilities.
108
114
 
109
115
  ### String
110
116
 
111
- example = "This is-an EXAMPLE"
112
- example.camelcase # => "ThisIsAnExample"
113
- example.snakecase # => "this_is_an_example"
114
- example.titleize # => "This Is An Example"
117
+ " \n\t\r".blank? # => true
118
+ "example".up # => "Example"
119
+ "EXAMPLE".down # => "eXAMPLE"
120
+ "this_is_an_example".camelcase # => "ThisIsAnExample"
121
+ "ThisIsAnExample".snakecase # => "this_is_an_example"
122
+ "ThisIsAnExample".titleize # => "This Is An Example"
115
123
 
116
124
  ### Big Decimal
117
125
 
@@ -130,6 +138,14 @@ refinement enriches your objects with new capabilities.
130
138
 
131
139
  ### Hash
132
140
 
141
+ example = {a: 1, b: nil}
142
+ example.compact # => {a: 1}
143
+ example # => {a: 1, b: nil}
144
+
145
+ example = {a: 1, b: nil}
146
+ example.compact! # => {a: 1}
147
+ example # => {a: 1}
148
+
133
149
  example = {a: "A", b: {one: "One", two: "Two"}}
134
150
  example.deep_merge b: {one: 1} # => {a: "A", b: {one: 1, two: "Two"}}
135
151
  example # => {a: "A", b: {one: "One", two: "Two"}}
@@ -156,14 +172,14 @@ To test, run:
156
172
 
157
173
  Read [Semantic Versioning](http://semver.org) for details. Briefly, it means:
158
174
 
159
- - Patch (x.y.Z) - Incremented for small, backwards compatible bug fixes.
160
- - Minor (x.Y.z) - Incremented for new, backwards compatible public API enhancements and/or bug fixes.
175
+ - Patch (x.y.Z) - Incremented for small, backwards compatible, bug fixes.
176
+ - Minor (x.Y.z) - Incremented for new, backwards compatible, public API enhancements/fixes.
161
177
  - Major (X.y.z) - Incremented for any backwards incompatible public API changes.
162
178
 
163
179
  # Code of Conduct
164
180
 
165
- Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By participating in this project
166
- you agree to abide by its terms.
181
+ Please note that this project is released with a [CODE OF CONDUCT](CODE_OF_CONDUCT.md). By
182
+ participating in this project you agree to abide by its terms.
167
183
 
168
184
  # Contributions
169
185
 
@@ -172,13 +188,14 @@ Read [CONTRIBUTING](CONTRIBUTING.md) for details.
172
188
  # License
173
189
 
174
190
  Copyright (c) 2015 [Alchemists](https://www.alchemists.io).
175
- Read the [LICENSE](LICENSE.md) for details.
191
+ Read [LICENSE](LICENSE.md) for details.
176
192
 
177
193
  # History
178
194
 
179
- Read the [CHANGELOG](CHANGELOG.md) for details.
195
+ Read [CHANGES](CHANGES.md) for details.
180
196
  Built with [Gemsmith](https://github.com/bkuhlmann/gemsmith).
181
197
 
182
198
  # Credits
183
199
 
184
- Developed by [Brooke Kuhlmann](https://www.alchemists.io) at [Alchemists](https://www.alchemists.io).
200
+ Developed by [Brooke Kuhlmann](https://www.alchemists.io) at
201
+ [Alchemists](https://www.alchemists.io).
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Refinements
4
4
  # Refinements for Arrays.
5
- module ArrayExtensions
5
+ module Arrays
6
6
  refine Array do
7
7
  def compress
8
8
  compact.reject(&:empty?)
@@ -4,7 +4,7 @@ require "bigdecimal"
4
4
 
5
5
  module Refinements
6
6
  # Refinements for Big Decimals.
7
- module BigDecimalExtensions
7
+ module BigDecimals
8
8
  refine BigDecimal do
9
9
  def inspect
10
10
  format "#<BigDecimal:%x %s>", object_id, to_s("F")
@@ -2,13 +2,18 @@
2
2
 
3
3
  module Refinements
4
4
  # Refinements for Hashes.
5
- module HashExtensions
5
+ module Hashes
6
+ # rubocop:disable Metrics/BlockLength
6
7
  refine Hash do
8
+ # TODO: Remove when Ruby 2.4 is released.
7
9
  def compact
10
+ puts "[DEPRECATION]: #compact is deprecated and is included, by default, in Ruby 2.4."
8
11
  dup.compact!
9
12
  end
10
13
 
14
+ # TODO: Remove when Ruby 2.4 is released.
11
15
  def compact!
16
+ puts "[DEPRECATION]: #compact! is deprecated and is included, by default, in Ruby 2.4."
12
17
  reject! { |_, value| value.nil? }
13
18
  end
14
19
 
@@ -12,7 +12,7 @@ module Refinements
12
12
  end
13
13
 
14
14
  def self.version
15
- "2.2.1"
15
+ "3.0.0"
16
16
  end
17
17
 
18
18
  def self.version_label
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Refinements
4
+ # Refinements for Strings.
5
+ module Strings
6
+ refine String.singleton_class do
7
+ def delimiters
8
+ %r([a-z][A-Z]|\s*\-\s*|\s*\/\s*|\s*\:+\s*|\s*\_\s*|\s+)
9
+ end
10
+ end
11
+
12
+ # rubocop:disable Metrics/BlockLength
13
+ refine String do
14
+ def blank?
15
+ !match(/\A\s*\z/).nil?
16
+ end
17
+
18
+ def up
19
+ return self if empty?
20
+ self[0].upcase + self[1, size]
21
+ end
22
+
23
+ def down
24
+ return self if empty?
25
+ self[0].downcase + self[1, size]
26
+ end
27
+
28
+ def camelcase
29
+ if self =~ self.class.delimiters
30
+ result = up_and_join split(%r(\s*\-\s*|\s*\/\s*|\s*\:+\s*)), delimiter: "::"
31
+ up_and_join result.split(/\s*\_\s*|\s+/)
32
+ else
33
+ up
34
+ end
35
+ end
36
+
37
+ def snakecase
38
+ if self =~ self.class.delimiters
39
+ result = down_and_join split(%r(\s*\-\s*|\s*\/\s*|\s*\:+\s*)), delimiter: "/"
40
+ down_and_join result.split(/(?=[A-Z])|\s*\_\s*|\s+/), delimiter: "_"
41
+ else
42
+ downcase
43
+ end
44
+ end
45
+
46
+ def titleize
47
+ if self =~ self.class.delimiters
48
+ result = up_and_join split(/(?=[A-Z])|\s*\_\s*|\s*\-\s*|\s+/), delimiter: " "
49
+ up_and_join result.split(%r(\s*\/\s*|\s*\:+\s*)), delimiter: "/"
50
+ else
51
+ capitalize
52
+ end
53
+ end
54
+
55
+ private
56
+
57
+ def up_and_join parts, delimiter: ""
58
+ parts.reduce "" do |result, part|
59
+ next part.up if result.empty?
60
+ "#{result}#{delimiter}#{part.up}"
61
+ end
62
+ end
63
+
64
+ def down_and_join parts, delimiter: ""
65
+ parts.reduce "" do |result, part|
66
+ next part.down if result.empty?
67
+ "#{result}#{delimiter}#{part.down}"
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
data/lib/tasks/rspec.rake CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  begin
2
4
  require "rspec/core/rake_task"
3
5
  RSpec::Core::RakeTask.new(:spec)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  begin
2
4
  require "rubocop/rake_task"
3
5
  RuboCop::RakeTask.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: refinements
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -12,25 +12,25 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZicm9v
14
14
  a2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQBGRYC
15
- aW8wHhcNMTUwNzA1MTQ1MzExWhcNMTYwNzA0MTQ1MzExWjBBMQ8wDQYDVQQDDAZi
15
+ aW8wHhcNMTYxMDE5MTY0NDEzWhcNMTcxMDE5MTY0NDEzWjBBMQ8wDQYDVQQDDAZi
16
16
  cm9va2UxGjAYBgoJkiaJk/IsZAEZFgphbGNoZW1pc3RzMRIwEAYKCZImiZPyLGQB
17
- GRYCaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzhOVcvLGBCceM
18
- PppVpJLUKsnskWzc1VqBXmv30feKNw+MOxMQaDsIP421qwqGO/2JHY60Kuobssk+
19
- 8/wqZkVFF/FFKxoQjuhlhc+VWLm8jWgXd4N1kwO2yytscQTzxc5qXarwA+36fqVH
20
- RhBAHhjka+HdBI+6o3CXRHJoC47iav+QpR7u/wYl3gNq6MJO3MmTKqHegEDLjRN0
21
- FJAr3bRAwq03ZtTuAVA2bdKLGThehe1RRRtJHJ/PHpmL2c203/GTXYtG6C8ILZIp
22
- ZroTqQ8yglCJ+3hSOmodZqSAQ0Rj7GJgtuNH81qlSrHu5sTvoZjGmEqSIhvsSJ80
23
- wKoPdZnFAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
24
- BBSUnF478a5lB4xuOBiktJdMJv6JmDAfBgNVHREEGDAWgRRicm9va2VAYWxjaGVt
17
+ GRYCaW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCgryPL4/IbWDcL
18
+ fnqpnoJALqj+ega7hSsvvD8sac57HPNLeKcOmSafFiQLAnTmmE132ZlFc8kyZRVn
19
+ zmqSESowO5jd+ggFuy1ySqQJXhwgik04KedKRUjpIDZePrjw+M5UJT1qzKCKL2xI
20
+ nx5cOKP1fSWJ1RRu8JhaDeSloGtYMdw2c28wnKPNIsWDood4xhbLcY9IqeISft2e
21
+ oTAHTHandHbvt24X3/n67ceNjLBbsVZPXCC1C8C8ccjHjA4Tm2uiFoDwThMcPggg
22
+ 90H6fh0vLFcNAobdPEchbge8tWtfmMPz2+C4yklANn81GA+ANsBS1uwx6mxJoMQU
23
+ BNVp0aLvAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
24
+ BBRS85Rn1BaqeIONByw4t46DMDMzHDAfBgNVHREEGDAWgRRicm9va2VAYWxjaGVt
25
25
  aXN0cy5pbzAfBgNVHRIEGDAWgRRicm9va2VAYWxjaGVtaXN0cy5pbzANBgkqhkiG
26
- 9w0BAQUFAAOCAQEAT7KtBXWsq1KA7NOSMeFEDeSvhrgdLwCG/37pIu0rjvx9iAW4
27
- gncxV0MccqIUtaF+lekjlXkIO+rXAVjvdha23KtpFTW90dYXp4NLPnPlSdyvYzJy
28
- FIAaWGvujOT8xEu4umd45q5aepE8li4bR071i5Z7F0trKNVYYrxjQFmH5SSKYRT/
29
- fXtICtAh1de3z3SOSK58IMPwjuoApYBxiqlmx0Uhla7mrzCE5+NmLPit3hLH6JFK
30
- aSif+qBc6oHD7EQWPF5cZkzkIURuwNwPBngZGxIKaMAgRhjGFXzUMAaq++r59cS9
31
- xTfQ4k6fglKEgpnLAXiKdo2c8Ym+X4rIKFfedQ==
26
+ 9w0BAQUFAAOCAQEAZMb57Y4wdpbX8XxTukEO7VC1pndccUsxdbziGsAOiuHET3Aq
27
+ ygLvrfdYrN88/w+qxncW5bxbO3a6UGkuhIFUPM8zRSE/rh6bCcJljTJrExVt42eV
28
+ aYCb7WJNsx3eNXHn3uQodq3tD+lmNJzz2bFeT3smGSKEnALBjqorO/2mpDh4FJ3S
29
+ 4CcDYsJ1ywep8LDJDBBGdKz9moL+axryzpeTpgTT/fFYFzRzWrURPyDvPOikh9TX
30
+ n/LUZ1dKhIHzfKx1B4+TEIefArObGfkLIDM8+Dq1RX7TF1k81Men7iu4MgE9bYBn
31
+ 3dE+xI3FdB5gWcdWxdtgRCmWjtXeYYyb4z6NQQ==
32
32
  -----END CERTIFICATE-----
33
- date: 2016-05-15 00:00:00.000000000 Z
33
+ date: 2016-11-02 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: rake
@@ -52,211 +52,169 @@ dependencies:
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '7.6'
55
+ version: '7.7'
56
56
  type: :development
57
57
  prerelease: false
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '7.6'
62
+ version: '7.7'
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: pry
65
65
  requirement: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '0'
69
+ version: '0.10'
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: '0'
76
+ version: '0.10'
77
77
  - !ruby/object:Gem::Dependency
78
78
  name: pry-byebug
79
79
  requirement: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
- version: '0'
83
+ version: '3.4'
84
84
  type: :development
85
85
  prerelease: false
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - "~>"
89
89
  - !ruby/object:Gem::Version
90
- version: '0'
90
+ version: '3.4'
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: pry-state
93
93
  requirement: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ">="
95
+ - - "~>"
96
96
  - !ruby/object:Gem::Version
97
- version: '0'
97
+ version: '0.1'
98
98
  type: :development
99
99
  prerelease: false
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ">="
102
+ - - "~>"
103
103
  - !ruby/object:Gem::Version
104
- version: '0'
104
+ version: '0.1'
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: bond
107
107
  requirement: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">="
109
+ - - "~>"
110
110
  - !ruby/object:Gem::Version
111
- version: '0'
111
+ version: '0.5'
112
112
  type: :development
113
113
  prerelease: false
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ">="
116
+ - - "~>"
117
117
  - !ruby/object:Gem::Version
118
- version: '0'
118
+ version: '0.5'
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: wirb
121
121
  requirement: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ">="
123
+ - - "~>"
124
124
  - !ruby/object:Gem::Version
125
- version: '0'
125
+ version: '2.0'
126
126
  type: :development
127
127
  prerelease: false
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - ">="
130
+ - - "~>"
131
131
  - !ruby/object:Gem::Version
132
- version: '0'
132
+ version: '2.0'
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: hirb
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - ">="
137
+ - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: '0'
139
+ version: '0.7'
140
140
  type: :development
141
141
  prerelease: false
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - ">="
144
+ - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: '0'
146
+ version: '0.7'
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: awesome_print
149
149
  requirement: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - ">="
151
+ - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: '0'
153
+ version: '1.7'
154
154
  type: :development
155
155
  prerelease: false
156
156
  version_requirements: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - ">="
158
+ - - "~>"
159
159
  - !ruby/object:Gem::Version
160
- version: '0'
160
+ version: '1.7'
161
161
  - !ruby/object:Gem::Dependency
162
162
  name: rspec
163
163
  requirement: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: '3.4'
167
+ version: '3.5'
168
168
  type: :development
169
169
  prerelease: false
170
170
  version_requirements: !ruby/object:Gem::Requirement
171
171
  requirements:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
- version: '3.4'
175
- - !ruby/object:Gem::Dependency
176
- name: rb-fsevent
177
- requirement: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- version: '0'
182
- type: :development
183
- prerelease: false
184
- version_requirements: !ruby/object:Gem::Requirement
185
- requirements:
186
- - - ">="
187
- - !ruby/object:Gem::Version
188
- version: '0'
174
+ version: '3.5'
189
175
  - !ruby/object:Gem::Dependency
190
176
  name: guard-rspec
191
177
  requirement: !ruby/object:Gem::Requirement
192
178
  requirements:
193
- - - ">="
194
- - !ruby/object:Gem::Version
195
- version: '0'
196
- type: :development
197
- prerelease: false
198
- version_requirements: !ruby/object:Gem::Requirement
199
- requirements:
200
- - - ">="
201
- - !ruby/object:Gem::Version
202
- version: '0'
203
- - !ruby/object:Gem::Dependency
204
- name: terminal-notifier
205
- requirement: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- version: '0'
210
- type: :development
211
- prerelease: false
212
- version_requirements: !ruby/object:Gem::Requirement
213
- requirements:
214
- - - ">="
215
- - !ruby/object:Gem::Version
216
- version: '0'
217
- - !ruby/object:Gem::Dependency
218
- name: terminal-notifier-guard
219
- requirement: !ruby/object:Gem::Requirement
220
- requirements:
221
- - - ">="
179
+ - - "~>"
222
180
  - !ruby/object:Gem::Version
223
- version: '0'
181
+ version: '4.7'
224
182
  type: :development
225
183
  prerelease: false
226
184
  version_requirements: !ruby/object:Gem::Requirement
227
185
  requirements:
228
- - - ">="
186
+ - - "~>"
229
187
  - !ruby/object:Gem::Version
230
- version: '0'
188
+ version: '4.7'
231
189
  - !ruby/object:Gem::Dependency
232
190
  name: rubocop
233
191
  requirement: !ruby/object:Gem::Requirement
234
192
  requirements:
235
193
  - - "~>"
236
194
  - !ruby/object:Gem::Version
237
- version: '0.40'
195
+ version: '0.44'
238
196
  type: :development
239
197
  prerelease: false
240
198
  version_requirements: !ruby/object:Gem::Requirement
241
199
  requirements:
242
200
  - - "~>"
243
201
  - !ruby/object:Gem::Version
244
- version: '0.40'
202
+ version: '0.44'
245
203
  - !ruby/object:Gem::Dependency
246
204
  name: codeclimate-test-reporter
247
205
  requirement: !ruby/object:Gem::Requirement
248
206
  requirements:
249
- - - ">="
207
+ - - "~>"
250
208
  - !ruby/object:Gem::Version
251
- version: '0'
209
+ version: '0.6'
252
210
  type: :development
253
211
  prerelease: false
254
212
  version_requirements: !ruby/object:Gem::Requirement
255
213
  requirements:
256
- - - ">="
214
+ - - "~>"
257
215
  - !ruby/object:Gem::Version
258
- version: '0'
259
- description: Provides a collection of refinements for core Ruby objects.
216
+ version: '0.6'
217
+ description:
260
218
  email:
261
219
  - brooke@alchemists.io
262
220
  executables: []
@@ -268,12 +226,11 @@ files:
268
226
  - LICENSE.md
269
227
  - README.md
270
228
  - lib/refinements.rb
271
- - lib/refinements/array_extensions.rb
272
- - lib/refinements/big_decimal_extensions.rb
273
- - lib/refinements/hash_extensions.rb
229
+ - lib/refinements/arrays.rb
230
+ - lib/refinements/big_decimals.rb
231
+ - lib/refinements/hashes.rb
274
232
  - lib/refinements/identity.rb
275
- - lib/refinements/string_extensions.rb
276
- - lib/tasks/console.rake
233
+ - lib/refinements/strings.rb
277
234
  - lib/tasks/rspec.rake
278
235
  - lib/tasks/rubocop.rake
279
236
  homepage: https://github.com/bkuhlmann/refinements
@@ -296,8 +253,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
296
253
  version: '0'
297
254
  requirements: []
298
255
  rubyforge_project:
299
- rubygems_version: 2.6.4
256
+ rubygems_version: 2.6.8
300
257
  signing_key:
301
258
  specification_version: 4
302
- summary: Provides a collection of refinements for core Ruby objects.
259
+ summary: Provides a collection of refinements to core Ruby objects.
303
260
  test_files: []
metadata.gz.sig CHANGED
Binary file
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Refinements
4
- # Refinements for Strings.
5
- module StringExtensions
6
- refine String do
7
- def camelcase
8
- return self if self =~ /\A\w+\z/ && self =~ /[A-Z]/ && self =~ /[a-z]/
9
- snakecase.split("_").map(&:capitalize).join ""
10
- end
11
-
12
- def snakecase
13
- downcase.gsub(/[^a-z]/, "_").squeeze "_"
14
- end
15
-
16
- def titleize
17
- snakecase.split("_").map(&:capitalize).join " "
18
- end
19
- end
20
- end
21
- end
@@ -1,7 +0,0 @@
1
- desc "Open IRB console for gem development environment"
2
- task :console do
3
- require "irb"
4
- require "refinements"
5
- ARGV.clear
6
- IRB.start
7
- end