simple_symbolize 2.0.2 → 4.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
  SHA256:
3
- metadata.gz: 6b0904a9e68211c27ef36b9f8e05fd2966963db4aff8c875fae76138ce7e08f4
4
- data.tar.gz: 92cf5435b255b07461f0d13bd122d3257f6f869bcf6b95d08d9b67b9805a96c1
3
+ metadata.gz: 69d7f99fc0ead5eeda918161fe2995fb4b58bcd39e297dae0af8d7efceb0b030
4
+ data.tar.gz: e5685b751c32abb542e6599f9677a785d7584be97d0c47a45067125192e0687e
5
5
  SHA512:
6
- metadata.gz: 7670670156db2d4b8b538c52479cb4fc63a2a4f1f2191dc4944849dfd40249450c014d8026984408a0c6cebc13fcd3e0f5a978855edc4f0b30237c0fb9dfb543
7
- data.tar.gz: f82b71d63638bbc6cd8b067bfdc955cb24ee39353746d283afab6591d1a3649e5091916bb3fe2caf92db21e11e5d5bc05ee17d2294194021c5a1eccada7f34c5
6
+ metadata.gz: 196774c36c21335f2699a7db17dbe10e7df3727533b9d53b401c852371d8347aaf900dbea9811e948b23d333b344d44b11bfff4dbce99888e0ac70557f67304d
7
+ data.tar.gz: c7e76fa9f182ad23ccef97ab8e47a40626316369dd2bf187609a292043c0f91a432455399d086b79eb61daf0aa2ba46accc23bab72946a7dd3b47de5d922400e
@@ -18,7 +18,7 @@ jobs:
18
18
  runs-on: ubuntu-latest
19
19
  strategy:
20
20
  matrix:
21
- ruby-version: ['2.7', '3.0', '3.1']
21
+ ruby-version: [ '3.0', '3.1', '3.2' ]
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.7', '3.0', '3.1' ]
12
+ ruby-version: [ '3.0', '3.1', '3.2' ]
13
13
 
14
14
  steps:
15
15
  - uses: actions/checkout@v2
data/.rubocop.yml CHANGED
@@ -1,5 +1,33 @@
1
- inherit_from: .rubocop_todo.yml
2
-
3
1
  AllCops:
4
2
  NewCops: enable
5
- SuggestExtensions: false
3
+ SuggestExtensions: false
4
+ TargetRubyVersion: 3.0
5
+
6
+ Gemspec/DevelopmentDependencies:
7
+ EnforcedStyle: gemspec
8
+
9
+ Gemspec/RequireMFA:
10
+ Enabled: false
11
+
12
+ Metrics/BlockLength:
13
+ Max: 120
14
+ Exclude:
15
+ - spec/**/*.rb
16
+
17
+ Style/MixinUsage:
18
+ Enabled: false
19
+
20
+ Lint/BooleanSymbol:
21
+ Enabled: false
22
+
23
+ Metrics/AbcSize:
24
+ Enabled: false
25
+
26
+ Metrics/MethodLength:
27
+ Max: 25
28
+
29
+ Layout/LineLength:
30
+ Max: 130
31
+
32
+ Metrics/CyclomaticComplexity:
33
+ Max: 8
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.2.2
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in simple_symbolize.gemspec
data/README.md CHANGED
@@ -17,7 +17,7 @@ It works by removing special characters in a String like `'!'` and underscoring
17
17
  'hello world!'.to_sym # => :"hello world!"
18
18
 
19
19
  # Symbolize gem
20
- 'hello world!'.symbolize # => :hello_world
20
+ 'hello world!'.simple_symbolize # => :hello_world
21
21
  ```
22
22
 
23
23
  ## Installation
@@ -53,7 +53,9 @@ SimpleSymbolize.symbolize('hello world!') # => :hello_world
53
53
  ```ruby
54
54
  require 'simple_symbolize'
55
55
 
