chimera 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +57 -0
  3. data/PostInstall.txt +7 -0
  4. data/README.rdoc +114 -0
  5. data/Rakefile +30 -0
  6. data/doc/NOTES +11 -0
  7. data/doc/examples/config.yml +16 -0
  8. data/doc/redis6379.conf +132 -0
  9. data/lib/chimera.rb +33 -0
  10. data/lib/chimera/associations.rb +146 -0
  11. data/lib/chimera/attributes.rb +52 -0
  12. data/lib/chimera/base.rb +95 -0
  13. data/lib/chimera/config.rb +9 -0
  14. data/lib/chimera/error.rb +12 -0
  15. data/lib/chimera/finders.rb +49 -0
  16. data/lib/chimera/geo_indexes.rb +76 -0
  17. data/lib/chimera/indexes.rb +177 -0
  18. data/lib/chimera/persistence.rb +70 -0
  19. data/lib/chimera/redis_objects.rb +345 -0
  20. data/lib/redis.rb +373 -0
  21. data/lib/redis/counter.rb +94 -0
  22. data/lib/redis/dist_redis.rb +149 -0
  23. data/lib/redis/hash_ring.rb +135 -0
  24. data/lib/redis/helpers/core_commands.rb +46 -0
  25. data/lib/redis/helpers/serialize.rb +25 -0
  26. data/lib/redis/list.rb +122 -0
  27. data/lib/redis/lock.rb +83 -0
  28. data/lib/redis/objects.rb +100 -0
  29. data/lib/redis/objects/counters.rb +132 -0
  30. data/lib/redis/objects/lists.rb +45 -0
  31. data/lib/redis/objects/locks.rb +71 -0
  32. data/lib/redis/objects/sets.rb +46 -0
  33. data/lib/redis/objects/values.rb +56 -0
  34. data/lib/redis/pipeline.rb +21 -0
  35. data/lib/redis/set.rb +156 -0
  36. data/lib/redis/value.rb +35 -0
  37. data/lib/riak_raw.rb +100 -0
  38. data/lib/typhoeus.rb +55 -0
  39. data/lib/typhoeus/.gitignore +1 -0
  40. data/lib/typhoeus/easy.rb +253 -0
  41. data/lib/typhoeus/filter.rb +28 -0
  42. data/lib/typhoeus/hydra.rb +210 -0
  43. data/lib/typhoeus/multi.rb +34 -0
  44. data/lib/typhoeus/remote.rb +306 -0
  45. data/lib/typhoeus/remote_method.rb +108 -0
  46. data/lib/typhoeus/remote_proxy_object.rb +48 -0
  47. data/lib/typhoeus/request.rb +124 -0
  48. data/lib/typhoeus/response.rb +39 -0
  49. data/lib/typhoeus/service.rb +20 -0
  50. data/script/console +10 -0
  51. data/script/destroy +14 -0
  52. data/script/generate +14 -0
  53. data/test/models.rb +49 -0
  54. data/test/test_chimera.rb +238 -0
  55. data/test/test_helper.rb +7 -0
  56. metadata +243 -0
