timchen-cache-money 0.2.25.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 (48) hide show
  1. data/LICENSE +201 -0
  2. data/README +210 -0
  3. data/README.markdown +210 -0
  4. data/TODO +17 -0
  5. data/UNSUPPORTED_FEATURES +13 -0
  6. data/config/environment.rb +16 -0
  7. data/config/memcached.yml +6 -0
  8. data/db/schema.rb +18 -0
  9. data/init.rb +1 -0
  10. data/lib/cache_money.rb +91 -0
  11. data/lib/cash/accessor.rb +83 -0
  12. data/lib/cash/buffered.rb +129 -0
  13. data/lib/cash/config.rb +75 -0
  14. data/lib/cash/fake.rb +83 -0
  15. data/lib/cash/finders.rb +38 -0
  16. data/lib/cash/index.rb +214 -0
  17. data/lib/cash/local.rb +76 -0
  18. data/lib/cash/lock.rb +63 -0
  19. data/lib/cash/mock.rb +154 -0
  20. data/lib/cash/query/abstract.rb +219 -0
  21. data/lib/cash/query/calculation.rb +45 -0
  22. data/lib/cash/query/primary_key.rb +50 -0
  23. data/lib/cash/query/select.rb +16 -0
  24. data/lib/cash/request.rb +3 -0
  25. data/lib/cash/transactional.rb +43 -0
  26. data/lib/cash/util/array.rb +9 -0
  27. data/lib/cash/util/marshal.rb +19 -0
  28. data/lib/cash/write_through.rb +69 -0
  29. data/lib/mem_cached_session_store.rb +49 -0
  30. data/lib/mem_cached_support_store.rb +135 -0
  31. data/lib/memcached_wrapper.rb +263 -0
  32. data/rails/init.rb +44 -0
  33. data/spec/cash/accessor_spec.rb +186 -0
  34. data/spec/cash/active_record_spec.rb +224 -0
  35. data/spec/cash/buffered_spec.rb +9 -0
  36. data/spec/cash/calculations_spec.rb +78 -0
  37. data/spec/cash/finders_spec.rb +430 -0
  38. data/spec/cash/local_buffer_spec.rb +9 -0
  39. data/spec/cash/local_spec.rb +9 -0
  40. data/spec/cash/lock_spec.rb +108 -0
  41. data/spec/cash/marshal_spec.rb +60 -0
  42. data/spec/cash/order_spec.rb +172 -0
  43. data/spec/cash/transactional_spec.rb +578 -0
  44. data/spec/cash/window_spec.rb +195 -0
  45. data/spec/cash/write_through_spec.rb +245 -0
  46. data/spec/memcached_wrapper_test.rb +209 -0
  47. data/spec/spec_helper.rb +61 -0
  48. metadata +184 -0
