chimera 0.0.1

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