core-extensions 0.0.1
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 +7 -0
- data/lib/core-extensions.rb +4 -0
- data/lib/core-extensions/string.rb +26 -0
- data/lib/core-extensions/symbol.rb +20 -0
- data/lib/core-extensions/version.rb +6 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/spec_string.rb +27 -0
- data/spec/spec_symbol.rb +20 -0
- metadata +125 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2fb3060cecefa82022b625bb0ed76ba75fea81d0
|
4
|
+
data.tar.gz: b71b8c00a5e20791017446bd9d5d6fbcc6c5b632
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 65b5553506d8850568000baff133663689653174e4312d6104fcb3e15beec91a887b183f28ecc329b12ab343d8a899961bf9833f75b541ba878d4bf8e547e422
|
7
|
+
data.tar.gz: f6a83f72cfe910118e26e02cced1615631fea7f1ba50d722c5e12a7ec8b48423b77da0daedae1d018a60f3eb8997c7f39e073f1912ed54022a4232d5f4c05bcf
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#
|
2
|
+
# Core extensions to String class
|
3
|
+
#
|
4
|
+
class String
|
5
|
+
#
|
6
|
+
# 'better_call_saul'.camel_case #=> 'BetterCallSaul'
|
7
|
+
# 'breaking bad'.camel_case(' ') #=> 'BreakingBad'
|
8
|
+
#
|
9
|
+
def camel_case(aSeparator = '_')
|
10
|
+
split(aSeparator).map!(&:capitalize).join
|
11
|
+
end
|
12
|
+
|
13
|
+
#
|
14
|
+
# 'Better Call Saul'.snake_case #=> 'better_call_saul'
|
15
|
+
#
|
16
|
+
def snake_case
|
17
|
+
downcase.gsub(/\s+/, '_')
|
18
|
+
end
|
19
|
+
|
20
|
+
#
|
21
|
+
# 'Better Call Saul'.to_sym_snake_case #=> :better_call_saul
|
22
|
+
#
|
23
|
+
def to_sym_snake_case
|
24
|
+
snake_case.to_sym
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
#
|
2
|
+
# Core extensions to Symbol class
|
3
|
+
#
|
4
|
+
class Symbol
|
5
|
+
#
|
6
|
+
# :better_call_saul.to_s_camel_case => 'BetterCallSaul'
|
7
|
+
# :'breaking bad'.to_s_camel_case(' ') => 'BreakingBad'
|
8
|
+
#
|
9
|
+
def to_s_camel_case(aSeparator = '_')
|
10
|
+
to_s.downcase.split(aSeparator).map(&:capitalize).join
|
11
|
+
end
|
12
|
+
|
13
|
+
#
|
14
|
+
# :betterCallSaul.to_s_snake_case => 'better_call_saul'
|
15
|
+
#
|
16
|
+
def to_s_snake_case
|
17
|
+
regexp = /(?=[A-Z])/
|
18
|
+
to_s.split(regexp).join('_').downcase
|
19
|
+
end
|
20
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/spec/spec_string.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
|
3
|
+
# Test class for String core extension
|
4
|
+
class SpecString < Minitest::Spec
|
5
|
+
describe 'String Core Extensions' do
|
6
|
+
it 'should return camel case string' do
|
7
|
+
'better_call_saul'.camel_case.must_be_kind_of(String)
|
8
|
+
'saul'.camel_case.must_equal('Saul')
|
9
|
+
'better_call_saul'.camel_case.must_equal('BetterCallSaul')
|
10
|
+
'better call saul and mike'.camel_case(' ').must_equal('BetterCallSaulAndMike')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should return snake case string' do
|
14
|
+
'Better Call Saul'.snake_case.must_be_kind_of(String)
|
15
|
+
'Saul'.snake_case.must_equal('saul')
|
16
|
+
'Better Call Saul'.snake_case.must_equal('better_call_saul')
|
17
|
+
'better call Saul and Mike'.snake_case.must_equal('better_call_saul_and_mike')
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should symbolize string to snake case' do
|
21
|
+
'Better Call Saul'.to_sym_snake_case.must_be_kind_of(Symbol)
|
22
|
+
'saul'.to_sym_snake_case.must_equal(:saul)
|
23
|
+
'Better Call Saul'.to_sym_snake_case.must_equal(:better_call_saul)
|
24
|
+
'better call Saul and Mike'.to_sym_snake_case.must_equal(:better_call_saul_and_mike)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/spec/spec_symbol.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require_relative 'spec_helper'
|
2
|
+
|
3
|
+
# Test class for Symbol core extension
|
4
|
+
class SpecSymbol < Minitest::Spec
|
5
|
+
describe 'Symbol Core Extensions' do
|
6
|
+
it 'should stringify symbol to camel case' do
|
7
|
+
:saul.to_s_camel_case.must_be_kind_of(String)
|
8
|
+
:mike.to_s_camel_case.must_equal('Mike')
|
9
|
+
:better_call_saul.to_s_camel_case.must_equal('BetterCallSaul')
|
10
|
+
:better_call_Saul_and_Mike.to_s_camel_case.must_equal('BetterCallSaulAndMike')
|
11
|
+
:'better call Saul and Mike'.to_s_camel_case(' ').must_equal('BetterCallSaulAndMike')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should stringify symbol to snake case' do
|
15
|
+
:saul.to_s_snake_case.must_be_kind_of(String)
|
16
|
+
:mike.to_s_snake_case.must_equal('mike')
|
17
|
+
:betterCallSaul.to_s_snake_case.must_equal('better_call_saul')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: core-extensions
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jani Jegoroff
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '10.4'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '10.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '5.5'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '5.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest-reporters
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.29'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.29'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: coveralls
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.7'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.7'
|
83
|
+
description: Collection of simple Ruby core extensions.
|
84
|
+
email:
|
85
|
+
- jani.jegoroff@gmail.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- lib/core-extensions.rb
|
91
|
+
- lib/core-extensions/string.rb
|
92
|
+
- lib/core-extensions/symbol.rb
|
93
|
+
- lib/core-extensions/version.rb
|
94
|
+
- spec/spec_helper.rb
|
95
|
+
- spec/spec_string.rb
|
96
|
+
- spec/spec_symbol.rb
|
97
|
+
homepage: http://github.com/JaniJegoroff/core-extensions
|
98
|
+
licenses:
|
99
|
+
- MIT
|
100
|
+
metadata: {}
|
101
|
+
post_install_message:
|
102
|
+
rdoc_options: []
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
115
|
+
requirements: []
|
116
|
+
rubyforge_project:
|
117
|
+
rubygems_version: 2.2.2
|
118
|
+
signing_key:
|
119
|
+
specification_version: 4
|
120
|
+
summary: Core extensions.
|
121
|
+
test_files:
|
122
|
+
- spec/spec_helper.rb
|
123
|
+
- spec/spec_string.rb
|
124
|
+
- spec/spec_symbol.rb
|
125
|
+
has_rdoc:
|