@@ -0,0 +1,61 @@
1
+ dir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift "#{dir}/../lib"
3
+
4
+ require File.join(dir, '../config/environment')
5
+ require 'spec'
6
+ require 'pp'
7
+ require 'cache_money'
8
+ #require 'memcache'
9
+ require 'memcached'
10
+ require 'memcached_wrapper'
11
+
12
+ Spec::Runner.configure do |config|
13
+ config.mock_with :rr
14
+ config.before :suite do
15
+ load File.join(dir, "../db/schema.rb")
16
+
17
+ config = YAML.load(IO.read((File.expand_path(File.dirname(__FILE__) + "/../config/memcached.yml"))))['test']
18
+ $memcache = MemcachedWrapper.new(config["servers"].gsub(' ', '').split(','), config)
19
+ $lock = Cash::Lock.new($memcache)
20
+ end
21
+
22
+ config.before :each do
23
+ $memcache.flush_all
24
+ Story.delete_all
25
+ Character.delete_all
26
+ end
27
+
28
+ config.before :suite do
29
+ ActiveRecord::Base.class_eval do
30
+ is_cached :repository => Cash::Transactional.new($memcache, $lock)
31
+ end
32
+
33
+ Character = Class.new(ActiveRecord::Base)
34
+ Story = Class.new(ActiveRecord::Base)
35
+ Story.has_many :characters
36
+
37
+ Story.class_eval do
38
+ index :title
39
+ index [:id, :title]
40
+ index :published
41
+ end
42
+
43
+ Short = Class.new(Story)
44
+ Short.class_eval do
45
+ index :subtitle, :order_column => 'title'
46
+ end
47
+
48
+ Epic = Class.new(Story)
49
+ Oral = Class.new(Epic)
50
+
51
+ Character.class_eval do
52
+ index [:name, :story_id]
53
+ index [:id, :story_id]
54
+ index [:id, :name, :story_id]
55
+ end
56
+
57
+ Oral.class_eval do
58
+ index :subtitle
59
+ end
60
+ end
61
+ end
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: timchen-cache-money
3
+ version: !ruby/object:Gem::Version
4
+ hash: 57
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 25
10
+ - 1
11
+ version: 0.2.25.1
12
+ platform: ruby
13
+ authors:
14
+ - Nick Kallen
15
+ - Ashley Martens
16
+ - Scott Mace
17
+ - John O'Neill
18
+ autorequire:
19
+ bindir: bin
20
+ cert_chain: []
21
+
22
+ date: 2011-04-13 00:00:00 -07:00
23
+ default_executable:
24
+ dependencies:
25
+ - !ruby/object:Gem::Dependency
26
+ name: activerecord
27
+ prerelease: false
28
+ requirement: &id001 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ hash: 7
34
+ segments:
35
+ - 2
36
+ - 2
37
+ - 0
38
+ version: 2.2.0
39
+ type: :runtime
40
+ version_requirements: *id001
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ prerelease: false
44
+ requirement: &id002 !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ hash: 7
50
+ segments:
51
+ - 2
52
+ - 2
53
+ - 0
54
+ version: 2.2.0
55
+ type: :runtime
56
+ version_requirements: *id002
57
+ - !ruby/object:Gem::Dependency
58
+ name: dalli
59
+ prerelease: false
60
+ requirement: &id003 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ hash: 17
66
+ segments:
67
+ - 1
68
+ - 0
69
+ - 3
70
+ version: 1.0.3
71
+ type: :runtime
72
+ version_requirements: *id003
73
+ description: Write-through and Read-through Cacheing for ActiveRecord
74
+ email: teamplatform@ngmoco.com
75
+ executables: []
76
+
77
+ extensions: []
78
+
79
+ extra_rdoc_files:
80
+ - LICENSE
81
+ - README
82
+ - README.markdown
83
+ - TODO
84
+ files:
85
+ - README
86
+ - TODO
87
+ - UNSUPPORTED_FEATURES
88
+ - init.rb
89
+ - lib/cache_money.rb
90
+ - lib/cash/accessor.rb
91
+ - lib/cash/buffered.rb
92
+ - lib/cash/config.rb
93
+ - lib/cash/fake.rb
94
+ - lib/cash/finders.rb
95
+ - lib/cash/index.rb
96
+ - lib/cash/local.rb
97
+ - lib/cash/lock.rb
98
+ - lib/cash/mock.rb
99
+ - lib/cash/query/abstract.rb
100
+ - lib/cash/query/calculation.rb
101
+ - lib/cash/query/primary_key.rb
102
+ - lib/cash/query/select.rb
103
+ - lib/cash/request.rb
104
+ - lib/cash/transactional.rb
105
+ - lib/cash/util/array.rb
106
+ - lib/cash/util/marshal.rb
107
+ - lib/cash/write_through.rb
108
+ - lib/mem_cached_session_store.rb
109
+ - lib/mem_cached_support_store.rb
110
+ - lib/memcached_wrapper.rb
111
+ - rails/init.rb
112
+ - LICENSE
113
+ - README.markdown
114
+ - config/environment.rb
115
+ - config/memcached.yml
116
+ - db/schema.rb
117
+ - spec/cash/accessor_spec.rb
118
+ - spec/cash/active_record_spec.rb
119
+ - spec/cash/buffered_spec.rb
120
+ - spec/cash/calculations_spec.rb
121
+ - spec/cash/finders_spec.rb
122
+ - spec/cash/local_buffer_spec.rb
123
+ - spec/cash/local_spec.rb
124
+ - spec/cash/lock_spec.rb
125
+ - spec/cash/marshal_spec.rb
126
+ - spec/cash/order_spec.rb
127
+ - spec/cash/transactional_spec.rb
128
+ - spec/cash/window_spec.rb
129
+ - spec/cash/write_through_spec.rb
130
+ - spec/memcached_wrapper_test.rb
131
+ - spec/spec_helper.rb
132
+ has_rdoc: true
133
+ homepage: http://github.com/timchen/cache-money
134
+ licenses: []
135
+
136
+ post_install_message:
137
+ rdoc_options:
138
+ - --charset=UTF-8
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ hash: 3
147
+ segments:
148
+ - 0
149
+ version: "0"
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ hash: 3
156
+ segments:
157
+ - 0
158
+ version: "0"
159
+ requirements: []
160
+
161
+ rubyforge_project:
162
+ rubygems_version: 1.4.2
163
+ signing_key:
164
+ specification_version: 3
165
+ summary: Write-through and Read-through Cacheing for ActiveRecord
166
+ test_files:
167
+ - config/environment.rb
168
+ - config/memcached.yml
169
+ - db/schema.rb
170
+ - spec/cash/accessor_spec.rb
171
+ - spec/cash/active_record_spec.rb
172
+ - spec/cash/buffered_spec.rb
173
+ - spec/cash/calculations_spec.rb
174
+ - spec/cash/finders_spec.rb
175
+ - spec/cash/local_buffer_spec.rb
176
+ - spec/cash/local_spec.rb
177
+ - spec/cash/lock_spec.rb
178
+ - spec/cash/marshal_spec.rb
179
+ - spec/cash/order_spec.rb
180
+ - spec/cash/transactional_spec.rb
181
+ - spec/cash/window_spec.rb
182
+ - spec/cash/write_through_spec.rb
183
+ - spec/memcached_wrapper_test.rb
184
+ - spec/spec_helper.rb