simple_symbolize 1.0.1 → 2.0.0

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: 07aae9ef22a012d4b461cac6145bd8c1a9a12310473d000d1618a23cf53db064
4
- data.tar.gz: b18868b5d50109402449b3c92c98ca6246ecdefe66d979c50bd5902936b57c19
3
+ metadata.gz: 1e23023a3bb1c8d394ba3059e5e72d0fef3480b5c0f09900aa9d00e61d784058
4
+ data.tar.gz: 557b65ea91d5db0400dd5aa23b66894d9fe5576962bfc7c1bf9895337ccfc093
5
5
  SHA512:
6
- metadata.gz: f03737f6f4d6a4fa170a1ffe3b685ea8f2c10899f3c125a50595b265479131e0b52cd1ea6ae25cbf7ebdeb6be237487e42e23fd104546fd68f3968bce1fc30fa
7
- data.tar.gz: 27e9c7e2e6fea1d041d02b082cde749767577ec71bca85a6ba0033e93aa21914e6e6f8ad200679671267d2af54e5ab4d699cf59592aa6744d12907c80a3a81e3
6
+ metadata.gz: 67ef8dd2fa3215f422fe90ec76f86da67a61f6801a3f6cc1ef9cfb763136d2fe52ba561ab0339e80eab120c16ab0c03f1841868abc9101a61d8f55d45fd3c123
7
+ data.tar.gz: e330593b6aae61ad7ed11e6c82a7e9be6b3292d25847e69eafef9218583eaec787b9127e15447f8ca5f0c3d628b459909b5eb46f5a9414ca13f8b7daf0a36acd
@@ -18,7 +18,7 @@ jobs:
18
18
  runs-on: ubuntu-latest
19
19
  strategy:
20
20
  matrix:
21
- ruby-version: ['2.6', '2.7', '3.0']
21
+ ruby-version: ['2.7', '3.0', '3.1']
22
22
 
23
23
  steps:
24
24
  - uses: actions/checkout@v2
@@ -9,7 +9,7 @@ jobs:
9
9
  runs-on: ubuntu-latest
10
10
  strategy:
11
11
  matrix:
12
- ruby-version: [ '2.6', '2.7', '3.0' ]
12
+ ruby-version: [ '2.7', '3.0', '3.1' ]
13
13
 
14
14
  steps:
15
15
  - uses: actions/checkout@v2
@@ -25,7 +25,6 @@ jobs:
25
25
 
26
26
  deploy:
27
27
  needs: test
28
- name: Build + Publish
29
28
  runs-on: ubuntu-latest
30
29
  permissions:
31
30
  packages: write
data/.gitignore CHANGED
@@ -10,3 +10,4 @@
10
10
  *.gem
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
+ Gemfile.lock
data/.rubocop_todo.yml CHANGED
@@ -1,13 +1,28 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2021-06-29 14:23:53 UTC using RuboCop version 1.18.0.
3
+ # on 2022-05-20 09:59:54 UTC using RuboCop version 1.29.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
9
  # Offense count: 1
10
- # Cop supports --auto-correct.
10
+ # This cop supports safe auto-correction (--auto-correct).
11
+ # Configuration parameters: Include.
12
+ # Include: **/*.gemspec
13
+ Gemspec/RequireMFA:
14
+ Exclude:
15
+ - 'simple_symbolize.gemspec'
16
+
17
+ # Offense count: 1
18
+ # Configuration parameters: Include.
19
+ # Include: **/*.gemspec
20
+ Gemspec/RequiredRubyVersion:
21
+ Exclude:
22
+ - 'simple_symbolize.gemspec'
23
+
24
+ # Offense count: 1
25
+ # This cop supports safe auto-correction (--auto-correct).
11
26
  # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
12
27
  Lint/UnusedMethodArgument:
13
28
  Exclude:
@@ -35,7 +50,7 @@ Style/Documentation:
35
50
  - 'lib/simple_symbolize.rb'
36
51
 
37
52
  # Offense count: 10
38
- # Cop supports --auto-correct.
53
+ # This cop supports safe auto-correction (--auto-correct).
39
54
  # Configuration parameters: EnforcedStyle.
40
55
  # SupportedStyles: always, always_true, never
41
56
  Style/FrozenStringLiteralComment:
@@ -51,17 +66,7 @@ Style/FrozenStringLiteralComment:
51
66
  - 'spec/simple_symbolize_spec.rb'
52
67
  - 'spec/spec_helper.rb'
53
68
 
69
+ # Offense count: 1
54
70
  Style/MixinUsage:
55
71
  Exclude:
56
72
  - 'lib/simple_symbolize.rb'
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
data/README.md CHANGED
@@ -70,6 +70,34 @@ SimpleSymbolize.translate do |trans|
70
70
  end
