Commit Graph

84 Commits

Author SHA1 Message Date
José Valim
bb44cd727f Tidy up previous commit. 2011-04-28 09:47:07 +02:00
José Valim
182d00897a Merged pull request #219 from panthomakos/memcache.
Character encoding issues with MemCacheStore in 1.9.2
2011-04-28 00:40:42 -07:00
Arun Agrawal
92537b8c27 File should be open in read/write mode. When doing lock on a file. 2011-04-18 09:08:53 -07:00
Prem Sichanugrist
733bfa63f5 Remove #among? from Active Support
After a long list of discussion about the performance problem from using varargs and the reason that we can't find a great pair for it, it would be best to remove support for it for now.

It will come back if we can find a good pair for it. For now, Bon Voyage, `#among?`.
2011-04-13 20:25:28 +08:00
David Heinemeier Hansson
d1575ae1b9 Change Object#either? to Object#among? -- thanks to @jamesarosen for the suggestion! 2011-04-12 00:23:07 +02:00
Prem Sichanugrist
a9f3c9da01 Using Object#in? and Object#either? in various places
There're a lot of places in Rails source code which make a lot of sense to switching to Object#in? or Object#either? instead of using [].include?.
2011-04-11 03:17:09 +08:00
Pan Thomakos
72759f5867 Fixed special character encoding issue with MemCacheStore in Ruby 1.9.2. 2011-03-11 17:57:28 -08:00
Aaron Patterson
dc89e29f49 remove to_s implementation so that inspect is helpful 2011-03-02 15:17:13 -08:00
Aaron Patterson
b247c8d71a * LocalCache strategy is now a real middleware class, not an anonymous class
posing for pictures.
2011-03-02 14:05:06 -08:00
Denis Odorcic
c452d734f2 Fix FileStore cache incorrectly regenerating its key from a pathname when a regexp is used in expire_fragment
[#5850 state:committed]

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
2010-11-07 20:01:51 -02:00
Wincent Colaiuta
f659a1576f Fix misleading advice to add 'memcache' to Gemfile
[#5539 state:committed]

Commit 57144388f removed the hard-coded dependency on the memcache-client
gem, and added this warning advising people to install it if needed. The
problem is, however, that if people follow the advice literally and install
the 'memcache' gem, they will wind up with a completely different thing,
which is not API compatible with the memcache-client gem and which Rails
can't work with.

So, be explicit and tell users to install the 'memcache-client' gem.

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
2010-10-10 14:30:22 -02:00
Aaron Patterson
6e1df2ca46 remove another lolinject 2010-10-01 17:55:39 -07:00
Santiago Pastorino
b451de0d6d Deletes trailing whitespaces (over text files only find * -type f -exec sed 's/[ \t]*$//' -i {} \;) 2010-08-14 04:12:33 -03:00
Neeraj Singh
d214925625 making comments meaningful by correcting, adding and pruning 2010-07-26 23:03:46 -04:00
Santiago Pastorino
a822ce78b3 String#[] doesn't return the byte representation on 1.9.2, we should use getbyte that was already added as a Ruby < 1.9 core_ext
Signed-off-by: José Valim <jose.valim@gmail.com>
2010-06-27 20:30:29 +02:00
David Calavera
b8330a2261 preventing memcached initialization errors with default servers list [#4921 state:resolved]
As of this writing the JRuby client does not support a default port.

Signed-off-by: Xavier Noria <fxn@hashref.com>
2010-06-22 16:28:29 +02:00
Evgeniy Dolzhenko
ef404c771d Fix a bunch of minor spelling mistakes 2010-06-15 12:04:22 +04:00
Santiago Pastorino
f802eb2f00 require conversions to use String#ord 2010-06-12 18:47:37 -07:00
Evgeniy Dolzhenko
ccf9577aee Fix a bunch of minor spelling mistakes 2010-06-11 14:15:34 +04:00
Santiago Pastorino
57144388f0 Unforce memcache from AS
Signed-off-by: José Valim <jose.valim@gmail.com>
2010-06-01 10:46:05 +02:00
José Valim
1b816d5024 The rake task :environment now loads config/environment.rb instead of initializing the application on its own. This fixes [#4492 state:resolved] and also avoids the application being initialized twice in some rake tasks. 2010-04-29 08:39:52 +02:00
Jeremy Kemper
4e75cc59e7 object_id may be negative, producing an invalid symbol. h/t Markus Schirp 2010-04-28 15:20:35 -07:00
Brian Durand
ee51b51b60 ActiveSupport::Cache refactoring
All Caches

* Add default options to initializer that will be sent to all read, write, fetch, exist?, increment, and decrement
* Add support for the :expires_in option to fetch and write for all caches. Cache entries are stored with the create timestamp and a ttl so that expiration can be handled independently of the implementation.
* Add support for a :namespace option. This can be used to set a global prefix for cache entries.
* Deprecate expand_cache_key on ActiveSupport::Cache and move it to ActionController::Caching and ActionDispatch::Http::Cache since the logic in the method used some Rails specific environment variables and was only used by ActionPack classes. Not very DRY but there didn't seem to be a good shared spot and ActiveSupport really shouldn't be Rails specific.
* Add support for :race_condition_ttl to fetch. This setting can prevent race conditions on fetch calls where several processes try to regenerate a recently expired entry at once.
* Add support for :compress option to fetch and write which will compress any data over a configurable threshold.
* Nil values can now be stored in the cache and are distinct from cache misses for fetch.
* Easier API to create new implementations. Just need to implement the methods read_entry, write_entry, and delete_entry instead of overwriting existing methods.
* Since all cache implementations support storing objects, update the docs to state that ActiveCache::Cache::Store implementations should store objects. Keys, however, must be strings since some implementations require that.
* Increase test coverage.
* Document methods which are provided as convenience but which may not be universally available.

MemoryStore

* MemoryStore can now safely be used as the cache for single server sites.
* Make thread safe so that the default cache implementation used by Rails is thread safe. The overhead is minimal and it is still the fastest store available.
* Provide :size initialization option indicating the maximum size of the cache in memory (defaults to 32Mb).
* Add prune logic that removes the least recently used cache entries to keep the cache size from exceeding the max.
* Deprecated SynchronizedMemoryStore since it isn't needed anymore.

FileStore

* Escape key values so they will work as file names on all file systems, be consistent, and case sensitive
* Use a hash algorithm to segment the cache into sub directories so that a large cache doesn't exceed file system limits.
* FileStore can be slow so implement the LocalCache strategy to cache reads for the duration of a request.
* Add cleanup method to keep the disk from filling up with expired entries.
* Fix increment and decrement to use file system locks so they are consistent between processes.

MemCacheStore

* Support all keys. Previously keys with spaces in them would fail
* Deprecate CompressedMemCacheStore since it isn't needed anymore (use :compress => true)

[#4452 state:committed]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2010-04-27 11:13:37 -07:00
Jeremy Kemper
03aa7877f7 MemoryStore#read_multi(*keys) for dev-mode compatibility with memcache store 2010-04-19 00:19:10 -07:00
Santiago Pastorino
c09744bec9 Fixed method sign error
Signed-off-by: José Valim <jose.valim@gmail.com>
2010-04-09 23:05:26 +02:00
Santiago Pastorino
13e00ce606 fix stack trace lines on class_eval
Signed-off-by: José Valim <jose.valim@gmail.com>
2010-04-09 21:28:49 +02:00
Joshua Peek
eed89e65b6 Make sure MemCacheStore logger exists 2010-04-07 15:08:23 -05:00
Vladimir Andrijevik
edaf92f5ab Drop expires argument from call to @data in MemCacheStore so it works with memcache-client and memcached gems, as advertised [#3672 state:resolved]
Signed-off-by: wycats <wycats@gmail.com>
2010-03-28 13:57:14 -07:00
Xavier Noria
abae712213 fixes a couple of wrong requires 2010-01-01 14:28:57 -08:00
Xavier Noria
13168e6594 requires active_support/inflector/methods active_support/core_ext/string/inflections in local_cache.rb because it uses underscore 2010-01-01 14:28:55 -08:00
Xavier Noria
f1e34cc41d requires active_support/core_ext/array/extract_options in mem_cache_store.rb because it uses extract_options! 2010-01-01 14:28:55 -08:00
Xavier Noria
7f7f5d619a requires active_support/gzip in CompressedMemCacheStore because it uses ActiveSupport::Gzip 2010-01-01 14:28:55 -08:00
David Vrensk
af44b07649 Rdoc for changes introduced in e2ed1a1ca, 36058f450.
[#3451 state:committed]

Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2009-11-12 11:21:44 -08:00
José Valim
af0d1fa892 Update Orchestra instrumentations and move part of logging to Orchestra. 2009-10-15 18:18:44 -03:00
Pratik Naik
987d501182 Mute log info coming from the local_cache strategy 2009-10-09 15:03:18 +01:00
Jeremy Kemper
0bd6e933c0 Restore split between require-time and runtime load path mungery. Simplifies vendor requires. 2009-09-24 18:38:18 -07:00
José Valim
4215e9ab93 Instrumenting cache stores. 2009-09-20 12:07:21 -03:00
Joshua Peek
b2f0b8cbda Rollback AS bundler work and improve activation of vendored dependencies 2009-09-13 22:55:46 -05:00
Pratik Naik
e033b5d037 Merge docrails 2009-07-25 16:03:58 +01:00
Yehuda Katz + Carl Lerche
1026d7706f Original cache objects should not be immutable [#2860 state:resolved]
Signed-off-by: Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>
2009-07-01 12:16:55 -07:00
Pratik Naik
b5775c2b3e Add expiry support File cache store [#1693 state:resolved] [Roman Shterenzon, Pratik Naik] 2009-06-21 15:25:28 +01:00
Joshua Peek
6ef329d325 Ensure Memcache local cache returns duplicated values [#2302 state:resolved] 2009-05-27 14:54:58 -05:00
Bryan Helmkamp
36058f4504 Use duck typing to also allow MemCache-like object when initializing a MemCacheStore
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2009-05-19 16:58:04 -07:00
Bryan Helmkamp
e2ed1a1ca4 Allow MemCacheStore to be initialized with a MemCache object instead of addresses and options 2009-05-19 10:54:56 -07:00
Joe Van Dyk
29550cc91f Add ability to get multiple memcached keys at the same time (via MemCacheStore#read_multi).
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
2009-05-18 13:43:56 -07:00
Jeremy Kemper
f28bd9557c Fix dependencies revealed by testing in isolation 2009-04-22 18:54:13 -07:00
Jeremy Kemper
685a53a360 Merge branch 'master' into cherry
Conflicts:
	activesupport/CHANGELOG
	activesupport/lib/active_support/core_ext/class/delegating_attributes.rb
	activesupport/lib/active_support/core_ext/hash/conversions.rb
	activesupport/lib/active_support/core_ext/module/attribute_accessors.rb
	activesupport/lib/active_support/core_ext/string/multibyte.rb
	activesupport/lib/active_support/core_ext/time/calculations.rb
	activesupport/lib/active_support/deprecation.rb
2009-04-20 18:31:40 -07:00
Jeremy Kemper
595e03336f Remove rarely-used DRb cache store 2009-04-17 21:53:17 -07:00
Joshua Peek
0e9efae474 Nicer name for anonymous local cache middleware class 2009-04-02 12:05:21 -05:00
Jeremy Kemper
36e934a5ce Fix require 2009-03-29 00:10:32 -07:00