Skip to content

Commit e4aceb2

Browse files
authored
Merge pull request #15 from benSlaughter/add-kebab-case
Add kebab case. Version 1.3.0.
2 parents fb6f7d7 + 7961c31 commit e4aceb2

7 files changed

Lines changed: 78 additions & 12 deletions

File tree

History.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# History
22
## Released Versions
3+
### Version 1.3.0
4+
#### Minor: Added kebab-case
5+
* Added kebab case tests
6+
* Added kebab case backwards compatibility tests
7+
* Added kebab case method for strings
8+
* Updated split regex to include hyphen
9+
310
### Versions 1.2.0
411
#### Minor: Fixed dependency vulnerabilities
512
* Updated readme
@@ -9,16 +16,16 @@
916

1017

1118
### Version 1.1.0
12-
#### Minor: Added functionality to modify hash keys
19+
#### Minor: Added functionality to modify hash keys
1320
* Added string keys to hash
1421
* Added symbol keys to hash
1522
* Updated fixnum to integer as per rubocop rules
1623

1724
### Version 1.0.0
1825
#### Major: Adding lower option to the camel method
1926
* Adding the lower option for the first character in the "camel" method
20-
* Fixing rubocop offenses
21-
27+
* Fixing rubocop offenses
28+
2229
### Version 0.6.2
2330
#### Patch: Transform keys update
2431
* Updated transform keys method as when used with active record it clashes
@@ -36,7 +43,7 @@
3643
* Fixed camelCase methods
3744
* Fixed several rubocop errors
3845
* Removed .rb from file requires
39-
46+
4047
### Version 0.4.1
4148
#### Patch: Added string modify module
4249
* Added new string methods for updating a string

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,15 @@ false.bool?
9797
'snake_case'.camel
9898
=> 'SnakeCase'
9999

100-
'snake_case'.camel(:lower)
101-
=> 'snakeCase'
100+
'kebab-case'.camel(:lower)
101+
=> 'kebabCase'
102102

103103
'space case'.snake
104104
=> 'space_case'
105105

106106
'CamelCase'.space
107107
=> 'camel case'
108+
109+
'camelCase'.kebab
110+
=> 'camel-case'
108111
```

lib/utilise/augment/modify.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,21 @@ def space
2323
split_up.join(' ')
2424
end
2525

26+
# Returns a string in kebab case
27+
def kebab
28+
split_up.join('-')
29+
end
30+
2631
private
2732

2833
# Splits up the current string into an array and normalises it
2934
def split_up
30-
regex = /(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?=_)|(?= )/
35+
regex = /(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?=[-_ ])/
3136
arr = to_s.split(regex)
3237
arr.map!(&:downcase)
3338
arr.map!(&:strip)
34-
arr.map { |s| s.delete('_') }
39+
arr.map! { |s| s.delete('_') }
40+
arr.map { |s| s.delete('-') }
3541
end
3642
end
3743
end

lib/utilise/version.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# Utilise
22
module Utilise
33
# The current gem version
4-
VERSION = '1.2.0'.freeze
4+
VERSION = '1.3.0'.freeze
55
# The version update date
6-
DATE = '2018-01-03'.freeze
6+
DATE = '2018-08-15'.freeze
77
# Debug output message
88
MSG = 'Version %<version>s %<date>s (running on %<engine>s-%<ruby>s)'.freeze
99

spec/utilise/string_spec.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@
7272
it 'returns a camel case from complex camel case' do
7373
expect('CamelONECase'.camel).to eq 'CamelOneCase'
7474
end
75+
76+
it 'returns a camel case from camel case' do
77+
expect('camel-case'.camel).to eq 'CamelCase'
78+
end
7579
end
7680

7781
context 'lower option' do
@@ -102,6 +106,10 @@
102106
it 'returns a camel case from complex camel case' do
103107
expect('CamelONECase'.camel(:lower)).to eq 'camelOneCase'
104108
end
109+
110+
it 'returns a camel case from camel case' do
111+
expect('camel-case'.camel(:lower)).to eq 'camelCase'
112+
end
105113
end
106114
end
107115

@@ -133,6 +141,10 @@
133141
it 'returns a snake case from complex camel case' do
134142
expect('SnakeONECase'.snake).to eq 'snake_one_case'
135143
end
144+
145+
it 'returns a snake case from snake case' do
146+
expect('snake-case'.snake).to eq 'snake_case'
147+
end
136148
end
137149

138150
describe '#space' do
@@ -163,5 +175,43 @@
163175
it 'returns a space case from complex camel case' do
164176
expect('SpaceONECase'.space).to eq 'space one case'
165177
end
178+
179+
it 'returns a space case from space case' do
180+
expect('space-case'.space).to eq 'space case'
181+
end
182+
end
183+
184+
describe '#kebab' do
185+
it 'returns a kebab case from camel case' do
186+
expect('KebabCase'.kebab).to eq 'kebab-case'
187+
end
188+
189+
it 'returns a kebab case from numeric camel case' do
190+
expect('KebabCase'.kebab).to eq 'kebab-case'
191+
end
192+
193+
it 'returns a kebab case from snake case' do
194+
expect('kebab_case'.kebab).to eq 'kebab-case'
195+
end
196+
197+
it 'returns a kebab case from numeric snake case' do
198+
expect('kebab1_case'.kebab).to eq 'kebab1-case'
199+
end
200+
201+
it 'returns a kebab case from space case' do
202+
expect('kebab case'.kebab).to eq 'kebab-case'
203+
end
204+
205+
it 'returns a kebab case from numeric space case' do
206+
expect('kebab1 case'.kebab).to eq 'kebab1-case'
207+
end
208+
209+
it 'returns a kebab case from complex camel case' do
210+
expect('KebabONECase'.kebab).to eq 'kebab-one-case'
211+
end
212+
213+
it 'returns a kebab case from kebab case' do
214+
expect('kebab-case'.kebab).to eq 'kebab-case'
215+
end
166216
end
167217
end

spec/utilise/version_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
describe Utilise do
44
describe '.version' do
55
it 'should return the current gem version' do
6-
expect(Utilise.version).to eq('1.2.0')
6+
expect(Utilise.version).to eq('1.3.0')
77
end
88

99
it 'should return the current gem version with debug information' do

utilise.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
lib = File.expand_path('../lib', __FILE__)
1+
lib = File.expand_path('lib', __dir__)
22
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
33
require 'utilise/version'
44

0 commit comments

Comments
 (0)