71
71
  ```
72
72
 
73
+ ## Updates!
74
+
75
+ V1.1: SimpleSymbolize has got new friends!
76
+
77
+ Introducing `elementize` and `camelize`.
78
+
79
+ ### Elementize
80
+
81
+ Sometimes you just want a simple String obj without all the fuss. Elementize takes your String obj, removes that fuss
82
+ and returns you a simple-to-use String.
83
+
84
+ #### Example
85
+
86
+ ```ruby
87
+ elementize('hello world!') # => "hello_world"
88
+ ```
89
+
90
+ ### Camelize
91
+
92
+ Great for working with APIs that require fields in a JSON format. Camelize clears away the clutter and returns you
93
+ a Symbolized object in camelCase.
94
+
95
+ #### Example
96
+
97
+ ```ruby
98
+ camelize('hello world!') # => :helloWorld
99
+ ```
100
+
73
101
  [comment]: <> (## Contributing)
74
102
 
75
103
  [comment]: <> (Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/simple_symbolize.)
@@ -1,3 +1,3 @@
1
1
  module SimpleSymbolize
2
- VERSION = '1.0.1'.freeze
2
+ VERSION = '2.0.0'.freeze
3
3
  end
@@ -34,4 +34,30 @@ module SimpleSymbolize
34
34
  str.downcase.tr(SimpleSymbolize.translations.underscore.join, '_')
35
35
  &.tr(SimpleSymbolize.translations.remove.join, '')&.to_sym
36
36
  end
37
+
38
+ # Symbolizes a String object and returns it as a String object.
39
+ #
40
+ # @param str [String] the String object to be symbolized.
41
+ #
42
+ # @example Symbolize a string using the camelize method
43
+ # elementize("hello world!") #=> "helloWorld"
44
+ def elementize(str)
45
+ return str unless str.is_a?(Symbol) || str.is_a?(String)
46
+
47
+ symbolize(str).to_s
48
+ end
49
+
50
+ # Turns a String object into a camelCase Symbol.
51
+ #
52
+ # @param str [String] the String object to be camelized.
53
+ #
54
+ # @example Camelize a string using the camelize method
55
+ # camelize("hello world!") #=> :helloWorld
56
+ def camelize(str)
57
+ return str unless str.is_a?(String) || str.is_a?(Symbol)
58
+ return str.to_sym if str.is_a?(String) && (str.split(/[_ ]/).size <= 1)
59
+
60
+ first, *rest = elementize(str).split('_')
61
+ rest ? (first << rest.map(&:capitalize).join).to_sym : first.to_sym
62
+ end
37
63
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = 'https://github.com/dvla/simple-symbolize'
15
15
 
16
16
  spec.license = 'MIT'
17
- spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
17
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
18
18
 
19
19
  # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
20
20
 
@@ -33,5 +33,5 @@ Gem::Specification.new do |spec|
33
33
 
34
34
  spec.add_development_dependency 'rake', '~> 12.0'
35
35
  spec.add_development_dependency 'rspec', '~> 3.2'
36
- spec.add_development_dependency 'rubocop', '~> 1.18.0'
36
+ spec.add_development_dependency 'rubocop', '~> 1.29.0'
37
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_symbolize
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - alexo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-07-01 00:00:00.000000000 Z
11
+ date: 2022-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.18.0
47
+ version: 1.29.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.18.0
54
+ version: 1.29.0
55
55
  description: 'simple_symbolize will remove special characters from a String, replacing
56
56
  whitespace with an underscore, down-casing and finally calling the #to_sym String
57
57
  method. Configure this gem to your hearts content!'
@@ -68,7 +68,6 @@ files:
68
68
  - ".rubocop.yml"
69
69
  - ".rubocop_todo.yml"
70
70
  - Gemfile
71
- - Gemfile.lock
72
71
  - LICENSE.txt
73
72
  - README.md
74
73
  - Rakefile
@@ -93,7 +92,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - ">="
95
94
  - !ruby/object:Gem::Version
96
- version: 2.5.0
95
+ version: 2.7.0
97
96
  required_rubygems_version: !ruby/object:Gem::Requirement
98
97
  requirements:
99
98
  - - ">="
data/Gemfile.lock DELETED
@@ -1,55 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- simple_symbolize (1.0.1)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- ast (2.4.2)
10
- diff-lcs (1.4.4)
11
- parallel (1.20.1)
12
- parser (3.0.1.1)
13
- ast (~> 2.4.1)
14
- rainbow (3.0.0)
15
- rake (12.3.3)
16
- regexp_parser (2.1.1)
17
- rexml (3.2.5)
18
- rspec (3.10.0)
19
- rspec-core (~> 3.10.0)
20
- rspec-expectations (~> 3.10.0)
21
- rspec-mocks (~> 3.10.0)
22
- rspec-core (3.10.1)
23
- rspec-support (~> 3.10.0)
24
- rspec-expectations (3.10.1)
25
- diff-lcs (>= 1.2.0, < 2.0)
26
- rspec-support (~> 3.10.0)
27
- rspec-mocks (3.10.2)
28
- diff-lcs (>= 1.2.0, < 2.0)
29
- rspec-support (~> 3.10.0)
30
- rspec-support (3.10.2)
31
- rubocop (1.18.0)
32
- parallel (~> 1.10)
33
- parser (>= 3.0.0.0)
34
- rainbow (>= 2.2.2, < 4.0)
35
- regexp_parser (>= 1.8, < 3.0)
36
- rexml
37
- rubocop-ast (>= 1.7.0, < 2.0)
38
- ruby-progressbar (~> 1.7)
39
- unicode-display_width (>= 1.4.0, < 3.0)
40
- rubocop-ast (1.7.0)
41
- parser (>= 3.0.1.1)
42
- ruby-progressbar (1.11.0)
43
- unicode-display_width (2.0.0)
44
-
45
- PLATFORMS
46
- ruby
47
-
48
- DEPENDENCIES
49
- rake (~> 12.0)
50
- rspec (~> 3.2)
51
- rubocop (~> 1.18.0)
52
- simple_symbolize!
53
-
54
- BUNDLED WITH
55
- 2.2.15