remix-stash 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.0.1
@@ -1,5 +1,5 @@
1
1
  if defined?(Rails)
2
- stash.default(:logger => Rails.logger)
2
+ Remix::Stash::Runtime.logger = Rails.logger
3
3
 
4
4
  module Remix::Stash::RailsSupport
5
5
  private
@@ -25,3 +25,8 @@ if defined?(Rails)
25
25
  end
26
26
 
27
27
  end
28
+
29
+ unless Remix::Stash::Runtime.logger
30
+ require 'logger'
31
+ Remix::Stash::Runtime.logger = Logger.new(STDERR)
32
+ end
@@ -4,6 +4,7 @@ require 'digest/md5'
4
4
  class Remix::Stash::Cluster
5
5
  include Enumerable
6
6
  include Socket::Constants
7
+ include Remix::Stash::Runtime
7
8
 
8
9
  @@connections = {}
9
10
 
@@ -24,7 +25,12 @@ class Remix::Stash::Cluster
24
25
  rescue Errno::EPIPE, Errno::ECONNRESET, Remix::Stash::ProtocolError
25
26
  io.close
26
27
  retry
27
- rescue Errno::EAGAIN, Errno::ECONNREFUSED
28
+ rescue Errno::EAGAIN
29
+ logger.error("[stash] Cluster socket timeout on #{@hosts[(hash + try) % count][0]}")
30
+ io.close
31
+ next
32
+ rescue Errno::ECONNREFUSED
33
+ logger.error("[stash] Cluster connection refused on #{@hosts[(hash + try) % count][0]}")
28
34
  next
29
35
  end
30
36
  end
@@ -48,7 +54,12 @@ class Remix::Stash::Cluster
48
54
  rescue Errno::EPIPE, Errno::ECONNRESET, Remix::Stash::ProtocolError
49
55
  io.close
50
56
  retry
51
- rescue Errno::EAGAIN, Errno::ECONNREFUSED
57
+ rescue Errno::EAGAIN
58
+ logger.error("[stash] Cluster socket timeout on #{@hosts[(hash + try) % count][0]}")
59
+ io.close
60
+ next
61
+ rescue Errno::ECONNREFUSED
62
+ logger.error("[stash] Cluster connection refused on #{@hosts[(hash + try) % count][0]}")
52
63
  next
53
64
  end
54
65
  end
@@ -0,0 +1,13 @@
1
+ module Remix::Stash::Runtime
2
+ extend self
3
+
4
+ @@logger = nil
5
+ def logger
6
+ @@logger
7
+ end
8
+
9
+ def logger=(log)
10
+ @@logger = log
11
+ end
12
+
13
+ end
data/lib/remix/stash.rb CHANGED
@@ -1,10 +1,13 @@
1
1
  module Remix; end
2
2
 
3
3
  class Remix::Stash
4
+ require 'remix/stash/runtime'
4
5
  require 'remix/stash/extension'
5
6
  require 'remix/stash/cluster'
6
7
  require 'remix/stash/protocol'
7
8
 
9
+ include Runtime
10
+
8
11
  attr_accessor :name
9
12
 
10
13
  @@instances = {}
@@ -100,7 +103,7 @@ class Remix::Stash
100
103
  cluster(opts).select(key) {|io|
101
104
  value = Protocol.get(io, key)
102
105
  if value
103
- Marshal.load(value)
106
+ load_value(value)
104
107
  else
105
108
  value = yield(*keys)
106
109
  Protocol.set(io, key, dump_value(value), opts[:ttl])
@@ -279,8 +282,7 @@ private
279
282
  rescue Exception
280
283
  end
281
284
  end
282
- logger = default_opts[:logger]
283
- logger && logger.error("[stash] Unable to load marshal stream: #{data.inspect}")
285
+ logger.error("[stash] Unable to load marshal stream: #{data.inspect}")
284
286
  nil
285
287
  end
286
288
 
data/remix-stash.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{remix-stash}
8
- s.version = "1.0.0"
8
+ s.version = "1.0.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Brian Mitchell"]
12
- s.date = %q{2009-10-03}
12
+ s.date = %q{2009-10-06}
13
13
  s.email = %q{binary42@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
@@ -36,12 +36,14 @@ Gem::Specification.new do |s|
36
36
  "lib/remix/stash/cluster.rb",
37
37
  "lib/remix/stash/extension.rb",
38
38
  "lib/remix/stash/protocol.rb",
39
+ "lib/remix/stash/runtime.rb",
39
40
  "remix-stash.gemspec",
40
41
  "spec/auto_detection_spec.rb",
41
42
  "spec/extension_spec.rb",
42
43
  "spec/spec.rb",
43
44
  "spec/stash_spec.rb",
44
45
  "spec/support/bar.rb",
46
+ "spec/support/rails/.gitignore",
45
47
  "spec/support/rails/README",
46
48
  "spec/support/rails/Rakefile",
47
49
  "spec/support/rails/app/controllers/application_controller.rb",
@@ -61,10 +63,6 @@ Gem::Specification.new do |s|
61
63
  "spec/support/rails/config/routes.rb",
62
64
  "spec/support/rails/db/seeds.rb",
63
65
  "spec/support/rails/doc/README_FOR_APP",
64
- "spec/support/rails/log/development.log",
65
- "spec/support/rails/log/production.log",
66
- "spec/support/rails/log/server.log",
67
- "spec/support/rails/log/test.log",
68
66
  "spec/support/rails/public/404.html",
69
67
  "spec/support/rails/public/422.html",
70
68
  "spec/support/rails/public/500.html",
@@ -5,7 +5,7 @@ class AutoDetectionSpec < Spec
5
5
  context 'Rails' do
6
6
 
7
7
  should 'link the logger object' do
8
- assert_equal Rails.logger, stash.default[:logger]
8
+ assert_equal Rails.logger, Remix::Stash::Runtime.logger
9
9
  end
10
10
 
11
11
  should 'link cycle_action to an after filter' do
@@ -0,0 +1 @@
1
+ log/*
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remix-stash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Mitchell
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-03 00:00:00 -04:00
12
+ date: 2009-10-06 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -43,12 +43,14 @@ files:
43
43
  - lib/remix/stash/cluster.rb
44
44
  - lib/remix/stash/extension.rb
45
45
  - lib/remix/stash/protocol.rb
46
+ - lib/remix/stash/runtime.rb
46
47
  - remix-stash.gemspec
47
48
  - spec/auto_detection_spec.rb
48
49
  - spec/extension_spec.rb
49
50
  - spec/spec.rb
50
51
  - spec/stash_spec.rb
51
52
  - spec/support/bar.rb
53
+ - spec/support/rails/.gitignore
52
54
  - spec/support/rails/README
53
55
  - spec/support/rails/Rakefile
54
56
  - spec/support/rails/app/controllers/application_controller.rb
@@ -68,10 +70,6 @@ files:
68
70
  - spec/support/rails/config/routes.rb
69
71
  - spec/support/rails/db/seeds.rb
70
72
  - spec/support/rails/doc/README_FOR_APP
71
- - spec/support/rails/log/development.log
72
- - spec/support/rails/log/production.log
73
- - spec/support/rails/log/server.log
74
- - spec/support/rails/log/test.log
75
73
  - spec/support/rails/public/404.html
76
74
  - spec/support/rails/public/422.html
77
75
  - spec/support/rails/public/500.html
File without changes
File without changes
File without changes
File without changes