@@ -0,0 +1,7 @@
1
+ require 'stringio'
2
+ require 'test/unit'
3
+ require File.dirname(__FILE__) + '/../lib/chimera'
4
+
5
+ Chimera.config_path = "#{File.dirname(__FILE__)}/../doc/examples/config.yml"
6
+ require File.dirname(__FILE__) + '/models'
7
+
metadata ADDED
@@ -0,0 +1,243 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chimera
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Ben Myles
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-03-05 00:00:00 -08:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: activesupport
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "="
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 3
29
+ - 0
30
+ - 0
31
+ - beta
32
+ version: 3.0.0.beta
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: uuidtools
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "="
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 2
44
+ - 1
45
+ - 1
46
+ version: 2.1.1
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: activemodel
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "="
55
+ - !ruby/object:Gem::Version
56
+ segments:
57
+ - 3
58
+ - 0
59
+ - 0
60
+ - beta
61
+ version: 3.0.0.beta
62
+ type: :runtime
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: brianmario-yajl-ruby
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "="
70
+ - !ruby/object:Gem::Version
71
+ segments:
72
+ - 0
73
+ - 6
74
+ - 3
75
+ version: 0.6.3
76
+ type: :runtime
77
+ version_requirements: *id004
78
+ - !ruby/object:Gem::Dependency
79
+ name: fast-stemmer
80
+ prerelease: false
81
+ requirement: &id005 !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "="
84
+ - !ruby/object:Gem::Version
85
+ segments:
86
+ - 1
87
+ - 0
88
+ - 0
89
+ version: 1.0.0
90
+ type: :runtime
91
+ version_requirements: *id005
92
+ - !ruby/object:Gem::Dependency
93
+ name: rubyforge
94
+ prerelease: false
95
+ requirement: &id006 !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ segments:
100
+ - 2
101
+ - 0
102
+ - 3
103
+ version: 2.0.3
104
+ type: :development
105
+ version_requirements: *id006
106
+ - !ruby/object:Gem::Dependency
107
+ name: gemcutter
108
+ prerelease: false
109
+ requirement: &id007 !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ segments:
114
+ - 0
115
+ - 4
116
+ - 1
117
+ version: 0.4.1
118
+ type: :development
119
+ version_requirements: *id007
120
+ - !ruby/object:Gem::Dependency
121
+ name: hoe
122
+ prerelease: false
123
+ requirement: &id008 !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - ">="
126
+ - !ruby/object:Gem::Version
127
+ segments:
128
+ - 2
129
+ - 5
130
+ - 0
131
+ version: 2.5.0
132
+ type: :development
133
+ version_requirements: *id008
134
+ description: |-
135
+ Chimera is an object mapper for Riak and Redis. The idea is to mix the advantages of Riak
136
+ (scalability, massive data storage) with Redis (atomicity, performance, data structures).
137
+ You should store the bulk of your data in Riak, and then use Redis data structures where
138
+ appropriate (for example, a counter or set of keys).
139
+
140
+ Internally, Chimera uses Redis for any indexes you define as well as some default indexes
141
+ that are automatically created. There's no built in sharding for Redis, but since it's
142
+ only being used for key storage and basic data elements you should be able to go a long
143
+ way with one Redis server (especially if you use the new Redis VM).
144
+ email:
145
+ - ben.myles@gmail.com
146
+ executables: []
147
+
148
+ extensions: []
149
+
150
+ extra_rdoc_files:
151
+ - History.txt
152
+ - Manifest.txt
153
+ - PostInstall.txt
154
+ files:
155
+ - doc/examples/config.yml
156
+ - doc/NOTES
157
+ - doc/redis6379.conf
158
+ - History.txt
159
+ - lib/chimera/associations.rb
160
+ - lib/chimera/attributes.rb
161
+ - lib/chimera/base.rb
162
+ - lib/chimera/config.rb
163
+ - lib/chimera/error.rb
164
+ - lib/chimera/finders.rb
165
+ - lib/chimera/geo_indexes.rb
166
+ - lib/chimera/indexes.rb
167
+ - lib/chimera/persistence.rb
168
+ - lib/chimera/redis_objects.rb
169
+ - lib/chimera.rb
170
+ - lib/redis/counter.rb
171
+ - lib/redis/dist_redis.rb
172
+ - lib/redis/hash_ring.rb
173
+ - lib/redis/helpers/core_commands.rb
174
+ - lib/redis/helpers/serialize.rb
175
+ - lib/redis/list.rb
176
+ - lib/redis/lock.rb
177
+ - lib/redis/objects/counters.rb
178
+ - lib/redis/objects/lists.rb
179
+ - lib/redis/objects/locks.rb
180
+ - lib/redis/objects/sets.rb
181
+ - lib/redis/objects/values.rb
182
+ - lib/redis/objects.rb
183
+ - lib/redis/pipeline.rb
184
+ - lib/redis/set.rb
185
+ - lib/redis/value.rb
186
+ - lib/redis.rb
187
+ - lib/riak_raw.rb
188
+ - lib/typhoeus/.gitignore
189
+ - lib/typhoeus/easy.rb
190
+ - lib/typhoeus/filter.rb
191
+ - lib/typhoeus/hydra.rb
192
+ - lib/typhoeus/multi.rb
193
+ - lib/typhoeus/remote.rb
194
+ - lib/typhoeus/remote_method.rb
195
+ - lib/typhoeus/remote_proxy_object.rb
196
+ - lib/typhoeus/request.rb
197
+ - lib/typhoeus/response.rb
198
+ - lib/typhoeus/service.rb
199
+ - lib/typhoeus.rb
200
+ - Manifest.txt
201
+ - PostInstall.txt
202
+ - Rakefile
203
+ - README.rdoc
204
+ - script/console
205
+ - script/destroy
206
+ - script/generate
207
+ - test/models.rb
208
+ - test/test_chimera.rb
209
+ - test/test_helper.rb
210
+ has_rdoc: true
211
+ homepage: http://github.com/#{github_username}/#{project_name}
212
+ licenses: []
213
+
214
+ post_install_message: PostInstall.txt
215
+ rdoc_options:
216
+ - --main
217
+ - README.rdoc
218
+ require_paths:
219
+ - lib
220
+ required_ruby_version: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ segments:
225
+ - 0
226
+ version: "0"
227
+ required_rubygems_version: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - ">="
230
+ - !ruby/object:Gem::Version
231
+ segments:
232
+ - 0
233
+ version: "0"
234
+ requirements: []
235
+
236
+ rubyforge_project: chimera
237
+ rubygems_version: 1.3.6
238
+ signing_key:
239
+ specification_version: 3
240
+ summary: Chimera is an object mapper for Riak and Redis
241
+ test_files:
242
+ - test/test_chimera.rb
243
+ - test/test_helper.rb