memory_record 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.org +20 -18
- data/examples/0240_attr_reader_option.rb +6 -6
- data/examples/0250_lookup_super_call.rb +19 -0
- data/lib/memory_record/memory_record.rb +4 -1
- data/lib/memory_record/version.rb +1 -1
- data/memory_record.gemspec +2 -2
- data/spec/memory_record_spec.rb +10 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a2317107890629490df470cd71e94e9f2b06d81
|
4
|
+
data.tar.gz: 0bd134e177bd057e4079e07fe63092dc60eb90d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 801976a4509a4aaccdce5f2b951221316690dc9d47ae650e535598e2029e00edf8d0d1619d32642eb1725cd601ed8b125aa42558607649a0ab7c5d7bcdddd6ee
|
7
|
+
data.tar.gz: c7f267a44e6fc507366af02895ffa5c0ae8f4134049948e3f5cc1f501afeb0784fcaed272c8c4013f24e388c80c908ba4e78944aac09ba4f146e74baf238a4c9
|
data/README.org
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
* MemoryRecord
|
2
2
|
|
3
|
-
A
|
3
|
+
A simple library that handles a few records easily
|
4
4
|
|
5
5
|
** Installation
|
6
6
|
|
@@ -44,23 +44,6 @@ Language.keys # => [:lisp, :c, :ruby]
|
|
44
44
|
Language.collect(&:author) # => ["John McCarthy", "Dennis Ritchie", "Yukihiro Matsumoto"]
|
45
45
|
#+END_SRC
|
46
46
|
|
47
|
-
*** How to decide =code= yourself?
|
48
|
-
|
49
|
-
#+BEGIN_SRC ruby
|
50
|
-
class Foo
|
51
|
-
include MemoryRecord
|
52
|
-
memory_record [
|
53
|
-
{code: 1, key: :a, name: "A"},
|
54
|
-
{code: 2, key: :b, name: "B"},
|
55
|
-
{code: 3, key: :c, name: "C"},
|
56
|
-
]
|
57
|
-
end
|
58
|
-
|
59
|
-
Foo.collect(&:code) # => [1, 2, 3]
|
60
|
-
#+END_SRC
|
61
|
-
|
62
|
-
It is used only when refactoring legacy code, when compatibility is required.
|
63
|
-
|
64
47
|
*** How to turn as an array?
|
65
48
|
|
66
49
|
=Enumerable= extended, so that =each= method is available
|
@@ -181,3 +164,22 @@ Foo.first.x rescue $! # => 1
|
|
181
164
|
Foo.first.y rescue $! # => #<NoMethodError: undefined method `y' for #<Foo:0x007ff033895e88>>
|
182
165
|
Foo.first.z rescue $! # => 1
|
183
166
|
#+END_SRC
|
167
|
+
|
168
|
+
*** How to decide =code= yourself?
|
169
|
+
|
170
|
+
#+BEGIN_SRC ruby
|
171
|
+
class Foo
|
172
|
+
include MemoryRecord
|
173
|
+
memory_record [
|
174
|
+
{code: 1, key: :a, name: "A"},
|
175
|
+
{code: 2, key: :b, name: "B"},
|
176
|
+
{code: 3, key: :c, name: "C"},
|
177
|
+
]
|
178
|
+
end
|
179
|
+
|
180
|
+
Foo.collect(&:code) # => [1, 2, 3]
|
181
|
+
#+END_SRC
|
182
|
+
|
183
|
+
It is not recommended to specify it explicitly.
|
184
|
+
It is useful only when refactoring legacy code with compatibility in mind.
|
185
|
+
|
@@ -10,9 +10,9 @@ class C1
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
C1.first.x rescue $! # => #<NoMethodError: undefined method `x' for #<C1:
|
14
|
-
C1.first.y rescue $! # => #<NoMethodError: undefined method `y' for #<C1:
|
15
|
-
C1.first.z rescue $! # => #<NoMethodError: undefined method `z' for #<C1:
|
13
|
+
C1.first.x rescue $! # => #<NoMethodError: undefined method `x' for #<C1:0x007ff28323d480>>
|
14
|
+
C1.first.y rescue $! # => #<NoMethodError: undefined method `y' for #<C1:0x007ff28323d480>>
|
15
|
+
C1.first.z rescue $! # => #<NoMethodError: undefined method `z' for #<C1:0x007ff28323d480>>
|
16
16
|
|
17
17
|
class C2
|
18
18
|
include MemoryRecord
|
@@ -23,9 +23,9 @@ class C2
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
C2.first.x rescue $! # => #<NoMethodError: undefined method `x' for #<C2:
|
26
|
+
C2.first.x rescue $! # => #<NoMethodError: undefined method `x' for #<C2:0x007ff2838d8880>>
|
27
27
|
C2.first.y rescue $! # => 1
|
28
|
-
C2.first.z rescue $! # => #<NoMethodError: undefined method `z' for #<C2:
|
28
|
+
C2.first.z rescue $! # => #<NoMethodError: undefined method `z' for #<C2:0x007ff2838d8880>>
|
29
29
|
|
30
30
|
class C3
|
31
31
|
include MemoryRecord
|
@@ -37,5 +37,5 @@ class C3
|
|
37
37
|
end
|
38
38
|
|
39
39
|
C3.first.x rescue $! # => 1
|
40
|
-
C3.first.y rescue $! # => #<NoMethodError: undefined method `y' for #<C3:
|
40
|
+
C3.first.y rescue $! # => #<NoMethodError: undefined method `y' for #<C3:0x007ff28321f7c8>>
|
41
41
|
C3.first.z rescue $! # => 1
|
@@ -0,0 +1,19 @@
|
|
1
|
+
$LOAD_PATH.unshift '../lib'
|
2
|
+
require 'memory_record'
|
3
|
+
|
4
|
+
class C
|
5
|
+
include MemoryRecord
|
6
|
+
memory_record [
|
7
|
+
{key: :alice}
|
8
|
+
]
|
9
|
+
|
10
|
+
class << self
|
11
|
+
def self.lookup(v)
|
12
|
+
p __method__
|
13
|
+
super
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
C.lookup(:alice) # => #<C:0x007f954e834fb0 @attributes={:key=>:alice, :code=>0}>
|
19
|
+
C[:alice] # => #<C:0x007f954e834fb0 @attributes={:key=>:alice, :code=>0}>
|
data/memory_record.gemspec
CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.version = MemoryRecord::VERSION
|
8
8
|
spec.authors = ['akicho8']
|
9
9
|
spec.email = ['akicho8@gmail.com']
|
10
|
-
spec.description = %q{A
|
11
|
-
spec.summary = %q{A
|
10
|
+
spec.description = %q{A simple library that handles a few records easily}
|
11
|
+
spec.summary = %q{A simple library that handles a few records easily}
|
12
12
|
spec.homepage = ''
|
13
13
|
spec.license = 'MIT'
|
14
14
|
|
data/spec/memory_record_spec.rb
CHANGED
@@ -201,4 +201,14 @@ RSpec.describe MemoryRecord do
|
|
201
201
|
end
|
202
202
|
end
|
203
203
|
end
|
204
|
+
|
205
|
+
it "can call that lookup from foobar when updating inherited lookup" do
|
206
|
+
model = class_new [{key: :a}]
|
207
|
+
model.singleton_class.class_eval do
|
208
|
+
def lookup(*)
|
209
|
+
super.key
|
210
|
+
end
|
211
|
+
end
|
212
|
+
model[:a].should == :a
|
213
|
+
end
|
204
214
|
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.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akicho8
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -80,7 +80,7 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
description: A
|
83
|
+
description: A simple library that handles a few records easily
|
84
84
|
email:
|
85
85
|
- akicho8@gmail.com
|
86
86
|
executables: []
|
@@ -109,6 +109,7 @@ files:
|
|
109
109
|
- examples/0220_when_key_like_numeric.rb
|
110
110
|
- examples/0230_with_use_activerecord_enum.rb
|
111
111
|
- examples/0240_attr_reader_option.rb
|
112
|
+
- examples/0250_lookup_super_call.rb
|
112
113
|
- lib/memory_record.rb
|
113
114
|
- lib/memory_record/memory_record.rb
|
114
115
|
- lib/memory_record/version.rb
|
@@ -138,7 +139,7 @@ rubyforge_project:
|
|
138
139
|
rubygems_version: 2.6.11
|
139
140
|
signing_key:
|
140
141
|
specification_version: 4
|
141
|
-
summary: A
|
142
|
+
summary: A simple library that handles a few records easily
|
142
143
|
test_files:
|
143
144
|
- spec/memory_record_spec.rb
|
144
145
|
- spec/spec_helper.rb
|