56
- 'hello world!'.symbolize # => :hello_world
56
+ String.include SimpleSymbolize::CoreExt::String
57
+
58
+ 'hello world!'.simple_symbolize # => :hello_world
57
59
  ```
58
60
 
59
61
  ## Configuration
@@ -64,40 +66,85 @@ No sweat, you can configure this gem to underscore and remove to your hearts con
64
66
 
65
67
  ```ruby
66
68
  SimpleSymbolize.translate do |trans|
67
- trans.to_underscore('!')
68
- trans.to_remove(' ')
69
- trans.to_omit('@')
69
+ trans.to_underscore = '!'
70
+ trans.to_remove = ' '
71
+ trans.to_omit = '@'
70
72
  end
71
73
  ```
72
74
 
73
75
  ## Updates!
74
76
 
75
- V1.1: SimpleSymbolize has got new friends!
77
+ ### V4
78
+ #### String methods now need to be Mixed in
76
79
 
77
- Introducing `elementize` and `camelize`.
80
+ SimpleSymbolize is safe to use with other gems, particularly the popular ActiveSupport gem which SimpleSymbolize use to share
81
+ certain methods names with.
78
82
 
79
- ### Elementize
83
+ You now need to deliberatly mixin the methods on the String class:
80
84
 
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.
85
+ ```ruby
86
+ String.include SimpleSymbolize::CoreExt::String
87
+ ```
83
88
 
84
- #### Example
89
+ To make them easier to spot, the method names on the String class have been prefixed with `simple_` to avoid confusion.
85
90
 
86
91
  ```ruby
87
- elementize('hello world!') # => "hello_world"
92
+ 'Hello World!'.simple_symbolize #=> :hello_world
93
+ 'Hello World!'.simple_elementize #=> 'hello_world'
94
+ 'Hello World!'.simple_camelize #=> :helloWorld
95
+ 'Hello World!'.simple_snakeize #=> :hello_world
88
96
  ```
89
97
 
90
- ### Camelize
98
+ #### Introducing #snakeize
91
99
 
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.
100
+ The `#snakeize` method will return your object in snake_case.
101
+ This is the default behaviour of the `#symbolize` method however `#snakeize` will always return thr Symbol in snake_case.
94
102
 
95
- #### Example
103
+ ### V3
104
+ #### String to_snake_case [DEPRECATED - replaced with `#simple_snakeize` in v4]
105
+
106
+ `#to_snake_case` extends the String class to return you your String object in snake_case format.
107
+
108
+ #### Handle camelCase with Symbolize
109
+
110
+ ```ruby
111
+ SimpleSymbolize.symbolize('helloWorld!') # => :hello_world
112
+ ```
113
+
114
+ This is the default behaviour and can be switched off by setting `#handle_camel_case` to `false`
115
+
116
+ ```ruby
117
+ SimpleSymbolize.translate { |trans| trans.handle_camel_case = false }
118
+ ```
119
+
120
+ #### Additional ways to configure SimpleSymbolize
121
+
122
+ Arrays are now supported when configuring the gem
123
+
124
+ ```ruby
125
+ SimpleSymbolize.translate { |trans| trans.to_underscore = %w[!&*] }
126
+ ```
127
+
128
+ ### V2
129
+
130
+ SimpleSymbolize has got new friends!
131
+
132
+ Introducing `elementize` and `camelize`.
133
+
134
+ #### Elementize
135
+
136
+ Sometimes you just want a simple String obj without all the fuss. Elementize takes your String obj, removes that fuss
137
+ and returns you a simple-to-use String.
96
138
 
97
139
  ```ruby
98
- camelize('hello world!') # => :helloWorld
140
+ SimpleSymbolize.elementize('hello world!') # => "hello_world"
99
141
  ```
100
142
 
