to_camel_case 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+
2
+ == 6/10/2012
3
+
4
+ Initial release.
@@ -0,0 +1,48 @@
1
+ # ToCamelCase #
2
+
3
+ http://rubygems.org/gems/to_camel_case
4
+
5
+ # Description #
6
+
7
+ Converts strings like "to_camel_case" into Camel Case: "ToCamelCase".
8
+
9
+ # Summary #
10
+
11
+ Provides :to_camel_case to String via module ToCamelCase.
12
+
13
+ # Install #
14
+
15
+ * sudo gem install to_camel_case
16
+
17
+ # Usage #
18
+
19
+ ```ruby
20
+ 'some_random_string'.to_camel_case
21
+
22
+ # => 'ToCamelCase'
23
+ ```
24
+
25
+ # License #
26
+
27
+ (The MIT License)
28
+
29
+ Copyright (c) Asher
30
+
31
+ Permission is hereby granted, free of charge, to any person obtaining
32
+ a copy of this software and associated documentation files (the
33
+ 'Software'), to deal in the Software without restriction, including
34
+ without limitation the rights to use, copy, modify, merge, publish,
35
+ distribute, sublicense, and/or sell copies of the Software, and to
36
+ permit persons to whom the Software is furnished to do so, subject to
37
+ the following conditions:
38
+
39
+ The above copyright notice and this permission notice shall be
40
+ included in all copies or substantial portions of the Software.
41
+
42
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
43
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
44
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
45
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
46
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
47
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
48
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,46 @@
1
+ == ToCamelCase
2
+
3
+ http://rubygems.org/gems/to_camel_case
4
+
5
+ == Description
6
+
7
+ Converts strings like "to_camel_case" into Camel Case: "ToCamelCase".
8
+
9
+ == Summary
10
+
11
+ Provides :to_camel_case to String via module ToCamelCase.
12
+
13
+ == Install
14
+
15
+ * sudo gem install to_camel_case
16
+
17
+ == Usage
18
+
19
+ 'some_random_string'.to_camel_case
20
+
21
+ # => 'ToCamelCase'
22
+
23
+ == License
24
+
25
+ (The MIT License)
26
+
27
+ Copyright (c) Asher
28
+
29
+ Permission is hereby granted, free of charge, to any person obtaining
30
+ a copy of this software and associated documentation files (the
31
+ 'Software'), to deal in the Software without restriction, including
32
+ without limitation the rights to use, copy, modify, merge, publish,
33
+ distribute, sublicense, and/or sell copies of the Software, and to
34
+ permit persons to whom the Software is furnished to do so, subject to
35
+ the following conditions:
36
+
37
+ The above copyright notice and this permission notice shall be
38
+ included in all copies or substantial portions of the Software.
39
+
40
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
41
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
42
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
43
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
44
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
45
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
46
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,19 @@
1
+
2
+ module ::ToCamelCase
3
+ end
4
+
5
+ basepath = 'to_camel_case/ToCamelCase'
6
+
7
+ files = [
8
+
9
+ ]
10
+
11
+ files.each do |this_file|
12
+ require_relative( File.join( basepath, this_file ) + '.rb' )
13
+ end
14
+
15
+ require_relative( basepath + '.rb' )
16
+
17
+ class ::String
18
+ include ::ToCamelCase
19
+ end
@@ -0,0 +1,78 @@
1
+
2
+ module ::ToCamelCase
3
+
4
+ ###################
5
+ # to_camel_case #
6
+ ###################
7
+
8
+ def to_camel_case
9
+
10
+ camel_case_string = ''
11
+
12
+ upcase_next_char = true
13
+
14
+ chars.each do |this_char|
15
+
16
+ if this_char == '_'
17
+
18
+ upcase_next_char = true
19
+
20
+ else
21
+
22
+ if upcase_next_char
23
+ # we use upcase! to avoid creating a duplicate string from this_char
24
+ this_char.upcase!
25
+ camel_case_string << this_char
26
+ upcase_next_char = false
27
+ else
28
+ camel_case_string << this_char
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+
35
+ return camel_case_string
36
+
37
+ end
38
+
39
+ ####################
40
+ # to_camel_case! #
41
+ ####################
42
+
43
+ def to_camel_case!
44
+
45
+ upcase_next_char = true
46
+
47
+ delete_indexes = [ ]
48
+
49
+ chars.each_with_index do |this_char, index|
50
+
51
+ if this_char == '_'
52
+
53
+ upcase_next_char = true
54
+ delete_indexes.push( index )
55
+
56
+ else
57
+
58
+ if upcase_next_char
59
+ # we use upcase! to avoid creating a duplicate string from this_char
60
+ this_char.upcase!
61
+ self[ index ] = this_char
62
+ upcase_next_char = false
63
+ end
64
+
65
+ end
66
+
67
+ end
68
+
69
+ until delete_indexes.empty?
70
+ this_delete_index = delete_indexes.pop
71
+ slice!( this_delete_index )
72
+ end
73
+
74
+ return self
75
+
76
+ end
77
+
78
+ end
@@ -0,0 +1,26 @@
1
+
2
+ require_relative '../../lib/to_camel_case.rb'
3
+
4
+ describe ::ToCamelCase do
5
+
6
+ ###################
7
+ # to_camel_case #
8
+ ###################
9
+
10
+ it 'can return a duplicate in camel case' do
11
+ string = 'under_score_string'
12
+ string.to_camel_case.should == 'UnderScoreString'
13
+ string.should == 'under_score_string'
14
+ end
15
+
16
+ ####################
17
+ # to_camel_case! #
18
+ ####################
19
+
20
+ it 'can modify itself to be camel case' do
21
+ string = 'under_score_string'
22
+ string.to_camel_case!.should == 'UnderScoreString'
23
+ string.should == 'UnderScoreString'
24
+ end
25
+
26
+ end
metadata ADDED
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: to_camel_case
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Asher
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-10 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: ! 'Converts strings like "to_camel_case" into Camel Case: "ToCamelCase".'
15
+ email: asher@ridiculouspower.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/to_camel_case/ToCamelCase.rb
21
+ - lib/to_camel_case.rb
22
+ - spec/ToCamelCase/String_spec.rb
23
+ - README.md
24
+ - README.rdoc
25
+ - CHANGELOG.rdoc
26
+ homepage: http://rubygems.org/gems/to_camel_case
27
+ licenses: []
28
+ post_install_message:
29
+ rdoc_options: []
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ requirements: []
45
+ rubyforge_project: to_camel_case
46
+ rubygems_version: 1.8.23
47
+ signing_key:
48
+ specification_version: 3
49
+ summary: Provides :to_camel_case to String via module ToCamelCase.
50
+ test_files: []