memory_record 0.0.14 → 0.0.15
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 +13 -1
- data/examples/0320_as_json.rb +2 -1
- data/examples/0330_active_model_serializers.rb +22 -0
- data/examples/{0330_comparable.rb → 0340_comparable.rb} +0 -0
- data/examples/0350_power_assert.rb +21 -0
- data/examples/0360_sub_class.rb +24 -0
- data/lib/memory_record/memory_record/serialization.rb +3 -1
- data/lib/memory_record/version.rb +1 -1
- data/memory_record.gemspec +1 -0
- data/spec/memory_record_spec.rb +19 -0
- metadata +20 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5782c36c4656fbfea525ca83150171f5e7d72ef6e12c4a3bc5bb0c9cbebf999d
|
4
|
+
data.tar.gz: ae386371adb57bc10e97a3ec86c732eeb343fa53912ae7fc75fe6ddb41d15ae0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c93d3d610e960a3a6b8da1041e8e6814de11ea93f5b341a18c39d8f80cf502b7bb05f1b07f1fa32fe575270809df31de441928bb0ec123cde3d0c02c7335a04
|
7
|
+
data.tar.gz: fb32e99ced614b0dc378662072f769e59d2bf28578537d48f734a078d793fc2b861f99bd96dff1496ed62ce80ddf10717ef4a861beff64a794ce4b00fd739866
|
data/README.md
CHANGED
@@ -70,9 +70,12 @@ Palette.collect { |e| ... }
|
|
70
70
|
### How do I submit a form to select in Rails?
|
71
71
|
|
72
72
|
```ruby
|
73
|
-
form.collection_select(:
|
73
|
+
form.collection_select(:pallet_key, Palette, :key, :name) // object[pallet_key]=tomato
|
74
|
+
form.collection_select(:pallet_key, Palette, :code, :name) // object[pallet_key]=1
|
74
75
|
```
|
75
76
|
|
77
|
+
Either way can see it with `Palette[pallet_key]`
|
78
|
+
|
76
79
|
### Is the reference in subscripts slow?
|
77
80
|
|
78
81
|
Since it has a hash internally using the key value as a key, it can be acquired with O (1).
|
@@ -221,4 +224,13 @@ color_info.as_json(only: [], include: {children: {only: :x}} ) # => {:children =
|
|
221
224
|
|
222
225
|
ColorInfo.as_json(only: :key) # => [{:key=>:blue}, {:key=>:red}]
|
223
226
|
ColorInfo.to_json(only: :key) # => "[{\"key\":\"blue\"},{\"key\":\"red\"}]"
|
227
|
+
|
228
|
+
#### Case of ActiveModelSerializers
|
229
|
+
|
230
|
+
```ruby
|
231
|
+
class ColorInfoSerializer < ActiveModel::Serializer
|
232
|
+
attributes :key
|
233
|
+
end
|
234
|
+
|
235
|
+
ActiveModelSerializers::SerializableResource.new(ColorInfo.first).as_json # => { :key => :blue }
|
224
236
|
```
|
data/examples/0320_as_json.rb
CHANGED
@@ -36,10 +36,11 @@ class ColorInfo
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
ColorInfo.first.key # => :blue
|
40
|
+
|
39
41
|
ColorInfo.first.as_json(only: :key) # => {:key=>:blue}
|
40
42
|
ColorInfo.first.as_json(except: [:rgb, :code, :a]) # => {:key=>:blue}
|
41
43
|
ColorInfo.first.as_json(only: [], methods: :hex) # => {:hex=>"#0000FF"}
|
42
44
|
ColorInfo.first.as_json(only: [], include: {children: {only: :a}} ) # => {:children=>[{"a"=>1}, {"a"=>1}, {:a=>1}]}
|
43
|
-
|
44
45
|
ColorInfo.as_json(only: :key) # => [{:key=>:blue}, {:key=>:red}]
|
45
46
|
ColorInfo.to_json(only: :key) # => "[{\"key\":\"blue\"},{\"key\":\"red\"}]"
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "bundler/inline"
|
2
|
+
|
3
|
+
gemfile do
|
4
|
+
gem "memory_record", path: ".."
|
5
|
+
gem "active_model_serializers"
|
6
|
+
end
|
7
|
+
|
8
|
+
class ColorInfo
|
9
|
+
include MemoryRecord
|
10
|
+
memory_record [
|
11
|
+
{ key: :blue, },
|
12
|
+
{ key: :red, },
|
13
|
+
]
|
14
|
+
end
|
15
|
+
|
16
|
+
class ColorInfoSerializer < ActiveModel::Serializer
|
17
|
+
attributes :key, :name
|
18
|
+
end
|
19
|
+
|
20
|
+
pp ActiveModelSerializers::SerializableResource.new(ColorInfo.first).as_json # => {:key=>:blue, :name=>"blue"}
|
21
|
+
# >> [active_model_serializers] Rendered ColorInfoSerializer with ActiveModelSerializers::Adapter::Attributes (0.14ms)
|
22
|
+
# >> {:key=>:blue, :name=>"blue"}
|
File without changes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
$LOAD_PATH.unshift '../lib'
|
2
|
+
require 'memory_record'
|
3
|
+
|
4
|
+
require "rspec/autorun"
|
5
|
+
|
6
|
+
Foo = {}
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
config.expect_with :test_unit
|
10
|
+
end
|
11
|
+
|
12
|
+
describe do
|
13
|
+
it do
|
14
|
+
assert { Foo["あ"] == Foo["い"] }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
# >> .
|
18
|
+
# >>
|
19
|
+
# >> Finished in 0.01009 seconds (files took 0.30828 seconds to load)
|
20
|
+
# >> 1 example, 0 failures
|
21
|
+
# >>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
$LOAD_PATH.unshift '../lib'
|
2
|
+
require 'memory_record'
|
3
|
+
|
4
|
+
class A
|
5
|
+
include MemoryRecord
|
6
|
+
memory_record [
|
7
|
+
{ key: :a, x: 1, y: 2 },
|
8
|
+
]
|
9
|
+
|
10
|
+
def z
|
11
|
+
x + y
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class B < A
|
16
|
+
memory_record_reset superclass.collect(&:attributes)
|
17
|
+
|
18
|
+
def z
|
19
|
+
super * 2
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
B.values # => [#<B:0x00007feea40395b8 @attributes={:key=>:a, :x=>1, :y=>2, :code=>0}>]
|
24
|
+
B.first.z # => 6
|
@@ -21,7 +21,7 @@ module MemoryRecord
|
|
21
21
|
|
22
22
|
hash = {}
|
23
23
|
keys.each { |e| hash[e] = send(e) }
|
24
|
-
Array(options[:methods]).each { |e| hash[e] =
|
24
|
+
Array(options[:methods]).each { |e| hash[e] = read_attribute_for_serialization(e) }
|
25
25
|
|
26
26
|
serializable_add_includes(options) do |association, records, opts|
|
27
27
|
hash[association] = -> {
|
@@ -42,6 +42,8 @@ module MemoryRecord
|
|
42
42
|
|
43
43
|
private
|
44
44
|
|
45
|
+
alias :read_attribute_for_serialization :send # for ActiveModelSerializers
|
46
|
+
|
45
47
|
# Add associations specified via the <tt>:include</tt> option.
|
46
48
|
#
|
47
49
|
# Expects a block that takes as arguments:
|
data/memory_record.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency 'rspec'
|
22
22
|
spec.add_development_dependency 'test-unit'
|
23
23
|
spec.add_development_dependency 'activemodel'
|
24
|
+
spec.add_development_dependency 'active_model_serializers'
|
24
25
|
|
25
26
|
spec.add_dependency 'activesupport'
|
26
27
|
end
|
data/spec/memory_record_spec.rb
CHANGED
@@ -297,4 +297,23 @@ RSpec.describe MemoryRecord do
|
|
297
297
|
assert { ColorInfo.as_json(only: :key) == [{:key => :blue}, {:key => :red}] }
|
298
298
|
end
|
299
299
|
end
|
300
|
+
|
301
|
+
context 'active_model_serializers' do
|
302
|
+
require "active_model_serializers"
|
303
|
+
|
304
|
+
class ColorInfo
|
305
|
+
include MemoryRecord
|
306
|
+
memory_record [
|
307
|
+
{ key: :blue, },
|
308
|
+
]
|
309
|
+
end
|
310
|
+
|
311
|
+
class ColorInfoSerializer < ActiveModel::Serializer
|
312
|
+
attributes :key
|
313
|
+
end
|
314
|
+
|
315
|
+
it do
|
316
|
+
assert { ActiveModelSerializers::SerializableResource.new(ColorInfo.first).as_json == {:key => :blue} }
|
317
|
+
end
|
318
|
+
end
|
300
319
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memory_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akicho8
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: active_model_serializers
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: activesupport
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,7 +131,10 @@ files:
|
|
117
131
|
- examples/0300_use_as_hash_key.rb
|
118
132
|
- examples/0310_same_if_dup.rb
|
119
133
|
- examples/0320_as_json.rb
|
120
|
-
- examples/
|
134
|
+
- examples/0330_active_model_serializers.rb
|
135
|
+
- examples/0340_comparable.rb
|
136
|
+
- examples/0350_power_assert.rb
|
137
|
+
- examples/0360_sub_class.rb
|
121
138
|
- lib/memory_record.rb
|
122
139
|
- lib/memory_record/memory_record.rb
|
123
140
|
- lib/memory_record/memory_record/serialization.rb
|