ruby-ext 0.2.8 → 0.2.9
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.
- data/.git/COMMIT_EDITMSG +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +1 -0
- data/.git/logs/refs/heads/master +1 -0
- data/.git/logs/refs/remotes/origin/master +1 -0
- data/.git/objects/1a/a213d5a0e14f06205df279affdd619dc4cd007 +3 -0
- data/.git/objects/28/8b4f34ef24874a90b8e4ffd94d0135364eff69 +0 -0
- data/.git/objects/40/36a1a67f1217086c5d1519ecd6bc6c85172513 +0 -0
- data/.git/objects/4f/9369ec9f1e545a8a9886e72d35c5d50619e5ad +0 -0
- data/.git/objects/50/feaf03811afe046b8b26352ea4df398e758e69 +0 -0
- data/.git/objects/60/af5e032ebef4d6c67d6ebc78f197887ead048b +0 -0
- data/.git/objects/7d/20db5c3d8464243e317b69493492508c58f69c +0 -0
- data/.git/objects/7e/edd3522e4b8581039bbdc867ccfbc77c0ea004 +0 -0
- data/.git/objects/7f/12d75e489e7ee9f3e5f5e4dd886263e32f2acd +0 -0
- data/.git/objects/a4/45fcc1f4c5646c1fbd51d5fda9a69ccceeca76 +0 -0
- data/.git/objects/a6/91900cb5b7378b173ce55a29de35c18b26cd6e +0 -0
- data/.git/objects/b8/1e6cbe2f79fbff9a49c14390b47ac86a361cd6 +0 -0
- data/.git/objects/d0/4df35cc5f148c409cf89ecf56aaec49b232731 +0 -0
- data/.git/objects/d0/96982b098278550168750565c9db623fdf8670 +0 -0
- data/.git/objects/eb/47a6d6eadcdb78b8e9f4c8901d9ff60a1eb3f6 +0 -0
- data/.git/refs/heads/master +1 -1
- data/.git/refs/remotes/origin/master +1 -1
- data/Rakefile +1 -1
- data/lib/ruby_ext/declarative_cache.rb +29 -24
- data/lib/ruby_ext/string.rb +7 -7
- data/lib/ruby_ext.rb +1 -0
- data/old/lib/RubyExt/Localization/Module.rb +1 -1
- data/spec/declarative_cache_spec.rb +7 -6
- metadata +18 -3
data/.git/COMMIT_EDITMSG
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
upd cache
|
data/.git/index
CHANGED
Binary file
|
data/.git/logs/HEAD
CHANGED
@@ -17,3 +17,4 @@ edf084d86f4c5aa17fce73a22a44c2dda49c7cab 76d8411ad8aa53f568f378bd48dee0cfbd107a1
|
|
17
17
|
76d8411ad8aa53f568f378bd48dee0cfbd107a16 5564bf7edfff421a8a139bc630311a999e9187df alex <alex@amac.local> 1268680901 +0300 commit: upd should
|
18
18
|
5564bf7edfff421a8a139bc630311a999e9187df 3756676bcca271d513748813326b9d1cb06289b6 alex <alex@amac.local> 1268706445 +0300 commit: upd
|
19
19
|
3756676bcca271d513748813326b9d1cb06289b6 6be005ea42b15826dc18f25290a98ece86ec5847 alex <alex@amac.local> 1269314659 +0300 commit: fix
|
20
|
+
6be005ea42b15826dc18f25290a98ece86ec5847 a691900cb5b7378b173ce55a29de35c18b26cd6e alex <alex@amac.local> 1270054026 +0400 commit: upd cache
|
data/.git/logs/refs/heads/master
CHANGED
@@ -17,3 +17,4 @@ edf084d86f4c5aa17fce73a22a44c2dda49c7cab 76d8411ad8aa53f568f378bd48dee0cfbd107a1
|
|
17
17
|
76d8411ad8aa53f568f378bd48dee0cfbd107a16 5564bf7edfff421a8a139bc630311a999e9187df alex <alex@amac.local> 1268680901 +0300 commit: upd should
|
18
18
|
5564bf7edfff421a8a139bc630311a999e9187df 3756676bcca271d513748813326b9d1cb06289b6 alex <alex@amac.local> 1268706445 +0300 commit: upd
|
19
19
|
3756676bcca271d513748813326b9d1cb06289b6 6be005ea42b15826dc18f25290a98ece86ec5847 alex <alex@amac.local> 1269314659 +0300 commit: fix
|
20
|
+
6be005ea42b15826dc18f25290a98ece86ec5847 a691900cb5b7378b173ce55a29de35c18b26cd6e alex <alex@amac.local> 1270054026 +0400 commit: upd cache
|
@@ -15,3 +15,4 @@ ee69f9fad83c5b0668b62622037094e989d3c394 493774d80093f4ec3c6c3bfad21e1c8c9eaf41e
|
|
15
15
|
edf084d86f4c5aa17fce73a22a44c2dda49c7cab 76d8411ad8aa53f568f378bd48dee0cfbd107a16 alex <alex@amac.local> 1268137352 +0300 update by push
|
16
16
|
76d8411ad8aa53f568f378bd48dee0cfbd107a16 3756676bcca271d513748813326b9d1cb06289b6 alex <alex@amac.local> 1268706452 +0300 update by push
|
17
17
|
3756676bcca271d513748813326b9d1cb06289b6 6be005ea42b15826dc18f25290a98ece86ec5847 alex <alex@amac.local> 1269314668 +0300 update by push
|
18
|
+
6be005ea42b15826dc18f25290a98ece86ec5847 a691900cb5b7378b173ce55a29de35c18b26cd6e alex <alex@amac.local> 1270054037 +0400 update by push
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/.git/refs/heads/master
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
a691900cb5b7378b173ce55a29de35c18b26cd6e
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
a691900cb5b7378b173ce55a29de35c18b26cd6e
|
data/Rakefile
CHANGED
@@ -18,7 +18,7 @@ require 'fileutils'
|
|
18
18
|
|
19
19
|
spec = Gem::Specification.new do |s|
|
20
20
|
s.name = "ruby-ext"
|
21
|
-
s.version = "0.2.
|
21
|
+
s.version = "0.2.9"
|
22
22
|
s.summary = "Set of common Ruby language extensions"
|
23
23
|
s.description = "Set of common Ruby language extensions"
|
24
24
|
s.author = "Alexey Petrushin"
|
@@ -1,20 +1,20 @@
|
|
1
1
|
require 'monitor'
|
2
2
|
|
3
|
+
class Class
|
4
|
+
def cache! *methods
|
5
|
+
DeclarativeCache.cache! self, *methods
|
6
|
+
end
|
7
|
+
|
8
|
+
def cache_with_params! *methods
|
9
|
+
DeclarativeCache.cache_with_params! self, *methods
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
3
13
|
module DeclarativeCache
|
4
14
|
DISABLED = false
|
5
15
|
|
6
16
|
warn "CASHE DISABLED" if DISABLED
|
7
17
|
|
8
|
-
# It's not a good idea to mix Business Logic and Performance optimization,
|
9
|
-
# so i think these methods should be never used.
|
10
|
-
# def cached *methods
|
11
|
-
# DeclarativeCache.cached self, *methods
|
12
|
-
# end
|
13
|
-
#
|
14
|
-
# def cached_with_params *methods
|
15
|
-
# DeclarativeCache.cached_with_params self, *methods
|
16
|
-
# end
|
17
|
-
|
18
18
|
@versions, @alias_counter, @monitor = Hash.new{should! :be_never_called}, 0, Monitor.new
|
19
19
|
class << self
|
20
20
|
|
@@ -23,7 +23,7 @@ module DeclarativeCache
|
|
23
23
|
return :"m#{@alias_counter}"
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
26
|
+
def cache! *arg
|
27
27
|
vnames, klass, methods = parse_and_check_arguments *arg
|
28
28
|
|
29
29
|
return if DISABLED
|
@@ -43,7 +43,7 @@ module DeclarativeCache
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
def
|
46
|
+
def cache_with_params! *arg
|
47
47
|
vnames, klass, methods = parse_and_check_arguments *arg
|
48
48
|
|
49
49
|
return if DISABLED
|
@@ -79,20 +79,25 @@ module DeclarativeCache
|
|
79
79
|
|
80
80
|
protected
|
81
81
|
def parse_and_check_arguments *arg
|
82
|
-
arg.size.should! :>=,
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
82
|
+
arg.size.should! :>=, 2
|
83
|
+
|
84
|
+
if arg.size == 3
|
85
|
+
version_names = arg.shift
|
86
|
+
if version_names.is_a? Array
|
87
|
+
version_names.size.should! :>, 0
|
88
|
+
version_names = version_names.collect{|n| n.to_s}
|
89
|
+
else
|
90
|
+
version_names = version_names.to_s
|
91
|
+
end
|
92
|
+
|
93
|
+
klass = arg.shift
|
94
|
+
else
|
95
|
+
version_names = klass = arg.shift
|
96
|
+
end
|
97
|
+
|
93
98
|
klass.class.should! :be, [Class, Module]
|
94
99
|
|
95
|
-
methods = arg
|
100
|
+
methods = Array(arg.first)
|
96
101
|
defined = klass.instance_methods
|
97
102
|
methods.each do |m|
|
98
103
|
raise "Invalid method_name '#{m}'!" unless defined.include? m.to_s
|
data/lib/ruby_ext/string.rb
CHANGED
@@ -11,11 +11,11 @@ String.class_eval do
|
|
11
11
|
"@#{self}"
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
14
|
+
def interpolate binding
|
15
|
+
binding.should! :be_a, Binding
|
16
|
+
return gsub(/\#\{.+?\}/) do |term|
|
17
|
+
identifier = term.slice(2 .. term.size-2)
|
18
|
+
binding.eval identifier
|
19
|
+
end
|
20
|
+
end
|
21
21
|
end
|
data/lib/ruby_ext.rb
CHANGED
@@ -9,6 +9,7 @@ describe 'DeclarativeCache' do
|
|
9
9
|
class CachedClass
|
10
10
|
attr_accessor :value
|
11
11
|
def value_get; @value end
|
12
|
+
cache! :value_get
|
12
13
|
|
13
14
|
attr_accessor :value2
|
14
15
|
def value2_get; @value2 end
|
@@ -17,9 +18,9 @@ describe 'DeclarativeCache' do
|
|
17
18
|
def params_get param; @params[param] end
|
18
19
|
end
|
19
20
|
|
20
|
-
|
21
|
-
DeclarativeCache.
|
22
|
-
DeclarativeCache.
|
21
|
+
# DeclarativeCache.cache! CachedClass, :value_get
|
22
|
+
DeclarativeCache.cache! :cache_version_name, CachedClass, :value2_get
|
23
|
+
DeclarativeCache.cache_with_params! CachedClass, CachedClass, :params_get
|
23
24
|
|
24
25
|
it "Simple Cache" do
|
25
26
|
o = CachedClass.new
|
@@ -56,7 +57,7 @@ describe 'DeclarativeCache' do
|
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
59
|
-
DeclarativeCache.
|
60
|
+
DeclarativeCache.cache! CachedClass2, CachedClass2.singleton_class, :value_get
|
60
61
|
|
61
62
|
it "Simple Cache" do
|
62
63
|
CachedClass2.value = 0
|
@@ -75,8 +76,8 @@ describe 'DeclarativeCache' do
|
|
75
76
|
def value2_get params; @value2 end
|
76
77
|
end
|
77
78
|
|
78
|
-
DeclarativeCache.
|
79
|
-
DeclarativeCache.
|
79
|
+
DeclarativeCache.cache! [:class, :resource_update, :security_update], MultipleCacheVersions, :value_get
|
80
|
+
DeclarativeCache.cache_with_params! [:class, :resource_update, :security_update], MultipleCacheVersions, :value2_get
|
80
81
|
|
81
82
|
it "Multiple cache versions" do
|
82
83
|
o = MultipleCacheVersions.new
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 9
|
9
|
+
version: 0.2.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Alexey Petrushin
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-31 00:00:00 +04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -167,10 +167,12 @@ files:
|
|
167
167
|
- .git/objects/18/4a49936babbbd306a9d34846959d4a901d0014
|
168
168
|
- .git/objects/18/fa4a1fd6a6e5293c34c6eebefaff644c553a97
|
169
169
|
- .git/objects/19/342d43c2e91b7bca75f329bf758d69818c827e
|
170
|
+
- .git/objects/1a/a213d5a0e14f06205df279affdd619dc4cd007
|
170
171
|
- .git/objects/20/c2ee1bb9f6749181e464a4ce444092fc1a1ecb
|
171
172
|
- .git/objects/22/442fd63bedf426d8039bd36db647f4343a7c0c
|
172
173
|
- .git/objects/26/4d70a16bbad0c5b3b16fb7a92bcc6178f2cca2
|
173
174
|
- .git/objects/27/eb5694d78540b1a489a1aff5415d4713d5fca9
|
175
|
+
- .git/objects/28/8b4f34ef24874a90b8e4ffd94d0135364eff69
|
174
176
|
- .git/objects/29/88f150ee1623b97d234b2742b30caad382775b
|
175
177
|
- .git/objects/29/8cb590f97362cc7a326815dac3289a88b69153
|
176
178
|
- .git/objects/29/b721d4f9ccdd3e4ed3f58778a0ab9d660fc7b1
|
@@ -185,11 +187,14 @@ files:
|
|
185
187
|
- .git/objects/38/bf6dbb2520b448e08ac9cb353523bbc72118db
|
186
188
|
- .git/objects/3a/5fe0dc6aaa6e41eb8dd865fa7d7100f4e68ced
|
187
189
|
- .git/objects/3b/203741a23f9eb3df39a0444c4c5a4469a89c51
|
190
|
+
- .git/objects/40/36a1a67f1217086c5d1519ecd6bc6c85172513
|
188
191
|
- .git/objects/44/73d59f32a2806eca098ba6bf10cdc2e6453542
|
189
192
|
- .git/objects/44/e92f51b4c9a44497c7f170598fae64564052eb
|
190
193
|
- .git/objects/49/3774d80093f4ec3c6c3bfad21e1c8c9eaf41ec
|
191
194
|
- .git/objects/4b/2ac3de91e560277749f749ed47230ef080d36c
|
192
195
|
- .git/objects/4e/0a70ecd04d25a3c9c572224bab6eeae899b238
|
196
|
+
- .git/objects/4f/9369ec9f1e545a8a9886e72d35c5d50619e5ad
|
197
|
+
- .git/objects/50/feaf03811afe046b8b26352ea4df398e758e69
|
193
198
|
- .git/objects/52/94913c6107b381d1378279e58551fa2be7cecb
|
194
199
|
- .git/objects/54/4fb213faf0c1b4cc459ada84120823d204ae3a
|
195
200
|
- .git/objects/55/64bf7edfff421a8a139bc630311a999e9187df
|
@@ -206,6 +211,7 @@ files:
|
|
206
211
|
- .git/objects/5d/281b39340e5d448c63c8f439c9ca4035ccaf66
|
207
212
|
- .git/objects/5d/37379f1b929c7b82f96382fc256895a50e97fd
|
208
213
|
- .git/objects/60/a681e873ca0ae0b7da3f37dbc5701f6e42b970
|
214
|
+
- .git/objects/60/af5e032ebef4d6c67d6ebc78f197887ead048b
|
209
215
|
- .git/objects/61/beeaa4bc6790a469babafbdc7395e9e19dcb5d
|
210
216
|
- .git/objects/61/d4509b8fc63e53b8e5d417ace33919e8a7a8f2
|
211
217
|
- .git/objects/62/3a67b104c04e24316da21f3e229e1bc2ba9d31
|
@@ -224,6 +230,9 @@ files:
|
|
224
230
|
- .git/objects/76/d8411ad8aa53f568f378bd48dee0cfbd107a16
|
225
231
|
- .git/objects/77/141a7a91a61baff283e5f16e55a720d0bc65e0
|
226
232
|
- .git/objects/7b/1a120eb8491f04c4a0d16fe3571dcb57e98ca0
|
233
|
+
- .git/objects/7d/20db5c3d8464243e317b69493492508c58f69c
|
234
|
+
- .git/objects/7e/edd3522e4b8581039bbdc867ccfbc77c0ea004
|
235
|
+
- .git/objects/7f/12d75e489e7ee9f3e5f5e4dd886263e32f2acd
|
227
236
|
- .git/objects/7f/2c583d1fdcc5313140c57778be8b0d45824be9
|
228
237
|
- .git/objects/81/6bb8c35fe2169fa9ecbcd40941c440e5d032e1
|
229
238
|
- .git/objects/81/a5373f6837b02ace55c07cebf4a60fb6d4b084
|
@@ -240,8 +249,10 @@ files:
|
|
240
249
|
- .git/objects/9f/9a4ebb6d3b4f75ebebc57119b2cf61606d4685
|
241
250
|
- .git/objects/9f/e2acc9bded3dc0d29b1dfc7dc1b3bed5d72c8f
|
242
251
|
- .git/objects/a2/86e70b44656d702c655b0c470327b15463698d
|
252
|
+
- .git/objects/a4/45fcc1f4c5646c1fbd51d5fda9a69ccceeca76
|
243
253
|
- .git/objects/a4/ab487fcb12cfb831b09c525544f52d60a98598
|
244
254
|
- .git/objects/a4/d0f078375c5b39cee3083ad428912698777c7b
|
255
|
+
- .git/objects/a6/91900cb5b7378b173ce55a29de35c18b26cd6e
|
245
256
|
- .git/objects/a7/eab1d126c7e7e7d24c3a4159abe4e15a5c02fe
|
246
257
|
- .git/objects/a9/2112f979b22837fa6d3d39829eff7c3fd34947
|
247
258
|
- .git/objects/ab/daaab37771475482389bdfcb2021b1651ba399
|
@@ -253,6 +264,7 @@ files:
|
|
253
264
|
- .git/objects/b4/cbb05893636d6b7314fbc4df7e3a8dcaeb0de1
|
254
265
|
- .git/objects/b6/17a8cc2ae7f6ea496051db493aa56edc178073
|
255
266
|
- .git/objects/b6/863b5d4c0a4d87b81a9bbc29e786fcf7ef0df2
|
267
|
+
- .git/objects/b8/1e6cbe2f79fbff9a49c14390b47ac86a361cd6
|
256
268
|
- .git/objects/b8/919f6b8ea7306a4e75c38cf9743e5fb276516b
|
257
269
|
- .git/objects/b8/c374e1a9042d9c4a478bee2c2b5b469aba55d6
|
258
270
|
- .git/objects/bc/ee5c51061bdb9ab5a5aea4f00245a8ab3689b2
|
@@ -264,6 +276,8 @@ files:
|
|
264
276
|
- .git/objects/c5/23a701b0f4d7b69ec9744b4cd5fcd6dd7cbb50
|
265
277
|
- .git/objects/c9/c39c710d4de2a46c0ed97985641c2b8e4533a2
|
266
278
|
- .git/objects/ca/9716fd518aac44d4acaa94a86838cde6030f6a
|
279
|
+
- .git/objects/d0/4df35cc5f148c409cf89ecf56aaec49b232731
|
280
|
+
- .git/objects/d0/96982b098278550168750565c9db623fdf8670
|
267
281
|
- .git/objects/d0/b6eae8243889753a5a3e9a801b4dd5bcd09d91
|
268
282
|
- .git/objects/d2/366fe2df53e14c3069d23cad37fe21a8f1c129
|
269
283
|
- .git/objects/d4/8b935ca7e38d2434ceb1711544293f4baf8203
|
@@ -275,6 +289,7 @@ files:
|
|
275
289
|
- .git/objects/e1/a14b4ea58a788a7c7917ca6ca8162e51a8971d
|
276
290
|
- .git/objects/e9/03ba4c283cd16c7291500d4f80da24c8f5f4df
|
277
291
|
- .git/objects/e9/d385c1913656b7ce15a1ac1424361d2e065a6c
|
292
|
+
- .git/objects/eb/47a6d6eadcdb78b8e9f4c8901d9ff60a1eb3f6
|
278
293
|
- .git/objects/ed/f084d86f4c5aa17fce73a22a44c2dda49c7cab
|
279
294
|
- .git/objects/ee/69f9fad83c5b0668b62622037094e989d3c394
|
280
295
|
- .git/objects/ef/877695fc5c02b534ed53fcd877149e21d1534d
|