Module: CaseTransform
- Defined in:
- lib/case_transform.rb,
lib/case_transform/version.rb,
lib/case_transform/hash_ext.rb,
lib/case_transform/string_ext.rb
Defined Under Namespace
Constant Summary collapse
- VERSION =
'0.2'.freeze
Class Method Summary collapse
-
.camel(value) ⇒ Object
Transforms values to UpperCamelCase or PascalCase.
- .camel_cache ⇒ Object
-
.camel_lower(value) ⇒ Object
Transforms values to camelCase.
- .camel_lower_cache ⇒ Object
-
.dash(value) ⇒ Object
Transforms values to dashed-case.
- .dash_cache ⇒ Object
-
.underscore(value) ⇒ Object
Transforms values to underscore_case.
- .underscore_cache ⇒ Object
Class Method Details
.camel(value) ⇒ Object
Transforms values to UpperCamelCase or PascalCase.
@example:
"some_key" => "SomeKey",
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/case_transform.rb', line 28 def camel(value) case value when Array value.map { |item| camel(item) } when Hash hash_ext.deep_transform_keys!(value) { |key| camel(key) } when Symbol camel(value.to_s).to_sym when String camel_cache[value] ||= string_ext.camelize(string_ext.underscore(value)) else value end end |
.camel_cache ⇒ Object
8 9 10 |
# File 'lib/case_transform.rb', line 8 def camel_cache @camel_cache ||= {} end |
.camel_lower(value) ⇒ Object
Transforms values to camelCase.
@example:
"some_key" => "someKey",
47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/case_transform.rb', line 47 def camel_lower(value) case value when Array value.map { |item| camel_lower(item) } when Hash hash_ext.deep_transform_keys!(value) { |key| camel_lower(key) } when Symbol camel_lower(value.to_s).to_sym when String camel_lower_cache[value] ||= string_ext.camelize(string_ext.underscore(value), :lower) else value end end |
.camel_lower_cache ⇒ Object
12 13 14 |
# File 'lib/case_transform.rb', line 12 def camel_lower_cache @camel_lower_cache ||= {} end |
.dash(value) ⇒ Object
Transforms values to dashed-case. This is the default case for the JsonApi adapter.
@example:
"some_key" => "some-key",
67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/case_transform.rb', line 67 def dash(value) case value when Array value.map { |item| dash(item) } when Hash hash_ext.deep_transform_keys!(value) { |key| dash(key) } when Symbol dash(value.to_s).to_sym when String dash_cache[value] ||= string_ext.dasherize(string_ext.underscore(value)) else value end end |
.dash_cache ⇒ Object
16 17 18 |
# File 'lib/case_transform.rb', line 16 def dash_cache @dash_cache ||= {} end |
.underscore(value) ⇒ Object
Transforms values to underscore_case. This is the default case for deserialization in the JsonApi adapter.
@example:
"some-key" => "some_key",
87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/case_transform.rb', line 87 def underscore(value) case value when Array value.map { |item| underscore(item) } when Hash hash_ext.deep_transform_keys!(value) { |key| underscore(key) } when Symbol underscore(value.to_s).to_sym when String underscore_cache[value] ||= string_ext.underscore(value) else value end end |
.underscore_cache ⇒ Object
20 21 22 |
# File 'lib/case_transform.rb', line 20 def underscore_cache @underscore_cache ||= {} end |