juno 0.3.1 → 0.4.0
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/README.md +2 -277
- data/juno.gemspec +6 -5
- data/lib/juno.rb +3 -122
- metadata +23 -307
- data/.gitignore +0 -6
- data/.travis.yml +0 -30
- data/Gemfile +0 -56
- data/LICENSE +0 -20
- data/Rakefile +0 -33
- data/SPEC.md +0 -71
- data/benchmarks/run.rb +0 -180
- data/lib/juno/adapters/activerecord.rb +0 -74
- data/lib/juno/adapters/cassandra.rb +0 -89
- data/lib/juno/adapters/cookie.rb +0 -35
- data/lib/juno/adapters/couch.rb +0 -57
- data/lib/juno/adapters/datamapper.rb +0 -76
- data/lib/juno/adapters/dbm.rb +0 -25
- data/lib/juno/adapters/file.rb +0 -60
- data/lib/juno/adapters/fog.rb +0 -51
- data/lib/juno/adapters/gdbm.rb +0 -25
- data/lib/juno/adapters/hbase.rb +0 -64
- data/lib/juno/adapters/leveldb.rb +0 -35
- data/lib/juno/adapters/localmemcache.rb +0 -26
- data/lib/juno/adapters/lruhash.rb +0 -83
- data/lib/juno/adapters/memcached.rb +0 -11
- data/lib/juno/adapters/memcached_dalli.rb +0 -51
- data/lib/juno/adapters/memcached_native.rb +0 -52
- data/lib/juno/adapters/memory.rb +0 -32
- data/lib/juno/adapters/mongo.rb +0 -50
- data/lib/juno/adapters/null.rb +0 -30
- data/lib/juno/adapters/pstore.rb +0 -58
- data/lib/juno/adapters/redis.rb +0 -56
- data/lib/juno/adapters/riak.rb +0 -57
- data/lib/juno/adapters/sdbm.rb +0 -35
- data/lib/juno/adapters/sequel.rb +0 -67
- data/lib/juno/adapters/sqlite.rb +0 -61
- data/lib/juno/adapters/tokyocabinet.rb +0 -41
- data/lib/juno/adapters/yaml.rb +0 -15
- data/lib/juno/base.rb +0 -62
- data/lib/juno/builder.rb +0 -39
- data/lib/juno/cache.rb +0 -78
- data/lib/juno/expires.rb +0 -47
- data/lib/juno/lock.rb +0 -44
- data/lib/juno/logger.rb +0 -86
- data/lib/juno/proxy.rb +0 -72
- data/lib/juno/stack.rb +0 -72
- data/lib/juno/transformer.rb +0 -176
- data/lib/juno/version.rb +0 -5
- data/lib/rack/cache/juno.rb +0 -93
- data/lib/rack/juno_cookies.rb +0 -64
- data/lib/rack/session/juno.rb +0 -63
- data/spec/generate.rb +0 -1068
- data/spec/helper.rb +0 -78
- data/spec/juno/adapter_activerecord_spec.rb +0 -27
- data/spec/juno/adapter_cassandra_spec.rb +0 -13
- data/spec/juno/adapter_cookie_spec.rb +0 -13
- data/spec/juno/adapter_couch_spec.rb +0 -13
- data/spec/juno/adapter_datamapper_spec.rb +0 -44
- data/spec/juno/adapter_dbm_spec.rb +0 -13
- data/spec/juno/adapter_file_spec.rb +0 -13
- data/spec/juno/adapter_fog_spec.rb +0 -18
- data/spec/juno/adapter_gdbm_spec.rb +0 -13
- data/spec/juno/adapter_hbase_spec.rb +0 -13
- data/spec/juno/adapter_leveldb_spec.rb +0 -13
- data/spec/juno/adapter_localmemcache_spec.rb +0 -13
- data/spec/juno/adapter_lruhash_spec.rb +0 -26
- data/spec/juno/adapter_memcached_dalli_spec.rb +0 -14
- data/spec/juno/adapter_memcached_native_spec.rb +0 -14
- data/spec/juno/adapter_memcached_spec.rb +0 -14
- data/spec/juno/adapter_memory_spec.rb +0 -34
- data/spec/juno/adapter_mongo_spec.rb +0 -13
- data/spec/juno/adapter_pstore_spec.rb +0 -16
- data/spec/juno/adapter_redis_spec.rb +0 -14
- data/spec/juno/adapter_riak_spec.rb +0 -17
- data/spec/juno/adapter_sdbm_spec.rb +0 -13
- data/spec/juno/adapter_sequel_spec.rb +0 -13
- data/spec/juno/adapter_sqlite_spec.rb +0 -13
- data/spec/juno/adapter_tokyocabinet_bdb_spec.rb +0 -13
- data/spec/juno/adapter_tokyocabinet_hdb_spec.rb +0 -13
- data/spec/juno/adapter_yaml_spec.rb +0 -16
- data/spec/juno/cache_file_memory_spec.rb +0 -29
- data/spec/juno/cache_memory_null_spec.rb +0 -18
- data/spec/juno/expires_file_spec.rb +0 -71
- data/spec/juno/expires_memory_spec.rb +0 -49
- data/spec/juno/lock_spec.rb +0 -37
- data/spec/juno/null_adapter_spec.rb +0 -22
- data/spec/juno/proxy_expires_memory_spec.rb +0 -51
- data/spec/juno/proxy_redis_spec.rb +0 -18
- data/spec/juno/simple_activerecord_spec.rb +0 -45
- data/spec/juno/simple_activerecord_with_expires_spec.rb +0 -46
- data/spec/juno/simple_cassandra_spec.rb +0 -46
- data/spec/juno/simple_couch_spec.rb +0 -45
- data/spec/juno/simple_couch_with_expires_spec.rb +0 -46
- data/spec/juno/simple_datamapper_spec.rb +0 -47
- data/spec/juno/simple_datamapper_with_expires_spec.rb +0 -48
- data/spec/juno/simple_datamapper_with_repository_spec.rb +0 -47
- data/spec/juno/simple_dbm_spec.rb +0 -45
- data/spec/juno/simple_dbm_with_expires_spec.rb +0 -46
- data/spec/juno/simple_file_spec.rb +0 -45
- data/spec/juno/simple_file_with_expires_spec.rb +0 -46
- data/spec/juno/simple_fog_spec.rb +0 -50
- data/spec/juno/simple_fog_with_expires_spec.rb +0 -52
- data/spec/juno/simple_gdbm_spec.rb +0 -45
- data/spec/juno/simple_gdbm_with_expires_spec.rb +0 -46
- data/spec/juno/simple_hashfile_spec.rb +0 -45
- data/spec/juno/simple_hashfile_with_expires_spec.rb +0 -46
- data/spec/juno/simple_hbase_spec.rb +0 -45
- data/spec/juno/simple_hbase_with_expires_spec.rb +0 -46
- data/spec/juno/simple_leveldb_spec.rb +0 -45
- data/spec/juno/simple_leveldb_with_expires_spec.rb +0 -46
- data/spec/juno/simple_localmemcache_spec.rb +0 -45
- data/spec/juno/simple_localmemcache_with_expires_spec.rb +0 -46
- data/spec/juno/simple_lruhash_spec.rb +0 -45
- data/spec/juno/simple_lruhash_with_expires_spec.rb +0 -46
- data/spec/juno/simple_memcached_dalli_spec.rb +0 -46
- data/spec/juno/simple_memcached_native_spec.rb +0 -46
- data/spec/juno/simple_memcached_spec.rb +0 -46
- data/spec/juno/simple_memory_spec.rb +0 -45
- data/spec/juno/simple_memory_with_compress_spec.rb +0 -45
- data/spec/juno/simple_memory_with_expires_spec.rb +0 -46
- data/spec/juno/simple_memory_with_json_key_serializer_spec.rb +0 -32
- data/spec/juno/simple_memory_with_json_md5_key_serializer_spec.rb +0 -32
- data/spec/juno/simple_memory_with_json_serializer_spec.rb +0 -22
- data/spec/juno/simple_memory_with_json_value_serializer_spec.rb +0 -29
- data/spec/juno/simple_memory_with_prefix_spec.rb +0 -45
- data/spec/juno/simple_memory_with_quicklz_compress_spec.rb +0 -45
- data/spec/juno/simple_mongo_spec.rb +0 -45
- data/spec/juno/simple_mongo_with_expires_spec.rb +0 -46
- data/spec/juno/simple_null_spec.rb +0 -32
- data/spec/juno/simple_pstore_spec.rb +0 -45
- data/spec/juno/simple_pstore_with_expires_spec.rb +0 -46
- data/spec/juno/simple_redis_spec.rb +0 -46
- data/spec/juno/simple_riak_spec.rb +0 -49
- data/spec/juno/simple_riak_with_expires_spec.rb +0 -50
- data/spec/juno/simple_sdbm_spec.rb +0 -45
- data/spec/juno/simple_sdbm_with_expires_spec.rb +0 -46
- data/spec/juno/simple_sequel_spec.rb +0 -45
- data/spec/juno/simple_sequel_with_expires_spec.rb +0 -46
- data/spec/juno/simple_sqlite_spec.rb +0 -45
- data/spec/juno/simple_sqlite_with_expires_spec.rb +0 -46
- data/spec/juno/simple_tokyocabinet_spec.rb +0 -45
- data/spec/juno/simple_tokyocabinet_with_expires_spec.rb +0 -46
- data/spec/juno/simple_yaml_spec.rb +0 -44
- data/spec/juno/simple_yaml_with_expires_spec.rb +0 -45
- data/spec/juno/stack_file_memory_spec.rb +0 -20
- data/spec/juno/stack_memory_file_spec.rb +0 -19
- data/spec/juno/transformer_bencode_spec.rb +0 -25
- data/spec/juno/transformer_bert_spec.rb +0 -25
- data/spec/juno/transformer_bson_spec.rb +0 -25
- data/spec/juno/transformer_bzip2_spec.rb +0 -22
- data/spec/juno/transformer_json_spec.rb +0 -25
- data/spec/juno/transformer_lzma_spec.rb +0 -22
- data/spec/juno/transformer_lzo_spec.rb +0 -22
- data/spec/juno/transformer_marshal_base64_spec.rb +0 -48
- data/spec/juno/transformer_marshal_escape_spec.rb +0 -48
- data/spec/juno/transformer_marshal_hmac_spec.rb +0 -48
- data/spec/juno/transformer_marshal_md5_spec.rb +0 -48
- data/spec/juno/transformer_marshal_md5_spread_spec.rb +0 -48
- data/spec/juno/transformer_marshal_prefix_spec.rb +0 -48
- data/spec/juno/transformer_marshal_rmd160_spec.rb +0 -48
- data/spec/juno/transformer_marshal_sha1_spec.rb +0 -48
- data/spec/juno/transformer_marshal_sha256_spec.rb +0 -48
- data/spec/juno/transformer_marshal_sha384_spec.rb +0 -48
- data/spec/juno/transformer_marshal_sha512_spec.rb +0 -48
- data/spec/juno/transformer_marshal_uuencode_spec.rb +0 -48
- data/spec/juno/transformer_msgpack_spec.rb +0 -25
- data/spec/juno/transformer_ox_spec.rb +0 -46
- data/spec/juno/transformer_quicklz_spec.rb +0 -22
- data/spec/juno/transformer_snappy_spec.rb +0 -22
- data/spec/juno/transformer_tnet_spec.rb +0 -25
- data/spec/juno/transformer_yaml_spec.rb +0 -46
- data/spec/juno/transformer_zlib_spec.rb +0 -22
- data/spec/junospecs.rb +0 -2284
- data/spec/rack/cache_juno_spec.rb +0 -355
- data/spec/rack/juno_cookies_spec.rb +0 -81
- data/spec/rack/session_juno_spec.rb +0 -305
data/README.md
CHANGED
|
@@ -1,277 +1,2 @@
|
|
|
1
|
-
Juno
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
[](http://travis-ci.org/minad/juno) [](https://gemnasium.com/minad/juno) [](https://codeclimate.com/github/minad/juno)
|
|
5
|
-
|
|
6
|
-
Juno provides a standard interface for interacting with various kinds of key/value stores. Juno
|
|
7
|
-
is based on Moneta and replaces it with a mostly compatible interface. The reason for the
|
|
8
|
-
fork was that Moneta was unmaintained for a long time.
|
|
9
|
-
|
|
10
|
-
Juno is very feature rich:
|
|
11
|
-
|
|
12
|
-
* Supports a lot of backends (See below)
|
|
13
|
-
* Supports proxies (Similar to [Rack middlewares](http://rack.github.com/))
|
|
14
|
-
* Custom serialization via `Juno::Transformer` proxy (Marshal/JSON/YAML and many more)
|
|
15
|
-
* Custom key transformation via `Juno::Transformer` proxy
|
|
16
|
-
* Value compression via `Juno::Transformer` proxy (Zlib, Snappy, QuickLZ, LZO)
|
|
17
|
-
* Expiration for all stores (Added via proxy `Juno::Expires` if not supported natively)
|
|
18
|
-
* Integration with [Rack](http://rack.github.com/) as cookie and session store and [Rack-Cache](https://github.com/rtomayko/rack-cache)
|
|
19
|
-
|
|
20
|
-
Juno is tested thoroughly using [Travis-CI](http://travis-ci.org/minad/juno).
|
|
21
|
-
|
|
22
|
-
Supported backends
|
|
23
|
-
------------------
|
|
24
|
-
|
|
25
|
-
Out of the box, it supports the following backends:
|
|
26
|
-
|
|
27
|
-
* Memory:
|
|
28
|
-
* In-memory store (`:Memory`)
|
|
29
|
-
* LRU hash - prefer this over :Memory! (`:LRUHash`)
|
|
30
|
-
* LocalMemCache (`:LocalMemCache`)
|
|
31
|
-
* Memcached store (`:Memcached`, `:MemcachedNative` and `:MemcachedDalli`)
|
|
32
|
-
* Relational Databases:
|
|
33
|
-
* DataMapper (`:DataMapper`)
|
|
34
|
-
* ActiveRecord (`:ActiveRecord`)
|
|
35
|
-
* Sequel (`:Sequel`)
|
|
36
|
-
* Sqlite3 (`:Sqlite`)
|
|
37
|
-
* Filesystem:
|
|
38
|
-
* PStore (`:PStore`)
|
|
39
|
-
* YAML store (`:YAML`)
|
|
40
|
-
* Filesystem directory store (`:File`)
|
|
41
|
-
* Filesystem directory store which spreads files in subdirectories using md5 hash (`:HashFile`)
|
|
42
|
-
* Key/value databases:
|
|
43
|
-
* Berkeley DB (`:DBM`)
|
|
44
|
-
* Cassandra (`:Cassandra`)
|
|
45
|
-
* GDBM (`:GDBM`)
|
|
46
|
-
* HBase (`:HBase`)
|
|
47
|
-
* LevelDB (`:LevelDB`)
|
|
48
|
-
* Redis (`:Redis`)
|
|
49
|
-
* Riak (`:Riak`)
|
|
50
|
-
* SDBM (`:SDBM`)
|
|
51
|
-
* TokyoCabinet (`:TokyoCabinet`)
|
|
52
|
-
* Document databases:
|
|
53
|
-
* CouchDB (`:Couch`)
|
|
54
|
-
* MongoDB (`:Mongo`)
|
|
55
|
-
* Other
|
|
56
|
-
* Fog cloud storage which supports Amazon S3, Rackspace, etc. (`:Fog`)
|
|
57
|
-
* Storage which doesn't store anything (`:Null`)
|
|
58
|
-
|
|
59
|
-
Some of the backends are not exactly based on key/value stores, e.g. the relational ones. These
|
|
60
|
-
are useful if you already use the corresponding backend in your application. You get a key/value
|
|
61
|
-
store for free then without installing any additional services and you still have the possibility
|
|
62
|
-
to upgrade to a real key/value store.
|
|
63
|
-
|
|
64
|
-
Proxies
|
|
65
|
-
-------
|
|
66
|
-
|
|
67
|
-
In addition it supports proxies (Similar to [Rack middlewares](http://rack.github.com/)) which
|
|
68
|
-
add additional features to storage backends:
|
|
69
|
-
|
|
70
|
-
* `Juno::Proxy` proxy base class
|
|
71
|
-
* `Juno::Expires` to add expiration support to stores which don't support it natively. Add it in the builder using `use :Expires`.
|
|
72
|
-
* `Juno::Stack` to stack multiple stores (Read returns result from first where the key is found, writes go to all stores). Add it in the builder using `use :Stack`.
|
|
73
|
-
* `Juno::Transformer` transforms keys and values (Marshal, YAML, JSON, Base64, MD5, ...). Add it in the builder using `use :Transformer`.
|
|
74
|
-
* `Juno::Cache` combine two stores, one as backend and one as cache (e.g. `Juno::Adapters::File` + `Juno::Adapters::Memory`). Add it in the builder using `use :Cache`.
|
|
75
|
-
* `Juno::Lock` to make store thread safe. Add it in the builder using `use :Lock`.
|
|
76
|
-
* `Juno::Logger` to log database accesses. Add it in the builder using `use :Logger`.
|
|
77
|
-
|
|
78
|
-
The Juno API is purposely extremely similar to the Hash API. In order so support an
|
|
79
|
-
identical API across stores, it does not support iteration or partial matches.
|
|
80
|
-
|
|
81
|
-
Supported serializers and compressors (`Juno::Transformer`)
|
|
82
|
-
-----------------------------------------------------------
|
|
83
|
-
|
|
84
|
-
Supported serializers:
|
|
85
|
-
|
|
86
|
-
* BEncode (`:bencode`)
|
|
87
|
-
* BERT (`:bert`)
|
|
88
|
-
* BSON (`:bson`)
|
|
89
|
-
* JSON (`:json`)
|
|
90
|
-
* Marshal (`:marshal`)
|
|
91
|
-
* MessagePack (`:msgpack`)
|
|
92
|
-
* Ox (`:ox`)
|
|
93
|
-
* TNetStrings (`:tnet`)
|
|
94
|
-
* YAML (`:yaml`)
|
|
95
|
-
|
|
96
|
-
Supported value compressors:
|
|
97
|
-
|
|
98
|
-
* LZMA (`:lzma`)
|
|
99
|
-
* LZO (`:lzo`)
|
|
100
|
-
* Snappy (`:snappy`)
|
|
101
|
-
* QuickLZ (`:quicklz`)
|
|
102
|
-
* Zlib (`:zlib`)
|
|
103
|
-
|
|
104
|
-
Special transformers:
|
|
105
|
-
|
|
106
|
-
* Digests (MD5, Shas, ...)
|
|
107
|
-
* Add prefix to keys (`:prefix`)
|
|
108
|
-
* HMAC to verify values (`:hmac`, useful for `Rack::JunoCookies`)
|
|
109
|
-
|
|
110
|
-
Links
|
|
111
|
-
-----
|
|
112
|
-
|
|
113
|
-
* Source: <http://github.com/minad/juno>
|
|
114
|
-
* Bugs: <http://github.com/minad/juno/issues>
|
|
115
|
-
* API documentation:
|
|
116
|
-
* Latest Gem: <http://rubydoc.info/gems/juno/frames>
|
|
117
|
-
* GitHub master: <http://rubydoc.info/github/minad/juno/master/frames>
|
|
118
|
-
|
|
119
|
-
Juno API
|
|
120
|
-
--------
|
|
121
|
-
|
|
122
|
-
~~~
|
|
123
|
-
#initialize(options) options differs per-store, and is used to set up the store
|
|
124
|
-
|
|
125
|
-
#[](key) retrieve a key. if the key is not available, return nil
|
|
126
|
-
|
|
127
|
-
#load(key, options = {}) retrieve a key. if the key is not available, return nil
|
|
128
|
-
|
|
129
|
-
#fetch(key, options = {}, &block) retrieve a key. if the key is not available, execute the
|
|
130
|
-
block and return its return value.
|
|
131
|
-
|
|
132
|
-
#fetch(key, value, options = {}) retrieve a key. if the key is not available, return the value
|
|
133
|
-
|
|
134
|
-
#[]=(key, value) set a value for a key. if the key is already used, clobber it.
|
|
135
|
-
keys set using []= will never expire
|
|
136
|
-
|
|
137
|
-
#delete(key, options = {}) delete the key from the store and return the current value
|
|
138
|
-
|
|
139
|
-
#key?(key, options = {}) true if the key exists, false if it does not
|
|
140
|
-
|
|
141
|
-
#store(key, value, options = {}) same as []=, but you can supply options
|
|
142
|
-
|
|
143
|
-
#clear(options = {}) clear all keys in this store
|
|
144
|
-
|
|
145
|
-
#close close database connection
|
|
146
|
-
~~~
|
|
147
|
-
|
|
148
|
-
Creating a Store
|
|
149
|
-
----------------
|
|
150
|
-
|
|
151
|
-
There is a simple interface to create a store using `Juno.new`:
|
|
152
|
-
|
|
153
|
-
~~~ ruby
|
|
154
|
-
store = Juno.new(:Memcached, :server => 'localhost:11211')
|
|
155
|
-
~~~
|
|
156
|
-
|
|
157
|
-
If you want to have control over the proxies, you have to use `Juno.build`:
|
|
158
|
-
|
|
159
|
-
~~~ ruby
|
|
160
|
-
store = Juno.build do
|
|
161
|
-
# Adds expires proxy
|
|
162
|
-
use :Expires
|
|
163
|
-
# Transform key using Marshal and Base64 and value using Marshal
|
|
164
|
-
use :Transformer, :key => [:marshal, :base64], :value => :marshal
|
|
165
|
-
# Memory backend
|
|
166
|
-
adapter :Memory
|
|
167
|
-
end
|
|
168
|
-
~~~
|
|
169
|
-
|
|
170
|
-
Expiration
|
|
171
|
-
----------
|
|
172
|
-
|
|
173
|
-
The Cassandra, Memcached and Redis backends supports expires values directly:
|
|
174
|
-
|
|
175
|
-
~~~ ruby
|
|
176
|
-
cache = Juno::Adapters::Memcached.new
|
|
177
|
-
|
|
178
|
-
# Or using the builder...
|
|
179
|
-
cache = Juno.build do
|
|
180
|
-
adapter :Memcached
|
|
181
|
-
end
|
|
182
|
-
|
|
183
|
-
# Expires in 60 seconds
|
|
184
|
-
cache.store(key, value, :expires => 60)
|
|
185
|
-
|
|
186
|
-
# Update expires time if value is found
|
|
187
|
-
cache.load(key, :expires => 30)
|
|
188
|
-
cache.key?(key, :expires => 30)
|
|
189
|
-
~~~
|
|
190
|
-
|
|
191
|
-
You can add the expires feature to other backends using the Expires proxy:
|
|
192
|
-
|
|
193
|
-
~~~ ruby
|
|
194
|
-
# Using the :expires option
|
|
195
|
-
cache = Juno.new(:File, :dir => '...', :expires => true)
|
|
196
|
-
|
|
197
|
-
# or manually by using the proxy...
|
|
198
|
-
cache = Juno::Expires.new(Juno::Adapters::File.new(:dir => '...'))
|
|
199
|
-
|
|
200
|
-
# or using the builder...
|
|
201
|
-
cache = Juno.build do
|
|
202
|
-
use :Expires
|
|
203
|
-
adapter :File, :dir => '...'
|
|
204
|
-
end
|
|
205
|
-
~~~
|
|
206
|
-
|
|
207
|
-
Framework Integration
|
|
208
|
-
---------------------
|
|
209
|
-
|
|
210
|
-
Inspired by [redis-store](https://github.com/jodosha/redis-store) there exist integration classes for [Rack](http://rack.github.com/) and [Rack-Cache](https://github.com/rtomayko/rack-cache).
|
|
211
|
-
|
|
212
|
-
Use Juno as a [Rack](http://rack.github.com/) session store:
|
|
213
|
-
|
|
214
|
-
~~~ ruby
|
|
215
|
-
require 'rack/session/juno'
|
|
216
|
-
|
|
217
|
-
use Rack::Session::Juno, :store => :Redis
|
|
218
|
-
use Rack::Session::Juno, :store => Juno.new(:Memory, :expires => true)
|
|
219
|
-
|
|
220
|
-
use Rack::Session::Juno do
|
|
221
|
-
use :Expires
|
|
222
|
-
adapter :Memory
|
|
223
|
-
end
|
|
224
|
-
~~~
|
|
225
|
-
|
|
226
|
-
Use Juno as a [Rack-Cache](https://github.com/rtomayko/rack-cache) store:
|
|
227
|
-
|
|
228
|
-
~~~ ruby
|
|
229
|
-
require 'rack/cache/juno'
|
|
230
|
-
|
|
231
|
-
use Rack::Cache,
|
|
232
|
-
:metastore => 'juno://Memory?expires=true',
|
|
233
|
-
:entitystore => 'juno://Memory?expires=true'
|
|
234
|
-
|
|
235
|
-
# Or used named Juno stores
|
|
236
|
-
Rack::Cache::Juno['named_metastore'] = Juno.build do
|
|
237
|
-
use :Expires
|
|
238
|
-
adapter :Memory
|
|
239
|
-
end
|
|
240
|
-
use Rack::Cache,
|
|
241
|
-
:metastore => 'juno://named_metastore',
|
|
242
|
-
:entity_store => 'juno://named_entitystore'
|
|
243
|
-
~~~
|
|
244
|
-
|
|
245
|
-
Use Juno to store cookies in [Rack](http://rack.github.com/). It uses the `Juno::Adapters::Cookie`. You might
|
|
246
|
-
wonder what the purpose of this store or Rack middleware is: It makes it possible
|
|
247
|
-
to use all the transformers on the cookies (e.g. `:prefix`, `:marshal` and `:hmac` for value verification).
|
|
248
|
-
|
|
249
|
-
~~~ ruby
|
|
250
|
-
require 'rack/juno_cookies'
|
|
251
|
-
|
|
252
|
-
use Rack::JunoCookies, :domain => 'example.com', :path => '/path'
|
|
253
|
-
run lambda do |env|
|
|
254
|
-
req = Rack::Request.new(env)
|
|
255
|
-
req.cookies #=> is now a Juno store!
|
|
256
|
-
env['rack.request.cookie_hash'] #=> is now a Juno store!
|
|
257
|
-
req.cookies['key'] #=> retrieves 'key'
|
|
258
|
-
req.cookies['key'] = 'value' #=> sets 'key'
|
|
259
|
-
req.cookies.delete('key') #=> removes 'key'
|
|
260
|
-
[200, {}, []]
|
|
261
|
-
end
|
|
262
|
-
~~~
|
|
263
|
-
|
|
264
|
-
Alternatives
|
|
265
|
-
------------
|
|
266
|
-
|
|
267
|
-
* [Moneta](https://github.com/wycats/moneta): Juno is based on Moneta, but Juno supports more features and more backends and is actively developed
|
|
268
|
-
* [Horcrux](https://github.com/technoweenie/horcrux): Used at github, supports batch operations but only Memcached backend
|
|
269
|
-
* [ToyStore](https://github.com/jnunemaker/toystore): ORM mapper for key/value stores
|
|
270
|
-
* [ToyStore Adapter](https://github.com/jnunemaker/adapter): Adapter to key/value stores used by ToyStore, Juno can be used directly with the ToyStore Memory adapter
|
|
271
|
-
|
|
272
|
-
Authors
|
|
273
|
-
-------
|
|
274
|
-
|
|
275
|
-
* Daniel Mendler
|
|
276
|
-
* Hannes Georg
|
|
277
|
-
* Moneta originally by Yehuda Katz and contributors
|
|
1
|
+
Juno development moved to https://github.com/minad/moneta
|
|
2
|
+
=========================================================
|
data/juno.gemspec
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
require File.dirname(__FILE__) + '/lib/juno/version'
|
|
3
2
|
require 'date'
|
|
4
3
|
|
|
5
4
|
Gem::Specification.new do |s|
|
|
6
5
|
s.name = 'juno'
|
|
7
|
-
s.version =
|
|
6
|
+
s.version = '0.4.0'
|
|
8
7
|
s.date = Date.today.to_s
|
|
9
8
|
s.authors = ['Daniel Mendler', 'Hannes Georg']
|
|
10
9
|
s.email = %w{mail@daniel-mendler.de hannes.georg@googlemail.com}
|
|
11
|
-
s.description = '
|
|
12
|
-
s.extra_rdoc_files = %w{README.md
|
|
10
|
+
s.description = 'Replaced by http://rubygems.org/gems/moneta'
|
|
11
|
+
s.extra_rdoc_files = %w{README.md}
|
|
13
12
|
s.files = `git ls-files`.split("\n")
|
|
14
13
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
15
14
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
16
15
|
s.homepage = 'http://github.com/minad/juno'
|
|
17
16
|
s.require_paths = ['lib']
|
|
18
|
-
s.summary =
|
|
17
|
+
s.summary = 'http://rubygems.org/gems/moneta'
|
|
18
|
+
s.post_install_message = 'WARNING: The gem juno has been replaced by moneta'
|
|
19
|
+
s.add_runtime_dependency('moneta', ['> 0.6.0'])
|
|
19
20
|
end
|
data/lib/juno.rb
CHANGED
|
@@ -1,122 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
autoload :Cache, 'juno/cache'
|
|
5
|
-
autoload :Expires, 'juno/expires'
|
|
6
|
-
autoload :Lock, 'juno/lock'
|
|
7
|
-
autoload :Logger, 'juno/logger'
|
|
8
|
-
autoload :Proxy, 'juno/proxy'
|
|
9
|
-
autoload :Stack, 'juno/stack'
|
|
10
|
-
autoload :Transformer, 'juno/transformer'
|
|
11
|
-
|
|
12
|
-
module Adapters
|
|
13
|
-
autoload :ActiveRecord, 'juno/adapters/activerecord'
|
|
14
|
-
autoload :Cassandra, 'juno/adapters/cassandra'
|
|
15
|
-
autoload :Cookie, 'juno/adapters/cookie'
|
|
16
|
-
autoload :Couch, 'juno/adapters/couch'
|
|
17
|
-
autoload :DataMapper, 'juno/adapters/datamapper'
|
|
18
|
-
autoload :DBM, 'juno/adapters/dbm'
|
|
19
|
-
autoload :File, 'juno/adapters/file'
|
|
20
|
-
autoload :Fog, 'juno/adapters/fog'
|
|
21
|
-
autoload :GDBM, 'juno/adapters/gdbm'
|
|
22
|
-
autoload :HBase, 'juno/adapters/hbase'
|
|
23
|
-
autoload :LevelDB, 'juno/adapters/leveldb'
|
|
24
|
-
autoload :LocalMemCache, 'juno/adapters/localmemcache'
|
|
25
|
-
autoload :LRUHash, 'juno/adapters/lruhash'
|
|
26
|
-
autoload :Memcached, 'juno/adapters/memcached'
|
|
27
|
-
autoload :MemcachedDalli, 'juno/adapters/memcached_dalli'
|
|
28
|
-
autoload :MemcachedNative, 'juno/adapters/memcached_native'
|
|
29
|
-
autoload :Memory, 'juno/adapters/memory'
|
|
30
|
-
autoload :Mongo, 'juno/adapters/mongo'
|
|
31
|
-
autoload :Null, 'juno/adapters/null'
|
|
32
|
-
autoload :PStore, 'juno/adapters/pstore'
|
|
33
|
-
autoload :Redis, 'juno/adapters/redis'
|
|
34
|
-
autoload :Riak, 'juno/adapters/riak'
|
|
35
|
-
autoload :SDBM, 'juno/adapters/sdbm'
|
|
36
|
-
autoload :Sequel, 'juno/adapters/sequel'
|
|
37
|
-
autoload :Sqlite, 'juno/adapters/sqlite'
|
|
38
|
-
autoload :TokyoCabinet, 'juno/adapters/tokyocabinet'
|
|
39
|
-
autoload :YAML, 'juno/adapters/yaml'
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
# Create new Juno store with default proxies
|
|
43
|
-
# which works in most cases if you don't want fine
|
|
44
|
-
# control over the proxy chain. It uses Marshal on the
|
|
45
|
-
# keys and values. Use Juno#build if you want to have fine control!
|
|
46
|
-
#
|
|
47
|
-
# @param [Symbol] name Name of adapter (See Juno::Adapters)
|
|
48
|
-
# @param [Hash] options
|
|
49
|
-
#
|
|
50
|
-
# Options:
|
|
51
|
-
# * :expires - If true, ensure that store supports expiration by inserting
|
|
52
|
-
# Juno::Expires if the underlying adapter doesn't support it natively
|
|
53
|
-
# * :threadsafe - If true, ensure that the store is thread safe by inserting Juno::Lock
|
|
54
|
-
# * :logger - If true or Hash, add logger to chain (Hash is passed to logger as options)
|
|
55
|
-
# * :compress - If true, compress value with zlib, or specify custom compress, e.g. :quicklz
|
|
56
|
-
# * :serializer - Serializer used for key and value, disable with nil (default :marshal)
|
|
57
|
-
# * :key_serializer - Serializer used for key, disable with nil (default options[:serializer] if not provided)
|
|
58
|
-
# * :value_serializer - Serializer used for key, disable with nil (default options[:serializer] if not provided)
|
|
59
|
-
# * :prefix - Key prefix used for namespacing (default none)
|
|
60
|
-
# * All other options passed to the adapter
|
|
61
|
-
#
|
|
62
|
-
# Supported adapters:
|
|
63
|
-
# * :HashFile (Store which spreads the entries using a md5 hash, e.g. cache/42/391dd7535aebef91b823286ac67fcd)
|
|
64
|
-
# * :File (normal file store)
|
|
65
|
-
# * :Memcached (Memcached store)
|
|
66
|
-
# * ... (All other adapters from Juno::Adapters)
|
|
67
|
-
def self.new(name, options = {})
|
|
68
|
-
expires = options.delete(:expires)
|
|
69
|
-
logger = options.delete(:logger)
|
|
70
|
-
threadsafe = options.delete(:threadsafe)
|
|
71
|
-
compress = options.delete(:compress)
|
|
72
|
-
serializer = options.include?(:serializer) ? options.delete(:serializer) : :marshal
|
|
73
|
-
key_serializer = options.include?(:key_serializer) ? options.delete(:key_serializer) : serializer
|
|
74
|
-
value_serializer = options.include?(:value_serializer) ? options.delete(:value_serialiizer) : serializer
|
|
75
|
-
transformer = { :key => [key_serializer], :value => [value_serializer], :prefix => options.delete(:prefix) }
|
|
76
|
-
transformer[:key] << :prefix if transformer[:prefix]
|
|
77
|
-
transformer[:value] << (Symbol === compress ? compress : :zlib) if compress
|
|
78
|
-
raise ArgumentError, 'Name must be Symbol' unless Symbol === name
|
|
79
|
-
case name
|
|
80
|
-
when :Sequel, :ActiveRecord, :Couch, :DataMapper
|
|
81
|
-
# Sequel accept only base64 keys and values
|
|
82
|
-
# FIXME: Couch should work only with :marshal but this raises an error on 1.9
|
|
83
|
-
transformer[:key] << :base64
|
|
84
|
-
transformer[:value] << :base64
|
|
85
|
-
when :Memcached, :MemcachedDalli, :MemcachedNative
|
|
86
|
-
# Memcached accept only base64 keys, expires already supported
|
|
87
|
-
expires = false
|
|
88
|
-
transformer[:key] << :base64
|
|
89
|
-
when :PStore, :YAML, :Null
|
|
90
|
-
# For PStore and YAML only the key has to be a string
|
|
91
|
-
transformer.delete(:value) if transformer[:value] == [:marshal]
|
|
92
|
-
when :HashFile
|
|
93
|
-
# Use spreading hashes
|
|
94
|
-
transformer[:key] << :md5 << :spread
|
|
95
|
-
name = :File
|
|
96
|
-
when :File
|
|
97
|
-
# Use escaping
|
|
98
|
-
transformer[:key] << :escape
|
|
99
|
-
when :Cassandra, :Redis
|
|
100
|
-
# Expires already supported
|
|
101
|
-
expires = false
|
|
102
|
-
end
|
|
103
|
-
build do
|
|
104
|
-
use :Logger, Hash === logger ? logger : {} if logger
|
|
105
|
-
use :Expires if expires
|
|
106
|
-
use :Transformer, transformer
|
|
107
|
-
use :Lock if threadsafe
|
|
108
|
-
adapter name, options
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
# Build your own store chain!
|
|
113
|
-
#
|
|
114
|
-
# @example Juno builder
|
|
115
|
-
# Juno.build do
|
|
116
|
-
# use :Expires
|
|
117
|
-
# adapter :Memory
|
|
118
|
-
# end
|
|
119
|
-
def self.build(&block)
|
|
120
|
-
Builder.new(&block).build.last
|
|
121
|
-
end
|
|
122
|
-
end
|
|
1
|
+
puts 'WARNING: Juno has been renamed to Moneta'
|
|
2
|
+
require 'moneta'
|
|
3
|
+
Juno = Moneta
|
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.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -10,9 +10,25 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2012-12-
|
|
14
|
-
dependencies:
|
|
15
|
-
|
|
13
|
+
date: 2012-12-23 00:00:00.000000000 Z
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: moneta
|
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
|
18
|
+
none: false
|
|
19
|
+
requirements:
|
|
20
|
+
- - ! '>'
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: 0.6.0
|
|
23
|
+
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
none: false
|
|
27
|
+
requirements:
|
|
28
|
+
- - ! '>'
|
|
29
|
+
- !ruby/object:Gem::Version
|
|
30
|
+
version: 0.6.0
|
|
31
|
+
description: Replaced by http://rubygems.org/gems/moneta
|
|
16
32
|
email:
|
|
17
33
|
- mail@daniel-mendler.de
|
|
18
34
|
- hannes.georg@googlemail.com
|
|
@@ -20,187 +36,13 @@ executables: []
|
|
|
20
36
|
extensions: []
|
|
21
37
|
extra_rdoc_files:
|
|
22
38
|
- README.md
|
|
23
|
-
- SPEC.md
|
|
24
|
-
- LICENSE
|
|
25
39
|
files:
|
|
26
|
-
- .gitignore
|
|
27
|
-
- .travis.yml
|
|
28
|
-
- Gemfile
|
|
29
|
-
- LICENSE
|
|
30
40
|
- README.md
|
|
31
|
-
- Rakefile
|
|
32
|
-
- SPEC.md
|
|
33
|
-
- benchmarks/run.rb
|
|
34
41
|
- juno.gemspec
|
|
35
42
|
- lib/juno.rb
|
|
36
|
-
- lib/juno/adapters/activerecord.rb
|
|
37
|
-
- lib/juno/adapters/cassandra.rb
|
|
38
|
-
- lib/juno/adapters/cookie.rb
|
|
39
|
-
- lib/juno/adapters/couch.rb
|
|
40
|
-
- lib/juno/adapters/datamapper.rb
|
|
41
|
-
- lib/juno/adapters/dbm.rb
|
|
42
|
-
- lib/juno/adapters/file.rb
|
|
43
|
-
- lib/juno/adapters/fog.rb
|
|
44
|
-
- lib/juno/adapters/gdbm.rb
|
|
45
|
-
- lib/juno/adapters/hbase.rb
|
|
46
|
-
- lib/juno/adapters/leveldb.rb
|
|
47
|
-
- lib/juno/adapters/localmemcache.rb
|
|
48
|
-
- lib/juno/adapters/lruhash.rb
|
|
49
|
-
- lib/juno/adapters/memcached.rb
|
|
50
|
-
- lib/juno/adapters/memcached_dalli.rb
|
|
51
|
-
- lib/juno/adapters/memcached_native.rb
|
|
52
|
-
- lib/juno/adapters/memory.rb
|
|
53
|
-
- lib/juno/adapters/mongo.rb
|
|
54
|
-
- lib/juno/adapters/null.rb
|
|
55
|
-
- lib/juno/adapters/pstore.rb
|
|
56
|
-
- lib/juno/adapters/redis.rb
|
|
57
|
-
- lib/juno/adapters/riak.rb
|
|
58
|
-
- lib/juno/adapters/sdbm.rb
|
|
59
|
-
- lib/juno/adapters/sequel.rb
|
|
60
|
-
- lib/juno/adapters/sqlite.rb
|
|
61
|
-
- lib/juno/adapters/tokyocabinet.rb
|
|
62
|
-
- lib/juno/adapters/yaml.rb
|
|
63
|
-
- lib/juno/base.rb
|
|
64
|
-
- lib/juno/builder.rb
|
|
65
|
-
- lib/juno/cache.rb
|
|
66
|
-
- lib/juno/expires.rb
|
|
67
|
-
- lib/juno/lock.rb
|
|
68
|
-
- lib/juno/logger.rb
|
|
69
|
-
- lib/juno/proxy.rb
|
|
70
|
-
- lib/juno/stack.rb
|
|
71
|
-
- lib/juno/transformer.rb
|
|
72
|
-
- lib/juno/version.rb
|
|
73
|
-
- lib/rack/cache/juno.rb
|
|
74
|
-
- lib/rack/juno_cookies.rb
|
|
75
|
-
- lib/rack/session/juno.rb
|
|
76
|
-
- spec/generate.rb
|
|
77
|
-
- spec/helper.rb
|
|
78
|
-
- spec/juno/adapter_activerecord_spec.rb
|
|
79
|
-
- spec/juno/adapter_cassandra_spec.rb
|
|
80
|
-
- spec/juno/adapter_cookie_spec.rb
|
|
81
|
-
- spec/juno/adapter_couch_spec.rb
|
|
82
|
-
- spec/juno/adapter_datamapper_spec.rb
|
|
83
|
-
- spec/juno/adapter_dbm_spec.rb
|
|
84
|
-
- spec/juno/adapter_file_spec.rb
|
|
85
|
-
- spec/juno/adapter_fog_spec.rb
|
|
86
|
-
- spec/juno/adapter_gdbm_spec.rb
|
|
87
|
-
- spec/juno/adapter_hbase_spec.rb
|
|
88
|
-
- spec/juno/adapter_leveldb_spec.rb
|
|
89
|
-
- spec/juno/adapter_localmemcache_spec.rb
|
|
90
|
-
- spec/juno/adapter_lruhash_spec.rb
|
|
91
|
-
- spec/juno/adapter_memcached_dalli_spec.rb
|
|
92
|
-
- spec/juno/adapter_memcached_native_spec.rb
|
|
93
|
-
- spec/juno/adapter_memcached_spec.rb
|
|
94
|
-
- spec/juno/adapter_memory_spec.rb
|
|
95
|
-
- spec/juno/adapter_mongo_spec.rb
|
|
96
|
-
- spec/juno/adapter_pstore_spec.rb
|
|
97
|
-
- spec/juno/adapter_redis_spec.rb
|
|
98
|
-
- spec/juno/adapter_riak_spec.rb
|
|
99
|
-
- spec/juno/adapter_sdbm_spec.rb
|
|
100
|
-
- spec/juno/adapter_sequel_spec.rb
|
|
101
|
-
- spec/juno/adapter_sqlite_spec.rb
|
|
102
|
-
- spec/juno/adapter_tokyocabinet_bdb_spec.rb
|
|
103
|
-
- spec/juno/adapter_tokyocabinet_hdb_spec.rb
|
|
104
|
-
- spec/juno/adapter_yaml_spec.rb
|
|
105
|
-
- spec/juno/cache_file_memory_spec.rb
|
|
106
|
-
- spec/juno/cache_memory_null_spec.rb
|
|
107
|
-
- spec/juno/expires_file_spec.rb
|
|
108
|
-
- spec/juno/expires_memory_spec.rb
|
|
109
|
-
- spec/juno/lock_spec.rb
|
|
110
|
-
- spec/juno/null_adapter_spec.rb
|
|
111
|
-
- spec/juno/proxy_expires_memory_spec.rb
|
|
112
|
-
- spec/juno/proxy_redis_spec.rb
|
|
113
|
-
- spec/juno/simple_activerecord_spec.rb
|
|
114
|
-
- spec/juno/simple_activerecord_with_expires_spec.rb
|
|
115
|
-
- spec/juno/simple_cassandra_spec.rb
|
|
116
|
-
- spec/juno/simple_couch_spec.rb
|
|
117
|
-
- spec/juno/simple_couch_with_expires_spec.rb
|
|
118
|
-
- spec/juno/simple_datamapper_spec.rb
|
|
119
|
-
- spec/juno/simple_datamapper_with_expires_spec.rb
|
|
120
|
-
- spec/juno/simple_datamapper_with_repository_spec.rb
|
|
121
|
-
- spec/juno/simple_dbm_spec.rb
|
|
122
|
-
- spec/juno/simple_dbm_with_expires_spec.rb
|
|
123
|
-
- spec/juno/simple_file_spec.rb
|
|
124
|
-
- spec/juno/simple_file_with_expires_spec.rb
|
|
125
|
-
- spec/juno/simple_fog_spec.rb
|
|
126
|
-
- spec/juno/simple_fog_with_expires_spec.rb
|
|
127
|
-
- spec/juno/simple_gdbm_spec.rb
|
|
128
|
-
- spec/juno/simple_gdbm_with_expires_spec.rb
|
|
129
|
-
- spec/juno/simple_hashfile_spec.rb
|
|
130
|
-
- spec/juno/simple_hashfile_with_expires_spec.rb
|
|
131
|
-
- spec/juno/simple_hbase_spec.rb
|
|
132
|
-
- spec/juno/simple_hbase_with_expires_spec.rb
|
|
133
|
-
- spec/juno/simple_leveldb_spec.rb
|
|
134
|
-
- spec/juno/simple_leveldb_with_expires_spec.rb
|
|
135
|
-
- spec/juno/simple_localmemcache_spec.rb
|
|
136
|
-
- spec/juno/simple_localmemcache_with_expires_spec.rb
|
|
137
|
-
- spec/juno/simple_lruhash_spec.rb
|
|
138
|
-
- spec/juno/simple_lruhash_with_expires_spec.rb
|
|
139
|
-
- spec/juno/simple_memcached_dalli_spec.rb
|
|
140
|
-
- spec/juno/simple_memcached_native_spec.rb
|
|
141
|
-
- spec/juno/simple_memcached_spec.rb
|
|
142
|
-
- spec/juno/simple_memory_spec.rb
|
|
143
|
-
- spec/juno/simple_memory_with_compress_spec.rb
|
|
144
|
-
- spec/juno/simple_memory_with_expires_spec.rb
|
|
145
|
-
- spec/juno/simple_memory_with_json_key_serializer_spec.rb
|
|
146
|
-
- spec/juno/simple_memory_with_json_md5_key_serializer_spec.rb
|
|
147
|
-
- spec/juno/simple_memory_with_json_serializer_spec.rb
|
|
148
|
-
- spec/juno/simple_memory_with_json_value_serializer_spec.rb
|
|
149
|
-
- spec/juno/simple_memory_with_prefix_spec.rb
|
|
150
|
-
- spec/juno/simple_memory_with_quicklz_compress_spec.rb
|
|
151
|
-
- spec/juno/simple_mongo_spec.rb
|
|
152
|
-
- spec/juno/simple_mongo_with_expires_spec.rb
|
|
153
|
-
- spec/juno/simple_null_spec.rb
|
|
154
|
-
- spec/juno/simple_pstore_spec.rb
|
|
155
|
-
- spec/juno/simple_pstore_with_expires_spec.rb
|
|
156
|
-
- spec/juno/simple_redis_spec.rb
|
|
157
|
-
- spec/juno/simple_riak_spec.rb
|
|
158
|
-
- spec/juno/simple_riak_with_expires_spec.rb
|
|
159
|
-
- spec/juno/simple_sdbm_spec.rb
|
|
160
|
-
- spec/juno/simple_sdbm_with_expires_spec.rb
|
|
161
|
-
- spec/juno/simple_sequel_spec.rb
|
|
162
|
-
- spec/juno/simple_sequel_with_expires_spec.rb
|
|
163
|
-
- spec/juno/simple_sqlite_spec.rb
|
|
164
|
-
- spec/juno/simple_sqlite_with_expires_spec.rb
|
|
165
|
-
- spec/juno/simple_tokyocabinet_spec.rb
|
|
166
|
-
- spec/juno/simple_tokyocabinet_with_expires_spec.rb
|
|
167
|
-
- spec/juno/simple_yaml_spec.rb
|
|
168
|
-
- spec/juno/simple_yaml_with_expires_spec.rb
|
|
169
|
-
- spec/juno/stack_file_memory_spec.rb
|
|
170
|
-
- spec/juno/stack_memory_file_spec.rb
|
|
171
|
-
- spec/juno/transformer_bencode_spec.rb
|
|
172
|
-
- spec/juno/transformer_bert_spec.rb
|
|
173
|
-
- spec/juno/transformer_bson_spec.rb
|
|
174
|
-
- spec/juno/transformer_bzip2_spec.rb
|
|
175
|
-
- spec/juno/transformer_json_spec.rb
|
|
176
|
-
- spec/juno/transformer_lzma_spec.rb
|
|
177
|
-
- spec/juno/transformer_lzo_spec.rb
|
|
178
|
-
- spec/juno/transformer_marshal_base64_spec.rb
|
|
179
|
-
- spec/juno/transformer_marshal_escape_spec.rb
|
|
180
|
-
- spec/juno/transformer_marshal_hmac_spec.rb
|
|
181
|
-
- spec/juno/transformer_marshal_md5_spec.rb
|
|
182
|
-
- spec/juno/transformer_marshal_md5_spread_spec.rb
|
|
183
|
-
- spec/juno/transformer_marshal_prefix_spec.rb
|
|
184
|
-
- spec/juno/transformer_marshal_rmd160_spec.rb
|
|
185
|
-
- spec/juno/transformer_marshal_sha1_spec.rb
|
|
186
|
-
- spec/juno/transformer_marshal_sha256_spec.rb
|
|
187
|
-
- spec/juno/transformer_marshal_sha384_spec.rb
|
|
188
|
-
- spec/juno/transformer_marshal_sha512_spec.rb
|
|
189
|
-
- spec/juno/transformer_marshal_uuencode_spec.rb
|
|
190
|
-
- spec/juno/transformer_msgpack_spec.rb
|
|
191
|
-
- spec/juno/transformer_ox_spec.rb
|
|
192
|
-
- spec/juno/transformer_quicklz_spec.rb
|
|
193
|
-
- spec/juno/transformer_snappy_spec.rb
|
|
194
|
-
- spec/juno/transformer_tnet_spec.rb
|
|
195
|
-
- spec/juno/transformer_yaml_spec.rb
|
|
196
|
-
- spec/juno/transformer_zlib_spec.rb
|
|
197
|
-
- spec/junospecs.rb
|
|
198
|
-
- spec/rack/cache_juno_spec.rb
|
|
199
|
-
- spec/rack/juno_cookies_spec.rb
|
|
200
|
-
- spec/rack/session_juno_spec.rb
|
|
201
43
|
homepage: http://github.com/minad/juno
|
|
202
44
|
licenses: []
|
|
203
|
-
post_install_message:
|
|
45
|
+
post_install_message: ! 'WARNING: The gem juno has been replaced by moneta'
|
|
204
46
|
rdoc_options: []
|
|
205
47
|
require_paths:
|
|
206
48
|
- lib
|
|
@@ -221,131 +63,5 @@ rubyforge_project:
|
|
|
221
63
|
rubygems_version: 1.8.24
|
|
222
64
|
signing_key:
|
|
223
65
|
specification_version: 3
|
|
224
|
-
summary:
|
|
225
|
-
|
|
226
|
-
test_files:
|
|
227
|
-
- spec/generate.rb
|
|
228
|
-
- spec/helper.rb
|
|
229
|
-
- spec/juno/adapter_activerecord_spec.rb
|
|
230
|
-
- spec/juno/adapter_cassandra_spec.rb
|
|
231
|
-
- spec/juno/adapter_cookie_spec.rb
|
|
232
|
-
- spec/juno/adapter_couch_spec.rb
|
|
233
|
-
- spec/juno/adapter_datamapper_spec.rb
|
|
234
|
-
- spec/juno/adapter_dbm_spec.rb
|
|
235
|
-
- spec/juno/adapter_file_spec.rb
|
|
236
|
-
- spec/juno/adapter_fog_spec.rb
|
|
237
|
-
- spec/juno/adapter_gdbm_spec.rb
|
|
238
|
-
- spec/juno/adapter_hbase_spec.rb
|
|
239
|
-
- spec/juno/adapter_leveldb_spec.rb
|
|
240
|
-
- spec/juno/adapter_localmemcache_spec.rb
|
|
241
|
-
- spec/juno/adapter_lruhash_spec.rb
|
|
242
|
-
- spec/juno/adapter_memcached_dalli_spec.rb
|
|
243
|
-
- spec/juno/adapter_memcached_native_spec.rb
|
|
244
|
-
- spec/juno/adapter_memcached_spec.rb
|
|
245
|
-
- spec/juno/adapter_memory_spec.rb
|
|
246
|
-
- spec/juno/adapter_mongo_spec.rb
|
|
247
|
-
- spec/juno/adapter_pstore_spec.rb
|
|
248
|
-
- spec/juno/adapter_redis_spec.rb
|
|
249
|
-
- spec/juno/adapter_riak_spec.rb
|
|
250
|
-
- spec/juno/adapter_sdbm_spec.rb
|
|
251
|
-
- spec/juno/adapter_sequel_spec.rb
|
|
252
|
-
- spec/juno/adapter_sqlite_spec.rb
|
|
253
|
-
- spec/juno/adapter_tokyocabinet_bdb_spec.rb
|
|
254
|
-
- spec/juno/adapter_tokyocabinet_hdb_spec.rb
|
|
255
|
-
- spec/juno/adapter_yaml_spec.rb
|
|
256
|
-
- spec/juno/cache_file_memory_spec.rb
|
|
257
|
-
- spec/juno/cache_memory_null_spec.rb
|
|
258
|
-
- spec/juno/expires_file_spec.rb
|
|
259
|
-
- spec/juno/expires_memory_spec.rb
|
|
260
|
-
- spec/juno/lock_spec.rb
|
|
261
|
-
- spec/juno/null_adapter_spec.rb
|
|
262
|
-
- spec/juno/proxy_expires_memory_spec.rb
|
|
263
|
-
- spec/juno/proxy_redis_spec.rb
|
|
264
|
-
- spec/juno/simple_activerecord_spec.rb
|
|
265
|
-
- spec/juno/simple_activerecord_with_expires_spec.rb
|
|
266
|
-
- spec/juno/simple_cassandra_spec.rb
|
|
267
|
-
- spec/juno/simple_couch_spec.rb
|
|
268
|
-
- spec/juno/simple_couch_with_expires_spec.rb
|
|
269
|
-
- spec/juno/simple_datamapper_spec.rb
|
|
270
|
-
- spec/juno/simple_datamapper_with_expires_spec.rb
|
|
271
|
-
- spec/juno/simple_datamapper_with_repository_spec.rb
|
|
272
|
-
- spec/juno/simple_dbm_spec.rb
|
|
273
|
-
- spec/juno/simple_dbm_with_expires_spec.rb
|
|
274
|
-
- spec/juno/simple_file_spec.rb
|
|
275
|
-
- spec/juno/simple_file_with_expires_spec.rb
|
|
276
|
-
- spec/juno/simple_fog_spec.rb
|
|
277
|
-
- spec/juno/simple_fog_with_expires_spec.rb
|
|
278
|
-
- spec/juno/simple_gdbm_spec.rb
|
|
279
|
-
- spec/juno/simple_gdbm_with_expires_spec.rb
|
|
280
|
-
- spec/juno/simple_hashfile_spec.rb
|
|
281
|
-
- spec/juno/simple_hashfile_with_expires_spec.rb
|
|
282
|
-
- spec/juno/simple_hbase_spec.rb
|
|
283
|
-
- spec/juno/simple_hbase_with_expires_spec.rb
|
|
284
|
-
- spec/juno/simple_leveldb_spec.rb
|
|
285
|
-
- spec/juno/simple_leveldb_with_expires_spec.rb
|
|
286
|
-
- spec/juno/simple_localmemcache_spec.rb
|
|
287
|
-
- spec/juno/simple_localmemcache_with_expires_spec.rb
|
|
288
|
-
- spec/juno/simple_lruhash_spec.rb
|
|
289
|
-
- spec/juno/simple_lruhash_with_expires_spec.rb
|
|
290
|
-
- spec/juno/simple_memcached_dalli_spec.rb
|
|
291
|
-
- spec/juno/simple_memcached_native_spec.rb
|
|
292
|
-
- spec/juno/simple_memcached_spec.rb
|
|
293
|
-
- spec/juno/simple_memory_spec.rb
|
|
294
|
-
- spec/juno/simple_memory_with_compress_spec.rb
|
|
295
|
-
- spec/juno/simple_memory_with_expires_spec.rb
|
|
296
|
-
- spec/juno/simple_memory_with_json_key_serializer_spec.rb
|
|
297
|
-
- spec/juno/simple_memory_with_json_md5_key_serializer_spec.rb
|
|
298
|
-
- spec/juno/simple_memory_with_json_serializer_spec.rb
|
|
299
|
-
- spec/juno/simple_memory_with_json_value_serializer_spec.rb
|
|
300
|
-
- spec/juno/simple_memory_with_prefix_spec.rb
|
|
301
|
-
- spec/juno/simple_memory_with_quicklz_compress_spec.rb
|
|
302
|
-
- spec/juno/simple_mongo_spec.rb
|
|
303
|
-
- spec/juno/simple_mongo_with_expires_spec.rb
|
|
304
|
-
- spec/juno/simple_null_spec.rb
|
|
305
|
-
- spec/juno/simple_pstore_spec.rb
|
|
306
|
-
- spec/juno/simple_pstore_with_expires_spec.rb
|
|
307
|
-
- spec/juno/simple_redis_spec.rb
|
|
308
|
-
- spec/juno/simple_riak_spec.rb
|
|
309
|
-
- spec/juno/simple_riak_with_expires_spec.rb
|
|
310
|
-
- spec/juno/simple_sdbm_spec.rb
|
|
311
|
-
- spec/juno/simple_sdbm_with_expires_spec.rb
|
|
312
|
-
- spec/juno/simple_sequel_spec.rb
|
|
313
|
-
- spec/juno/simple_sequel_with_expires_spec.rb
|
|
314
|
-
- spec/juno/simple_sqlite_spec.rb
|
|
315
|
-
- spec/juno/simple_sqlite_with_expires_spec.rb
|
|
316
|
-
- spec/juno/simple_tokyocabinet_spec.rb
|
|
317
|
-
- spec/juno/simple_tokyocabinet_with_expires_spec.rb
|
|
318
|
-
- spec/juno/simple_yaml_spec.rb
|
|
319
|
-
- spec/juno/simple_yaml_with_expires_spec.rb
|
|
320
|
-
- spec/juno/stack_file_memory_spec.rb
|
|
321
|
-
- spec/juno/stack_memory_file_spec.rb
|
|
322
|
-
- spec/juno/transformer_bencode_spec.rb
|
|
323
|
-
- spec/juno/transformer_bert_spec.rb
|
|
324
|
-
- spec/juno/transformer_bson_spec.rb
|
|
325
|
-
- spec/juno/transformer_bzip2_spec.rb
|
|
326
|
-
- spec/juno/transformer_json_spec.rb
|
|
327
|
-
- spec/juno/transformer_lzma_spec.rb
|
|
328
|
-
- spec/juno/transformer_lzo_spec.rb
|
|
329
|
-
- spec/juno/transformer_marshal_base64_spec.rb
|
|
330
|
-
- spec/juno/transformer_marshal_escape_spec.rb
|
|
331
|
-
- spec/juno/transformer_marshal_hmac_spec.rb
|
|
332
|
-
- spec/juno/transformer_marshal_md5_spec.rb
|
|
333
|
-
- spec/juno/transformer_marshal_md5_spread_spec.rb
|
|
334
|
-
- spec/juno/transformer_marshal_prefix_spec.rb
|
|
335
|
-
- spec/juno/transformer_marshal_rmd160_spec.rb
|
|
336
|
-
- spec/juno/transformer_marshal_sha1_spec.rb
|
|
337
|
-
- spec/juno/transformer_marshal_sha256_spec.rb
|
|
338
|
-
- spec/juno/transformer_marshal_sha384_spec.rb
|
|
339
|
-
- spec/juno/transformer_marshal_sha512_spec.rb
|
|
340
|
-
- spec/juno/transformer_marshal_uuencode_spec.rb
|
|
341
|
-
- spec/juno/transformer_msgpack_spec.rb
|
|
342
|
-
- spec/juno/transformer_ox_spec.rb
|
|
343
|
-
- spec/juno/transformer_quicklz_spec.rb
|
|
344
|
-
- spec/juno/transformer_snappy_spec.rb
|
|
345
|
-
- spec/juno/transformer_tnet_spec.rb
|
|
346
|
-
- spec/juno/transformer_yaml_spec.rb
|
|
347
|
-
- spec/juno/transformer_zlib_spec.rb
|
|
348
|
-
- spec/junospecs.rb
|
|
349
|
-
- spec/rack/cache_juno_spec.rb
|
|
350
|
-
- spec/rack/juno_cookies_spec.rb
|
|
351
|
-
- spec/rack/session_juno_spec.rb
|
|
66
|
+
summary: http://rubygems.org/gems/moneta
|
|
67
|
+
test_files: []
|