dry-inflector 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -7
- data/README.md +3 -3
- data/dry-inflector.gemspec +1 -1
- data/lib/dry/inflector/inflections/defaults.rb +1 -1
- data/lib/dry/inflector/version.rb +1 -1
- data/lib/dry/inflector.rb +9 -9
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74866c6fc9734bbf35266473131ad1b0cdf08a16a541f1b33d9c51d4787debe4
|
4
|
+
data.tar.gz: 18f73495b51877a6bfe2759df34f5a968f649b19200a7ed8981dc81eec3ea89f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e66e59ef5fa5b4ef6a12f108e20a9674e305ad808a850e4bde85b97f06b13b2f4b1c02763c3ccf0170afdcd30bb9b8c78f4413dfb0b40552971bf8b3ccf8d0e6
|
7
|
+
data.tar.gz: 8154dc57bbd78a19b35fe43bc611d94309d982583d2fdbe5265ef63e8e1ea698050e19790bf8124c959949ec3e4a070467c218a64d793f5c1e2dbd4db4751a3a
|
data/CHANGELOG.md
CHANGED
@@ -1,25 +1,38 @@
|
|
1
1
|
<!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
|
2
2
|
|
3
|
-
##
|
3
|
+
## 0.3.0 2022-07-12
|
4
4
|
|
5
5
|
|
6
|
+
### Added
|
7
|
+
|
8
|
+
- Add CSV as default acronym (via #43) (@waiting-for-dev)
|
9
|
+
|
10
|
+
### Changed
|
11
|
+
|
12
|
+
- Extra dashes are now omitted when converting to camelcase (via #40) (@postmodern)
|
13
|
+
|
14
|
+
[Compare v0.2.1...v0.3.0](https://github.com/dry-rb/dry-inflector/compare/v0.2.1...v0.3.0)
|
15
|
+
|
16
|
+
## 0.2.1 2021-06-30
|
17
|
+
|
18
|
+
|
19
|
+
### Added
|
20
|
+
|
21
|
+
- Add default acronyms: API and CSRF (#35) (@jodosha)
|
22
|
+
|
6
23
|
### Fixed
|
7
24
|
|
8
25
|
- Fix singularizing -us suffix (issue #33 via #38) (@cllns)
|
9
26
|
|
10
27
|
|
11
|
-
[Compare v0.2.0...
|
28
|
+
[Compare v0.2.0...v0.2.1](https://github.com/dry-rb/dry-inflector/compare/v0.2.0...v0.2.1)
|
12
29
|
|
13
30
|
## 0.2.0 2019-10-13
|
14
31
|
|
15
32
|
|
16
33
|
### Added
|
17
34
|
|
18
|
-
- [Abinoam P. Marques Jr. & Andrii Savchenko] Introduced `Dry::Inflector#camelize_upper` and `Dry::Inflector#camelize_lower`. `Dry::Inflector#camelize` is now an alias for `Dry::Inflector#camelize_upper`.
|
19
|
-
- ```ruby
|
20
|
-
- inflector.camelize_upper("data_mapper") # => "DataMapper"
|
21
|
-
- inflector.camelize_lower("data_mapper") # => "dataMapper"
|
22
|
-
- ```
|
35
|
+
- [Abinoam P. Marques Jr. & Andrii Savchenko] Introduced `Dry::Inflector#camelize_upper` and `Dry::Inflector#camelize_lower`. `Dry::Inflector#camelize` is now an alias for `Dry::Inflector#camelize_upper`. ```ruby inflector.camelize_upper("data_mapper") # => "DataMapper"' inflector.camelize_lower("data_mapper") # => "dataMapper"' ```
|
23
36
|
|
24
37
|
### Fixed
|
25
38
|
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
[![CI Status](https://github.com/dry-rb/dry-inflector/workflows/ci/badge.svg)][actions]
|
12
12
|
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/00339f2fb77840149f999cac6110c8a8)][codacy]
|
13
13
|
[![Codacy Badge](https://api.codacy.com/project/badge/Coverage/00339f2fb77840149f999cac6110c8a8)][codacy]
|
14
|
-
[![Inline docs](http://inch-ci.org/github/dry-rb/dry-inflector.svg?branch=
|
14
|
+
[![Inline docs](http://inch-ci.org/github/dry-rb/dry-inflector.svg?branch=main)][inchpages]
|
15
15
|
|
16
16
|
## Links
|
17
17
|
|
@@ -22,8 +22,8 @@
|
|
22
22
|
|
23
23
|
This library officially supports the following Ruby versions:
|
24
24
|
|
25
|
-
* MRI `>= 2.
|
26
|
-
*
|
25
|
+
* MRI `>= 2.7.0`
|
26
|
+
* jruby `>= 9.3` (postponed until 2.7 is supported)
|
27
27
|
|
28
28
|
## License
|
29
29
|
|
data/dry-inflector.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-inflector"
|
27
27
|
spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-inflector/issues"
|
28
28
|
|
29
|
-
spec.required_ruby_version = ">= 2.
|
29
|
+
spec.required_ruby_version = ">= 2.7.0"
|
30
30
|
|
31
31
|
# to update dependencies edit project.yml
|
32
32
|
|
@@ -110,7 +110,7 @@ module Dry
|
|
110
110
|
# @since 0.1.2
|
111
111
|
# @api private
|
112
112
|
def self.acronyms(inflect)
|
113
|
-
inflect.acronym(*%w[JSON HTTP OpenSSL HMAC CSRF API])
|
113
|
+
inflect.acronym(*%w[JSON HTTP OpenSSL HMAC CSRF API CSV])
|
114
114
|
end
|
115
115
|
|
116
116
|
private_class_method :plural, :singular, :irregular, :uncountable, :acronyms
|
data/lib/dry/inflector.rb
CHANGED
@@ -102,7 +102,7 @@ module Dry
|
|
102
102
|
# inflector = Dry::Inflector.new
|
103
103
|
# inflector.classify("books") # => "Book"
|
104
104
|
def classify(input)
|
105
|
-
camelize(singularize(input.to_s.
|
105
|
+
camelize(singularize(input.to_s.split(".").last))
|
106
106
|
end
|
107
107
|
|
108
108
|
# Dasherize a string
|
@@ -153,10 +153,10 @@ module Dry
|
|
153
153
|
def humanize(input)
|
154
154
|
input = input.to_s
|
155
155
|
result = inflections.humans.apply_to(input)
|
156
|
-
result.
|
156
|
+
result.delete_suffix!("_id")
|
157
157
|
result.tr!("_", " ")
|
158
|
-
match = /(
|
159
|
-
separator = match ? match[
|
158
|
+
match = /(\W)/.match(result)
|
159
|
+
separator = match ? match[0] : DEFAULT_SEPARATOR
|
160
160
|
result.split(separator).map.with_index { |word, index|
|
161
161
|
inflections.acronyms.apply_to(word, capitalize: index.zero?)
|
162
162
|
}.join(separator)
|
@@ -195,7 +195,7 @@ module Dry
|
|
195
195
|
def ordinalize(number)
|
196
196
|
abs_value = number.abs
|
197
197
|
|
198
|
-
if ORDINALIZE_TH
|
198
|
+
if ORDINALIZE_TH[abs_value % 100]
|
199
199
|
"#{number}th"
|
200
200
|
else
|
201
201
|
case abs_value % 10
|
@@ -260,7 +260,7 @@ module Dry
|
|
260
260
|
# inflector = Dry::Inflector.new
|
261
261
|
# inflector.tableize("Book") # => "books"
|
262
262
|
def tableize(input)
|
263
|
-
input = input.to_s.gsub(
|
263
|
+
input = input.to_s.gsub("::", "_")
|
264
264
|
pluralize(underscore(input))
|
265
265
|
end
|
266
266
|
|
@@ -298,7 +298,7 @@ module Dry
|
|
298
298
|
# @since 0.1.0
|
299
299
|
# @api private
|
300
300
|
def uncountable?(input)
|
301
|
-
|
301
|
+
input.match?(/\A[[:space:]]*\z/) || inflections.uncountables.include?(input.downcase)
|
302
302
|
end
|
303
303
|
|
304
304
|
# @return [String]
|
@@ -314,7 +314,7 @@ module Dry
|
|
314
314
|
|
315
315
|
# @since 0.1.0
|
316
316
|
# @api private
|
317
|
-
ORDINALIZE_TH =
|
317
|
+
ORDINALIZE_TH = {11 => true, 12 => true, 13 => true}.freeze
|
318
318
|
|
319
319
|
# @since 0.1.2
|
320
320
|
# @api private
|
@@ -327,7 +327,7 @@ module Dry
|
|
327
327
|
def internal_camelize(input, upper)
|
328
328
|
input = input.to_s.dup
|
329
329
|
input.sub!(/^[a-z\d]*/) { |match| inflections.acronyms.apply_to(match, capitalize: upper) }
|
330
|
-
input.gsub!(%r{(?:_|(/))([a-z\d]*)}i) do
|
330
|
+
input.gsub!(%r{(?:[_-]|(/))([a-z\d]*)}i) do
|
331
331
|
m1 = Regexp.last_match(1)
|
332
332
|
m2 = Regexp.last_match(2)
|
333
333
|
"#{m1}#{inflections.acronyms.apply_to(m2)}"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-inflector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-07-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -90,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
90
|
requirements:
|
91
91
|
- - ">="
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: 2.
|
93
|
+
version: 2.7.0
|
94
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - ">="
|