hashash 1.0.0 → 1.1.0
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/CHANGELOG.md +7 -4
- data/README.md +19 -3
- data/lib/hashash.rb +16 -0
- data/lib/hashash/core_ext/hash/keys.rb +7 -7
- data/lib/hashash/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af80561f56daad3161331bb213a3697af8e98b72
|
4
|
+
data.tar.gz: 2cf1f44460a6342af419d434b90a1d105018d822
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b7244a180dd5f8980dc2213530df0815433d5a93a0bd8bced633c2f45a0928d77f15fa9bb3c03e82be78d650ce945549acbd12c6b3ff17dc590d297cbf3442e
|
7
|
+
data.tar.gz: 02a267fd938e30132b7d7a20bee18a62adf6e5675b3890becf8ddc23e5937a2f17597b40aeeb830f214654696857ac33b3bcc74375415356814c98a6ecadbfca
|
data/CHANGELOG.md
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
# Change Log
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
-
## [
|
4
|
+
## [Unreleased]
|
5
5
|
|
6
|
-
## [1.
|
6
|
+
## [1.1.0]
|
7
|
+
### Added
|
8
|
+
- add UpperCamelCase
|
7
9
|
|
10
|
+
## [1.0.0] - 2017-07-09
|
8
11
|
- first release
|
9
12
|
|
13
|
+
[Unreleased]: https://github.com/kimsuelim/hashash/compare/v1.0.0...HEAD
|
14
|
+
[1.1.0]: https://github.com/kimsuelim/hashash/compare/v1.1.0...v1.0.0
|
10
15
|
[1.0.0]: https://github.com/kimsuelim/hashash/releases/tag/v1.0.0
|
11
|
-
[1.1.0]: https://github.com/kimsuelim/hashash/compare/v1.0.0...v1.1.0
|
12
|
-
[unreleased]: https://github.com/kimsuelim/hashash/compare/v1.0.0...HEAD
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
[](https://badge.fury.io/rb/hashash)
|
5
5
|
|
6
6
|
Hashash is a collection of classes and mixins that make it more useful when working with JSON APIs.
|
7
|
-
Convert underscore to
|
7
|
+
Convert underscore to camelcase, convert camelcase to underscore, convert hashes to the objects.
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
@@ -44,23 +44,39 @@ hash.deep_underscore_keys
|
|
44
44
|
## Camelize keys when working with JSON APIs
|
45
45
|
|
46
46
|
### camelize_keys
|
47
|
-
converts all keys in a hash to
|
47
|
+
converts all keys in a hash to camelcase.
|
48
48
|
|
49
|
+
#### lowerCamelCase
|
49
50
|
```ruby
|
50
51
|
hash = { first_name: "Surim", last_name: "Kim" }
|
51
52
|
hash.camelize_keys
|
52
53
|
# => {:firstName=>"Surim", :lastName=>"Kim"}
|
53
54
|
```
|
54
55
|
|
56
|
+
#### UpperCamelCase
|
57
|
+
```ruby
|
58
|
+
hash = { first_name: "Surim", last_name: "Kim" }
|
59
|
+
hash.camelize_keys(:upper)
|
60
|
+
# => {:FirstName=>"Surim", :LastName=>"Kim"}
|
61
|
+
```
|
62
|
+
|
55
63
|
### deep_camelize_keys
|
56
|
-
recursively converts all keys in a hash to
|
64
|
+
recursively converts all keys in a hash to camelcase.
|
57
65
|
|
66
|
+
#### lowerCamelCase
|
58
67
|
```ruby
|
59
68
|
hash = { person: { first_name: "Surim", last_name: "Kim" } }
|
60
69
|
hash.deep_camelize_keys
|
61
70
|
# => {:person=>{:firstName=>"Surim", :lastName=>"Kim"}}
|
62
71
|
```
|
63
72
|
|
73
|
+
#### UpperCamelCase
|
74
|
+
```ruby
|
75
|
+
hash = { person: { first_name: "Surim", last_name: "Kim" } }
|
76
|
+
hash.deep_camelize_keys(:upper)
|
77
|
+
# => {:Person=>{:FirstName=>"Surim", :LastName=>"Kim"}}
|
78
|
+
```
|
79
|
+
|
64
80
|
## Converts hashes to the objects.
|
65
81
|
### objectified_hash
|
66
82
|
```ruby
|
data/lib/hashash.rb
CHANGED
@@ -4,3 +4,19 @@ require "hashash/objectified_hash"
|
|
4
4
|
|
5
5
|
module Hashash
|
6
6
|
end
|
7
|
+
|
8
|
+
def aa
|
9
|
+
user_id = session[:user_id]
|
10
|
+
if (user_id)
|
11
|
+
@current_user ||= User.find_by(id: user_id)
|
12
|
+
else
|
13
|
+
user_id = cookies.signed[:user_id]
|
14
|
+
if (user_id)
|
15
|
+
user = User.find_by(id: user_id)
|
16
|
+
if user && user.authenticated?(cookies[:remember_token])
|
17
|
+
log_in user
|
18
|
+
@current_user = user
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -15,8 +15,8 @@ class Hash
|
|
15
15
|
#
|
16
16
|
# hash.camelize_keys
|
17
17
|
# # => {:firstName=>"Surim", :lastName=>"Kim"}
|
18
|
-
def camelize_keys
|
19
|
-
transform_keys { |key| camelize_key(key) }
|
18
|
+
def camelize_keys(first_letter = :lower)
|
19
|
+
transform_keys { |key| camelize_key(key, first_letter) }
|
20
20
|
end
|
21
21
|
|
22
22
|
# Returns a new hash with all keys converted to underscore.
|
@@ -39,8 +39,8 @@ class Hash
|
|
39
39
|
#
|
40
40
|
# hash.deep_camelize_keys
|
41
41
|
# # => {:person=>{:firstName=>"Surim", :lastName=>"Kim"}}
|
42
|
-
def deep_camelize_keys
|
43
|
-
deep_transform_keys_in_object(self) { |key| camelize_key(key) }
|
42
|
+
def deep_camelize_keys(first_letter = :lower)
|
43
|
+
deep_transform_keys_in_object(self) { |key| camelize_key(key, first_letter) }
|
44
44
|
end
|
45
45
|
|
46
46
|
private
|
@@ -90,11 +90,11 @@ class Hash
|
|
90
90
|
word
|
91
91
|
end
|
92
92
|
|
93
|
-
def camelize_key(key)
|
93
|
+
def camelize_key(key, first_letter)
|
94
94
|
if key.is_a?(Symbol)
|
95
|
-
camelize(key.to_s,
|
95
|
+
camelize(key.to_s, first_letter).to_sym
|
96
96
|
elsif key.is_a?(String)
|
97
|
-
camelize(key,
|
97
|
+
camelize(key, first_letter)
|
98
98
|
else
|
99
99
|
key
|
100
100
|
end
|
data/lib/hashash/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hashash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Surim Kim
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|