juno 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/juno/adapters/lruhash.rb +1 -2
- data/lib/juno/transformer.rb +8 -7
- data/lib/juno/version.rb +1 -1
- data/spec/adapter_lruhash_spec.rb +2 -2
- data/spec/generate.rb +11 -3
- data/spec/simple_lruhash_spec.rb +2 -2
- data/spec/simple_lruhash_with_expires_spec.rb +2 -2
- data/spec/transformer_compress_spec.rb +41 -0
- metadata +4 -2
@@ -4,8 +4,7 @@ module Juno
|
|
4
4
|
module Adapters
|
5
5
|
class LRUHash < Memory
|
6
6
|
def initialize(options = {})
|
7
|
-
|
8
|
-
@memory = Hashery::LRUHash.new(options[:max_size])
|
7
|
+
@memory = Hashery::LRUHash.new(options[:max_size] || 1024)
|
9
8
|
end
|
10
9
|
end
|
11
10
|
end
|
data/lib/juno/transformer.rb
CHANGED
@@ -9,13 +9,14 @@ module Juno
|
|
9
9
|
# end
|
10
10
|
class Transformer < Proxy
|
11
11
|
VALUE_TRANSFORMER = {
|
12
|
-
:marshal
|
13
|
-
:base64
|
14
|
-
:json
|
15
|
-
:yaml
|
12
|
+
:marshal => { :load => '::Marshal.load(VALUE)', :dump => '::Marshal.dump(VALUE)' },
|
13
|
+
:base64 => { :load => "VALUE.unpack('m').first", :dump => "[VALUE].pack('m').strip" },
|
14
|
+
:json => { :load => '::MultiJson.load(VALUE).first', :dump => '::MultiJson.dump([VALUE])', :require => 'multi_json' },
|
15
|
+
:yaml => { :load => '::YAML.load(VALUE)', :dump => '::YAML.dump(VALUE)', :require => 'yaml' },
|
16
16
|
#:tnet => { :load => '::TNetstring.parse(VALUE)', :dump => '::TNetstring.dump(VALUE)', :require => 'tnetstring' },
|
17
|
-
:msgpack
|
18
|
-
:bson
|
17
|
+
:msgpack => { :load => '::MessagePack.unpack(VALUE)', :dump => '::MessagePack.pack(VALUE)', :require => 'msgpack' },
|
18
|
+
:bson => { :load => '::BSON.deserialize(VALUE)["v"]', :dump => '::BSON.serialize({"v"=>VALUE})', :require => 'bson' },
|
19
|
+
:compress => { :load => '::Zlib::Inflate.inflate(VALUE)', :dump => '::Zlib::Deflate.deflate(VALUE)', :require => 'zlib' },
|
19
20
|
}
|
20
21
|
|
21
22
|
KEY_TRANSFORMER = {
|
@@ -27,7 +28,7 @@ module Juno
|
|
27
28
|
:bson => { :transform => '(TMP = KEY; String === TMP ? TMP : ::BSON.serialize({"k"=>TMP}).to_s)', :require => 'bson' },
|
28
29
|
:yaml => { :transform => '(TMP = KEY; String === TMP ? TMP : ::YAML.dump(TMP))', :require => 'yaml' },
|
29
30
|
:marshal => { :transform => '(TMP = KEY; String === TMP ? TMP : ::Marshal.dump(TMP))' },
|
30
|
-
#:tnet
|
31
|
+
#:tnet => { :transform => '(TMP = KEY; String === TMP ? TMP : ::TNetstring.dump(TMP))', :require => 'tnetstring' },
|
31
32
|
:msgpack => { :transform => '(TMP = KEY; String === TMP ? TMP : ::MessagePack.pack(TMP))', :require => 'msgpack' },
|
32
33
|
}
|
33
34
|
|
data/lib/juno/version.rb
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
require 'helper'
|
3
3
|
|
4
4
|
begin
|
5
|
-
Juno::Adapters::LRUHash.new
|
5
|
+
Juno::Adapters::LRUHash.new.close
|
6
6
|
|
7
7
|
describe "adapter_lruhash" do
|
8
8
|
before do
|
9
|
-
@store = Juno::Adapters::LRUHash.new
|
9
|
+
@store = Juno::Adapters::LRUHash.new
|
10
10
|
@store.clear
|
11
11
|
end
|
12
12
|
|
data/spec/generate.rb
CHANGED
@@ -13,11 +13,10 @@ TESTS = {
|
|
13
13
|
},
|
14
14
|
'simple_lruhash' => {
|
15
15
|
:store => :LRUHash,
|
16
|
-
:options => ':max_size => 10',
|
17
16
|
},
|
18
17
|
'simple_lruhash_with_expires' => {
|
19
18
|
:store => :LRUHash,
|
20
|
-
:options => ':expires => true
|
19
|
+
:options => ':expires => true',
|
21
20
|
:specs => EXPIRES_SPECS,
|
22
21
|
},
|
23
22
|
'simple_file' => {
|
@@ -333,6 +332,15 @@ Juno.build do
|
|
333
332
|
end},
|
334
333
|
:specs => [:null_stringkey_stringvalue, :store_stringkey_stringvalue]
|
335
334
|
},
|
335
|
+
'transformer_compress' => {
|
336
|
+
:build => %{
|
337
|
+
Juno.build do
|
338
|
+
use :Transformer, :value => :compress
|
339
|
+
adapter :Memory
|
340
|
+
end},
|
341
|
+
:value => %w(String),
|
342
|
+
:specs => [:null, :store, :returndifferent]
|
343
|
+
},
|
336
344
|
'transformer_json' => {
|
337
345
|
:build => %{
|
338
346
|
Juno.build do
|
@@ -520,7 +528,7 @@ end
|
|
520
528
|
:specs => [:null, :store]
|
521
529
|
},
|
522
530
|
'adapter_lruhash' => {
|
523
|
-
:build => 'Juno::Adapters::LRUHash.new
|
531
|
+
:build => 'Juno::Adapters::LRUHash.new',
|
524
532
|
:specs => [:null, :store]
|
525
533
|
},
|
526
534
|
'adapter_mongo' => {
|
data/spec/simple_lruhash_spec.rb
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
require 'helper'
|
3
3
|
|
4
4
|
begin
|
5
|
-
Juno.new(:LRUHash, :expires => true
|
5
|
+
Juno.new(:LRUHash, :expires => true).close
|
6
6
|
|
7
7
|
describe "simple_lruhash_with_expires" do
|
8
8
|
before do
|
9
|
-
@store = Juno.new(:LRUHash, :expires => true
|
9
|
+
@store = Juno.new(:LRUHash, :expires => true)
|
10
10
|
@store.clear
|
11
11
|
end
|
12
12
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# Generated file
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
begin
|
5
|
+
|
6
|
+
Juno.build do
|
7
|
+
use :Transformer, :value => :compress
|
8
|
+
adapter :Memory
|
9
|
+
end.close
|
10
|
+
|
11
|
+
describe "transformer_compress" do
|
12
|
+
before do
|
13
|
+
@store =
|
14
|
+
Juno.build do
|
15
|
+
use :Transformer, :value => :compress
|
16
|
+
adapter :Memory
|
17
|
+
end
|
18
|
+
@store.clear
|
19
|
+
end
|
20
|
+
|
21
|
+
after do
|
22
|
+
@store.close.should == nil if @store
|
23
|
+
end
|
24
|
+
|
25
|
+
it_should_behave_like 'null_objectkey_stringvalue'
|
26
|
+
it_should_behave_like 'null_stringkey_stringvalue'
|
27
|
+
it_should_behave_like 'null_hashkey_stringvalue'
|
28
|
+
it_should_behave_like 'store_objectkey_stringvalue'
|
29
|
+
it_should_behave_like 'store_stringkey_stringvalue'
|
30
|
+
it_should_behave_like 'store_hashkey_stringvalue'
|
31
|
+
it_should_behave_like 'returndifferent_objectkey_stringvalue'
|
32
|
+
it_should_behave_like 'returndifferent_stringkey_stringvalue'
|
33
|
+
it_should_behave_like 'returndifferent_hashkey_stringvalue'
|
34
|
+
|
35
|
+
end
|
36
|
+
rescue LoadError => ex
|
37
|
+
puts "Test transformer_compress not executed: #{ex.message}"
|
38
|
+
rescue Exception => ex
|
39
|
+
puts "Test transformer_compress not executed: #{ex.message}"
|
40
|
+
#puts "#{ex.backtrace.join("\n")}"
|
41
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: juno
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-11-
|
14
|
+
date: 2012-11-28 00:00:00.000000000 Z
|
15
15
|
dependencies: []
|
16
16
|
description: A unified interface to key/value stores (moneta replacement)
|
17
17
|
email:
|
@@ -149,6 +149,7 @@ files:
|
|
149
149
|
- spec/stack_file_memory_spec.rb
|
150
150
|
- spec/stack_memory_file_spec.rb
|
151
151
|
- spec/transformer_bson_spec.rb
|
152
|
+
- spec/transformer_compress_spec.rb
|
152
153
|
- spec/transformer_json_spec.rb
|
153
154
|
- spec/transformer_marshal_base64_spec.rb
|
154
155
|
- spec/transformer_marshal_escape_spec.rb
|
@@ -264,6 +265,7 @@ test_files:
|
|
264
265
|
- spec/stack_file_memory_spec.rb
|
265
266
|
- spec/stack_memory_file_spec.rb
|
266
267
|
- spec/transformer_bson_spec.rb
|
268
|
+
- spec/transformer_compress_spec.rb
|
267
269
|
- spec/transformer_json_spec.rb
|
268
270
|
- spec/transformer_marshal_base64_spec.rb
|
269
271
|
- spec/transformer_marshal_escape_spec.rb
|