active_record_to_hash 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e6fd8387c13ea938de4bd07f3136535a99c11f294e06f895565da55970e916a6
4
- data.tar.gz: 1ed0ac8096bc6ff084516be1fb130e43a34d7578044a043da73543bf640ada14
3
+ metadata.gz: 66315aee820fcea1d5206ffb48c85fdb1c036ad4cf418f3d35ba355041c4da8f
4
+ data.tar.gz: 6bb0c40f8017edea321b0d43ee0b1183465b56616733aebf12b1a6abbc14d01b
5
5
  SHA512:
6
- metadata.gz: df5703d7c50fa512ec6d4294a07a967a81c4faa1fb827fefc3e0cec25c3dca038bd7a2c557353fe00d235e6caa4414d8aa01a394d48f10ff1a19bcf934029e97
7
- data.tar.gz: fe940a5caee54389c0641b12c3e64057686b6acc7e7232b42c6e16c45cebb6dbe710be35a8d1a184305101f151c7e2e4c2e6ff386d115f683baf278d61af5a62
6
+ metadata.gz: e27b516b74c9683b1c11387eeee294ca2895c815207665ce57f1a07fa222ad843dd9cace0dbcf946098aae96eb51f4ae444d78d2efe6778f037e9b3314c04223
7
+ data.tar.gz: 4fd44f141c4ba48ac6375b9a9d9cba96e6f7ccea159be41f6f7d6a341765cb2ac2008ed036f77da7f4e722157633356b55aacbdd6b4890e6d1e3fa3daa891cb6
data/README.md CHANGED
@@ -165,14 +165,18 @@ p shop.to_hash(
165
165
  # :areas=>{1=>"Area No1", 2=>"Area No2", 3=>"Area No3"}
166
166
  # }
167
167
 
168
- p shop.to_hash(only: [:id, :name], with_areas: :exists)
168
+ shop.to_hash(only: [:id, :name], with_areas: :exists)
169
169
  # {:id=>1, :name=>"Shop No1", :areas=>true}
170
170
  # You can use this option only with ActiveRecord::Relation
171
171
 
172
172
 
173
- p shop.to_hash(ignore_nil: true)
173
+ shop.to_hash(ignore_nil: true)
174
174
  # When the value is nil, it skips that key.
175
175
 
176
+
177
+ shop.to_hash(with_category_name: { delegate: { category: :name } })
178
+ # `category_name` is `shop.category.name`
179
+
176
180
  ```
177
181
 
178
182
  ### Configuration
@@ -26,6 +26,13 @@ module ActiveRecordToHash
26
26
  return options[:value]
27
27
  end
28
28
 
29
+ if options.key?(:delegate)
30
+ key = options[:delegate].keys.first
31
+ value = options[:delegate].values.first
32
+
33
+ return record.public_send(key).public_send(value)
34
+ end
35
+
29
36
  args = options[:args] || []
30
37
  value = record.public_send(attr_name, *args)
31
38
  if options[:exists]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveRecordToHash
4
- VERSION = '1.3.0'
4
+ VERSION = '1.4.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_to_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masamoto Miyata
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-07 00:00:00.000000000 Z
11
+ date: 2022-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails