memory_record 0.0.6 → 0.0.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 28d393f4158db4b87f4ff47fff3e41f74fee5fe1
4
- data.tar.gz: faae8c034176557fa2801db2ffdefa3901e3be7c
3
+ metadata.gz: 4a2317107890629490df470cd71e94e9f2b06d81
4
+ data.tar.gz: 0bd134e177bd057e4079e07fe63092dc60eb90d5
5
5
  SHA512:
6
- metadata.gz: 91b6037af4116785da396b0c3fcf3745e53e4216a405a939ceb1c62d6b226c16ae9f21ea22b7da142e91c5c142ad1a22dc7a49013b3a2bf04f895befe713aaa2
7
- data.tar.gz: bcb80fe6c691cb7924c45b4cd28b6ab3b0e6ec60e4d104d191332c479872c5f8f3c4fa8cf703d63a7c0e9e0456f36660b45c610f5931eb5a45fb1122dc4f6b31
6
+ metadata.gz: 801976a4509a4aaccdce5f2b951221316690dc9d47ae650e535598e2029e00edf8d0d1619d32642eb1725cd601ed8b125aa42558607649a0ab7c5d7bcdddd6ee
7
+ data.tar.gz: c7f267a44e6fc507366af02895ffa5c0ae8f4134049948e3f5cc1f501afeb0784fcaed272c8c4013f24e388c80c908ba4e78944aac09ba4f146e74baf238a4c9
data/README.org CHANGED
@@ -1,6 +1,6 @@
1
1
  * MemoryRecord
2
2
 
3
- A small number of records easy handling library
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:0x007ff0338d65c8>>
14
- C1.first.y rescue $! # => #<NoMethodError: undefined method `y' for #<C1:0x007ff0338d65c8>>
15
- C1.first.z rescue $! # => #<NoMethodError: undefined method `z' for #<C1:0x007ff0338d65c8>>
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:0x007ff0338ae780>>
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:0x007ff0338ae780>>
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:0x007ff033895e88>>
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}>
@@ -108,7 +108,10 @@ module MemoryRecord
108
108
  @values_hash[:code][key]
109
109
  end
110
110
  end
111
- alias [] lookup
111
+
112
+ def [](*v)
113
+ lookup(*v)
114
+ end
112
115
 
113
116
  def fetch(key, default = nil, &block)
114
117
  if block_given? && default
@@ -1,3 +1,3 @@
1
1
  module MemoryRecord
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
@@ -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 small number of records easy handling library}
11
- spec.summary = %q{A small number of records easy handling library}
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
 
@@ -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.6
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-09-09 00:00:00.000000000 Z
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 small number of records easy handling library
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 small number of records easy handling library
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