case_transform 0.1 → 0.2
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 +4 -4
- data/README.md +15 -4
- data/lib/case_transform.rb +21 -5
- data/lib/case_transform/version.rb +1 -1
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 349b4cf3d1e50b96419859dd08603f4c946cbdde
|
4
|
+
data.tar.gz: d62a84b9a7b6b9ddd0be81fd52db62b464211e0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ccc13d4d8e83fc6126adf7002ed8cd8456b8d1d4b7ef04f4259021e87f79f6ff2ab65e802d4c6afe0dafcc6c0030f02a3a5bcec1cabf72ee4f2f9cf68e7e2f7
|
7
|
+
data.tar.gz: 54bac3ab172a6dd2a02322d98cdca8020dde5782b2c52108a29b509fc112e86532dae80c40d3bce1d6d1d9f8c0f66817db44e10a708739f57556254e78858d18
|
data/README.md
CHANGED
@@ -1,23 +1,34 @@
|
|
1
|
-
#
|
1
|
+
# case_transform
|
2
2
|
Extraction of the key_transform abilities of ActiveModelSerializers
|
3
3
|
|
4
|
+
[](https://badge.fury.io/rb/case_transform)
|
5
|
+
[](https://travis-ci.org/NullVoxPopuli/case_transform)
|
6
|
+
[](https://codeclimate.com/repos/57dafbcc628330006c001312/feed)
|
7
|
+
[](https://codeclimate.com/repos/57dafbcc628330006c001312/coverage)
|
8
|
+
[](https://gemnasium.com/NullVoxPopuli/case_transform)
|
9
|
+
|
4
10
|
## Install
|
5
11
|
|
6
12
|
```ruby
|
7
|
-
gem '
|
13
|
+
gem 'case_transform'
|
8
14
|
```
|
9
15
|
|
10
16
|
or
|
11
17
|
|
12
|
-
```
|
13
|
-
|
18
|
+
```bash
|
19
|
+
gem install case_transform
|
14
20
|
```
|
15
21
|
## Usage
|
16
22
|
|
17
23
|
```ruby
|
24
|
+
require 'case_transform'
|
25
|
+
|
18
26
|
CaseTransform.camel_lower(value)
|
19
27
|
```
|
20
28
|
|
29
|
+
`value` can be any of Array, Hash, Symbol, or String.
|
30
|
+
Any other object type will just be returned.
|
31
|
+
|
21
32
|
### Transforms
|
22
33
|
|
23
34
|
| | Description |
|
data/lib/case_transform.rb
CHANGED
@@ -5,7 +5,22 @@ require 'active_support/core_ext/string'
|
|
5
5
|
require 'case_transform/version'
|
6
6
|
|
7
7
|
module CaseTransform
|
8
|
-
|
8
|
+
class << self
|
9
|
+
def camel_cache
|
10
|
+
@camel_cache ||= {}
|
11
|
+
end
|
12
|
+
|
13
|
+
def camel_lower_cache
|
14
|
+
@camel_lower_cache ||= {}
|
15
|
+
end
|
16
|
+
|
17
|
+
def dash_cache
|
18
|
+
@dash_cache ||= {}
|
19
|
+
end
|
20
|
+
|
21
|
+
def underscore_cache
|
22
|
+
@underscore_cache ||= {}
|
23
|
+
end
|
9
24
|
|
10
25
|
# Transforms values to UpperCamelCase or PascalCase.
|
11
26
|
#
|
@@ -16,7 +31,7 @@ module CaseTransform
|
|
16
31
|
when Array then value.map { |item| camel(item) }
|
17
32
|
when Hash then value.deep_transform_keys! { |key| camel(key) }
|
18
33
|
when Symbol then camel(value.to_s).to_sym
|
19
|
-
when String then value.underscore.camelize
|
34
|
+
when String then camel_cache[value] ||= value.underscore.camelize
|
20
35
|
else value
|
21
36
|
end
|
22
37
|
end
|
@@ -30,7 +45,7 @@ module CaseTransform
|
|
30
45
|
when Array then value.map { |item| camel_lower(item) }
|
31
46
|
when Hash then value.deep_transform_keys! { |key| camel_lower(key) }
|
32
47
|
when Symbol then camel_lower(value.to_s).to_sym
|
33
|
-
when String then value.underscore.camelize(:lower)
|
48
|
+
when String then camel_lower_cache[value] ||= value.underscore.camelize(:lower)
|
34
49
|
else value
|
35
50
|
end
|
36
51
|
end
|
@@ -45,7 +60,7 @@ module CaseTransform
|
|
45
60
|
when Array then value.map { |item| dash(item) }
|
46
61
|
when Hash then value.deep_transform_keys! { |key| dash(key) }
|
47
62
|
when Symbol then dash(value.to_s).to_sym
|
48
|
-
when String then value.underscore.dasherize
|
63
|
+
when String then dash_cache[value] ||= value.underscore.dasherize
|
49
64
|
else value
|
50
65
|
end
|
51
66
|
end
|
@@ -60,7 +75,7 @@ module CaseTransform
|
|
60
75
|
when Array then value.map { |item| underscore(item) }
|
61
76
|
when Hash then value.deep_transform_keys! { |key| underscore(key) }
|
62
77
|
when Symbol then underscore(value.to_s).to_sym
|
63
|
-
when String then value.underscore
|
78
|
+
when String then underscore_cache[value] ||= value.underscore
|
64
79
|
else value
|
65
80
|
end
|
66
81
|
end
|
@@ -69,4 +84,5 @@ module CaseTransform
|
|
69
84
|
def unaltered(value)
|
70
85
|
value
|
71
86
|
end
|
87
|
+
end
|
72
88
|
end
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: case_transform
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- L. Preston Sego III
|
8
|
+
- Ben Mills
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
12
|
+
date: 2016-09-22 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: activesupport
|
@@ -24,6 +25,20 @@ dependencies:
|
|
24
25
|
- - ">="
|
25
26
|
- !ruby/object:Gem::Version
|
26
27
|
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
27
42
|
- !ruby/object:Gem::Dependency
|
28
43
|
name: rubocop
|
29
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -127,5 +142,5 @@ rubyforge_project:
|
|
127
142
|
rubygems_version: 2.5.1
|
128
143
|
signing_key:
|
129
144
|
specification_version: 4
|
130
|
-
summary: CaseTransform-0.
|
145
|
+
summary: CaseTransform-0.2
|
131
146
|
test_files: []
|