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 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