143
+ #### Camelize
144
+
145
+ Great for working with APIs that require fields in a JSON format. Camelize clears away the clutter and returns you
146
+ a Symbolized object in camelCase.
147
+
101
148
  [comment]: <> (## Contributing)
102
149
 
103
150
  [comment]: <> (Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/simple_symbolize.)
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
data/bin/console CHANGED
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'simple_symbolize'
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Extends the String class by mixing in the symbolize module.
4
+ # @example Mixin the methods to the String class
5
+ # String.include SimpleSymbolize::CoreExt::String
6
+
7
+ module SimpleSymbolize
8
+ module CoreExt
9
+ # Contains methods to be mixed into the String class
10
+ module String
11
+ # @example Symbolize a string using the String object method
12
+ # "hello world!".symbolize #=> :hello_world
13
+ def simple_symbolize
14
+ SimpleSymbolize.symbolize(self)
15
+ end
16
+
17
+ # @example Turns a String into a camelCase Symbol
18
+ # "Hello World".simple_camelize => :helloWorld
19
+ def simple_camelize
20
+ SimpleSymbolize.camelize(self)
21
+ end
22
+
23
+ # @example Symbolizes a String then calls #to_s
24
+ # "helloWorld".simple_elementize => 'hello_word'
25
+ def simple_elementize
26
+ SimpleSymbolize.elementize(self)
27
+ end
28
+
29
+ # @example Turns a String into it's snake_case equivalent
30
+ # "helloWorld".simple_snakeize => 'hello_word'
31
+ def simple_snakeize
32
+ SimpleSymbolize.snakeize(self)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,68 +1,93 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleSymbolize
2
4
  # The translations class holds the attributes used to transform a String object.
3
5
  # It also provides helper methods to manipulate those attributes.
4
6
  class Translations
5
7
  # @return [Array] the characters to be transformed into underscores.
6
- attr_accessor :underscore
8
+ attr_reader :underscore
7
9
  # @return [Array] the characters to be removed from the String.
8
- attr_accessor :remove
10
+ attr_reader :remove
9
11
  # @return [Array] the characters to be untouched from the String.
10
- attr_accessor :omit
12
+ attr_reader :omit
13
+
14
+ attr_reader :handle_camel_case
11
15
 
12
16
  # Creates an instance of the Translations class.
13
17
  #
14
18
  # Sets the class variables to a default state.
15
19
  def initialize
16
- @underscore = [' ']
17
- @remove = %w[\' ( ) , . : "]
18
- @omit = []
20
+ reset!
19
21
  end
20
22
 
21
23
  # Merges the String passed with the @underscore Array omitting duplicates.
22
- # Removes those characters from the @remove ans @omit Arrays to avoid the change being over-written.
24
+ # Removes those characters from the @remove and @omit Arrays to avoid the change being over-written.
23
25
  #
24
- # @param t [String] a String object containing characters to be underscored.
26
+ # @param chars [Array] an object containing characters to be underscored.
25
27
  #
26
28
  # @return [Array] the Array of characters to be underscored.
27
- #
28
- # @raise [ArgumentError] if the param does not respond to #to_s.
29
- def to_underscore(t)
30
- raise ArgumentError 'needs to be a String or respond to #to_s' unless t.respond_to?(:to_s)
29
+ def to_underscore=(chars)
30
+ chars = sanitise_chars(chars)
31
31
 
32
- @remove -= t.to_s.chars
33
- @omit -= t.to_s.chars
34
- @underscore |= t.to_s.chars
32
+ @remove -= chars
33
+ @omit -= chars
34
+ @underscore |= chars
35
35
  end
36
36
 
37
37
  # Merges the String passed with the @remove Array omitting duplicates.
38
38
  # Removes those characters from the @underscore and @omit Arrays to avoid the change being over-written.
39
39
  #
40
- # @param t [String] a String object containing characters to be removed.
40
+ # @param chars [String] a String object containing characters to be removed.
41
41
  #
42
42
  # @return [Array] the Array of characters to be removed.
43
- #
44
- # @raise [ArgumentError] if the param does not respond to #to_s.
45
- def to_remove(t)
46
- raise ArgumentError 'needs to be a String or respond to #to_s' unless t.respond_to?(:to_s)
43
+ def to_remove=(chars)
44
+ chars = sanitise_chars(chars)
47
45
 
48
- @underscore -= t.to_s.chars
49
- @omit -= t.to_s.chars
50
- @remove |= t.to_s.chars
46
+ @underscore -= chars
47
+ @omit -= chars
48
+ @remove |= chars
51
49
  end
52
50
 
53
51
  # Removes characters within the String passed from the @remove and @underscore Arrays.
54
52
  #
55
- # @param t [String] a String object containing characters to be removed.
53
+ # @param chars [String] a String object containing characters to be removed.
56
54
  #
57
55
  # @return [Array] the Array of characters to be omitted.
56
+ def to_omit=(chars)
57
+ chars = sanitise_chars(chars)
58
+
59
+ @underscore -= chars
60
+ @remove -= chars
61
+ @omit += chars
62
+ end
63
+
64
+ def handle_camel_case=(handle)
65
+ handle = handle.to_s.downcase
66
+ raise ArgumentError 'needs to be either `true` or `false`' unless %w[true false].include?(handle)
67
+
68
+ @handle_camel_case = handle.eql?('true')
69
+ end
70
+
71
+ def reset!
72
+ @underscore = [' ', '::', '-']
73
+ @remove = %w[' ( ) , . : " ! @ £ $ % ^ & * / { } [ ] < > ; = #]
74
+ @omit = []
75
+ @handle_camel_case = true
76
+ end
77
+
78
+ private
79
+
80
+ # Converts chars into Array of Strings
81
+ #
82
+ # @param arg Arg to be converted
83
+ #
84
+ # @return Array of Strings
58
85
  #
59
- # @raise [ArgumentError] if the param does not respond to #to_s.
60
- def to_omit(t)
61
- raise ArgumentError 'needs to be a String or respond to #to_s' unless t.respond_to?(:to_s)
86
+ # @raise [ArgumentError] if the arg is not either a String or an Array.
87
+ def sanitise_chars(arg)
88
+ raise ArgumentError 'needs to be a String or an Array of characters' unless [String, Array].include?(arg.class)
62
89
 
63
- @underscore -= t.to_s.chars
64
- @remove -= t.to_s.chars
65
- @omit += t.to_s.chars
90
+ arg.respond_to?(:chars) ? arg.chars : arg.map(&:to_s)
66
91
  end
67
92
  end
68
93
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SimpleSymbolize
2
- VERSION = '2.0.2'.freeze
4
+ VERSION = '4.0.0'
3
5
  end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'simple_symbolize/version'
2
4
 
3
- require_relative 'simple_symbolize/string'
4
5
  require_relative 'simple_symbolize/translations'
6
+ require_relative 'simple_symbolize/core_ext/string/symbolize'
5
7
 
6
- include SimpleSymbolize
7
-
8
+ # Main module for the gem
9
+ # Contains the base methods and allows configuration
8
10
  module SimpleSymbolize
9
11
  class Error < StandardError; end
10
12
 
@@ -18,46 +20,80 @@ module SimpleSymbolize
18
20
  # Configures the Symbolize environment.
19
21
  #
20
22
  # @yieldparam [Translations] config the translations object yielded to the block.
21
- def self.translate(&block)
22
- yield translations
23
+ def self.translate
24
+ yield(translations) if block_given?
23
25
  end
24
26
 
25
27
  # Symbolizes a String object.
26
28
  #
27
- # @param str [String] the String object to be symbolized.
29
+ # @param obj [Object] the String object to be symbolized.
28
30
  #
29
31
  # @example Symbolize a string using the symbolize method
30
- # symbolize("hello world!") #=> :hello_world
31
- def symbolize(str)
32
- return str if str.is_a?(Symbol) || str.nil?
32
+ # SimpleSymbolize.symbolize("hello world!") #=> :hello_world
33
+ def self.symbolize(obj)
34
+ return obj unless obj.respond_to?(:to_s)
35
+ return obj if [Hash, Array, NilClass].include?(obj.class)
36
+ return obj if obj.respond_to?(:empty?) && obj.empty?
33
37
 
34
- str.to_s.downcase.tr(SimpleSymbolize.translations.underscore.join, '_')
35
- &.tr(SimpleSymbolize.translations.remove.join, '')&.to_sym
38
+ obj = if SimpleSymbolize.translations.handle_camel_case
39
+ snakeize(obj)
40
+ else
41
+ obj.to_s
42
+ .downcase
43
+ .gsub(Regexp.union(SimpleSymbolize.translations.underscore), '_')
44
+ .gsub(Regexp.union(SimpleSymbolize.translations.remove), '')
45
+ end
46
+ obj.to_sym
36
47
  end
37
48
 
38
49
  # Symbolizes a String object and returns it as a String object.
39
50
  #
40
- # @param str [String] the String object to be symbolized.
51
+ # @param obj [Object] the object to be symbolized.
41
52
  #
42
53
  # @example Elementize a string using the elementize method
43
- # elementize("hello world!") #=> "helloWorld"
44
- def elementize(str)
45
- return str unless str.is_a?(Symbol) || str.is_a?(String)
54
+ # SimpleSymbolize.elementize("hello world!") #=> "helloWorld"
55
+ def self.elementize(obj)
56
+ return obj unless obj.respond_to?(:to_s)
57
+ return obj if [Hash, Array, NilClass].include?(obj.class)
58
+ return obj if obj.respond_to?(:empty?) && obj.empty?
46
59
 
47
- symbolize(str).to_s
60
+ symbolize(obj).to_s
48
61
  end
49
62
 
50
63
  # Turns a String object into a camelCase Symbol.
51
64
  #
52
- # @param str [String] the String object to be camelized.
65
+ # @param obj [Object] the String object to be camelized.
53
66
  #
54
67
  # @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 symbolize(str) if str.is_a?(String) && (str.split(/[_ ]/).size <= 1)
68
+ # SimpleSymbolize.camelize("hello world!") #=> :helloWorld
69
+ def self.camelize(obj)
70
+ return obj unless obj.respond_to?(:to_s)
71
+ return obj if [Hash, Array, NilClass].include?(obj.class)
72
+ return obj if obj.respond_to?(:empty?) && obj.empty?
73
+
74
+ first, *rest = elementize(obj).split('_')
75
+ return obj if first.nil?
76
+
77
+ rest.size.positive? ? (first << rest.map(&:capitalize).join).to_sym : symbolize(first)
78
+ end
79
+
80
+ # Turns a String || Symbol into a snake_case Symbol
81
+ #
82
+ # @param obj [Object] the object to be snakeize
83
+ #
84
+ # @example Snakeize an object using the snakeize method
85
+ # SimpleSymbolize.snakeize('Hello World!') #=> :hello_world
86
+ def self.snakeize(obj)
87
+ return obj unless obj.respond_to?(:to_s)
88
+ return obj if [Hash, Array, NilClass].include?(obj.class)
89
+ return obj if obj.respond_to?(:empty?) && obj.empty?
59
90
 
60
- first, *rest = elementize(str).split('_')
61
- rest ? (first << rest.map(&:capitalize).join).to_sym : symbolize(first)
91
+ obj.to_s
92
+ .gsub(Regexp.union(SimpleSymbolize.translations.underscore), '_')
93
+ .gsub(Regexp.union(SimpleSymbolize.translations.remove), '')
94
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
95
+ .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
96
+ .downcase
97
+ .to_sym
62
98
  end
63
99
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'lib/simple_symbolize/version'
2
4
 
3
5
  Gem::Specification.new do |spec|
4
6
  spec.name = 'simple_symbolize'
5
7
  spec.version = SimpleSymbolize::VERSION
6
- spec.authors = ['alexo']
8
+ spec.authors = ['alexo', 'Driver and Vehicle Licensing Agency (DVLA)']
7
9
  spec.email = ['']
8
10
 
9
11
  spec.summary = 'Turns Strings into Symbols.'
@@ -14,13 +16,10 @@ Gem::Specification.new do |spec|
14
16
  spec.homepage = 'https://github.com/dvla/simple-symbolize'
15
17
 
16
18
  spec.license = 'MIT'
17
- spec.required_ruby_version = Gem::Requirement.new('>= 2.7.0')
18
-
19
- # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
19
+ spec.required_ruby_version = Gem::Requirement.new('>= 3.0')
20
20
 
21
21
  spec.metadata['homepage_uri'] = spec.homepage
22
22
  spec.metadata['source_code_uri'] = spec.homepage
23
- # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
24
23
 
25
24
  # Specify which files should be added to the gem when it is released.
26
25
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -32,7 +31,8 @@ Gem::Specification.new do |spec|
32
31
  spec.require_paths = ['lib']
33
32
 
34
33
  spec.add_development_dependency 'pry', '~> 0.14'
35
- spec.add_development_dependency 'rake', '~> 12.0'
36
- spec.add_development_dependency 'rspec', '~> 3.2'
37
- spec.add_development_dependency 'rubocop', '~> 1.29.0'
34
+ spec.add_development_dependency 'rake', '~> 13.0'
35
+ spec.add_development_dependency 'rspec', '~> 3.12'
36
+ spec.add_development_dependency 'rubocop', '~> 1.54'
37
+ spec.add_development_dependency 'simplecov', '~> 0.22'
38
38
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_symbolize
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - alexo
8
+ - Driver and Vehicle Licensing Agency (DVLA)
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2022-09-28 00:00:00.000000000 Z
12
+ date: 2024-01-12 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: pry
@@ -30,42 +31,56 @@ dependencies:
30
31
  requirements:
31
32
  - - "~>"
32
33
  - !ruby/object:Gem::Version
33
- version: '12.0'
34
+ version: '13.0'
34
35
  type: :development
35
36
  prerelease: false
36
37
  version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
39
  - - "~>"
39
40
  - !ruby/object:Gem::Version
40
- version: '12.0'
41
+ version: '13.0'
41
42
  - !ruby/object:Gem::Dependency
42
43
  name: rspec
43
44
  requirement: !ruby/object:Gem::Requirement
44
45
  requirements:
45
46
  - - "~>"
46
47
  - !ruby/object:Gem::Version
47
- version: '3.2'
48
+ version: '3.12'
48
49
  type: :development
49
50
  prerelease: false
50
51
  version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
53
  - - "~>"
53
54
  - !ruby/object:Gem::Version
54
- version: '3.2'
55
+ version: '3.12'
55
56
  - !ruby/object:Gem::Dependency
56
57
  name: rubocop
57
58
  requirement: !ruby/object:Gem::Requirement
58
59
  requirements:
59
60
  - - "~>"
60
61
  - !ruby/object:Gem::Version
61
- version: 1.29.0
62
+ version: '1.54'
62
63
  type: :development
63
64
  prerelease: false
64
65
  version_requirements: !ruby/object:Gem::Requirement
65
66
  requirements:
66
67
  - - "~>"
67
68
  - !ruby/object:Gem::Version
68
- version: 1.29.0
69
+ version: '1.54'
70
+ - !ruby/object:Gem::Dependency
71
+ name: simplecov
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '0.22'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0.22'
69
84
  description: 'simple_symbolize will remove special characters from a String, replacing
70
85
  whitespace with an underscore, down-casing and finally calling the #to_sym String
71
86
  method. Configure this gem to your hearts content!'
@@ -80,7 +95,7 @@ files:
80
95
  - ".gitignore"
81
96
  - ".rspec"
82
97
  - ".rubocop.yml"
83
- - ".rubocop_todo.yml"
98
+ - ".ruby-version"
84
99
  - Gemfile
85
100
  - LICENSE.txt
86
101
  - README.md
@@ -88,7 +103,7 @@ files:
88
103
  - bin/console
89
104
  - bin/setup
90
105
  - lib/simple_symbolize.rb
91
- - lib/simple_symbolize/string.rb
106
+ - lib/simple_symbolize/core_ext/string/symbolize.rb
92
107
  - lib/simple_symbolize/translations.rb
93
108
  - lib/simple_symbolize/version.rb
94
109
  - simple_symbolize.gemspec
@@ -106,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
106
121
  requirements:
107
122
  - - ">="
108
123
  - !ruby/object:Gem::Version
109
- version: 2.7.0
124
+ version: '3.0'
110
125
  required_rubygems_version: !ruby/object:Gem::Requirement
111
126
  requirements:
112
127
  - - ">="
data/.rubocop_todo.yml DELETED
@@ -1,82 +0,0 @@
1
- # This configuration was generated by
2
- # `rubocop --auto-gen-config`
3
- # on 2022-05-20 09:59:54 UTC using RuboCop version 1.29.1.
4
- # The point is for the user to remove these configuration records
5
- # one by one as the offenses are removed from the code base.
6
- # Note that changes in the inspected code, or installation of new
7
- # versions of RuboCop, may require this file to be generated again.
8
-
9
- # Offense count: 1
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).
26
- # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
27
- Lint/UnusedMethodArgument:
28
- Exclude:
29
- - 'lib/simple_symbolize.rb'
30
-
31
- # Offense count: 1
32
- # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
33
- # IgnoredMethods: refine
34
- Metrics/BlockLength:
35
- Max: 88
36
-
37
- # Offense count: 3
38
- # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
39
- # AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
40
- Naming/MethodParameterName:
41
- Exclude:
42
- - 'lib/simple_symbolize/translations.rb'
43
-
44
- # Offense count: 1
45
- # Configuration parameters: AllowedConstants.
46
- Style/Documentation:
47
- Exclude:
48
- - 'spec/**/*'
49
- - 'test/**/*'
50
- - 'lib/simple_symbolize.rb'
51
-
52
- # Offense count: 10
53
- # This cop supports safe auto-correction (--auto-correct).
54
- # Configuration parameters: EnforcedStyle.
55
- # SupportedStyles: always, always_true, never
56
- Style/FrozenStringLiteralComment:
57
- Exclude:
58
- - 'Gemfile'
59
- - 'Rakefile'
60
- - 'bin/console'
61
- - 'lib/simple_symbolize.rb'
62
- - 'lib/simple_symbolize/string.rb'
63
- - 'lib/simple_symbolize/translations.rb'
64
- - 'lib/simple_symbolize/version.rb'
65
- - 'simple_symbolize.gemspec'
66
- - 'spec/simple_symbolize_spec.rb'
67
- - 'spec/spec_helper.rb'
68
-
69
- # Offense count: 1
70
- Style/MixinUsage:
71
- Exclude:
72
- - 'lib/simple_symbolize.rb'
73
-
74
- # Offense count: 2
75
- Lint/BooleanSymbol:
76
- Exclude:
77
- - 'spec/simple_symbolize_spec.rb'
78
-
79
- # Offense count: 2
80
- Metrics/BlockLength:
81
- Exclude:
82
- - 'spec/simple_symbolize_spec.rb'
@@ -1,10 +0,0 @@
1
- require 'simple_symbolize'
2
-
3
- # Extends the String class by mixing in the symbolize module.
4
- class String
5
- # @example Symbolize a string using the String object method
6
- # "hello world!".symbolize #=> :hello_world
7
- def symbolize
8
- SimpleSymbolize.symbolize(self)
9
- end
10
- end