jruby-memcache-client 1.6.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -15,10 +15,16 @@ As of right now this code only provides a very minimal amount of functionality,
15
15
 
16
16
  Installation
17
17
  ------------
18
- This is a ruby gem that can be installed.
18
+ This is a ruby gem that can be installed from gemcutter.org.
19
19
 
20
- gem sources -a http://gems.github.com
21
- gem install ikai-jruby-memcache-client --remote
20
+ You will first need to install the gemcutter gem and configure your system to use it:
21
+
22
+ jruby -S gem install gemcutter
23
+ jruby -S gem tumble
24
+
25
+ You will then be able to install the JRuby Memcache Client gem:
26
+
27
+ jruby -S gem install jruby-memcache-client
22
28
 
23
29
  Replacing Rail's MemCache Client
24
30
  --------------------------------
@@ -34,11 +40,11 @@ if RUBY_PLATFORM =~ /java/i
34
40
  Object.instance_eval { remove_const :MemCache }
35
41
  end
36
42
  # Pull in the exact version we want
37
- gem 'ikai-jruby-memcache-client', '1.5.0'
43
+ gem 'jruby-memcache-client', '1.6.1'
38
44
 
39
45
  # Ensure that the memcache-client path is at the front of the loadpath
40
46
  $LOAD_PATH.each do |path|
41
- if path =~ /ikai-jruby-memcache-client/
47
+ if path =~ /jruby-memcache-client/
42
48
  $LOAD_PATH.delete(path)
43
49
  $LOAD_PATH.unshift(path)
44
50
  end
data/Rakefile CHANGED
@@ -3,10 +3,10 @@ begin
3
3
  Jeweler::Tasks.new do |gemspec|
4
4
  gemspec.name = "jruby-memcache-client"
5
5
  gemspec.summary = "A drop in replacement for Ruby's memcache-client."
6
- gemspec.email = "abhi@traytwo.com"
7
- gemspec.homepage = "http://github.com/abhiyerra/jruby-memcache-client"
6
+ gemspec.email = "fred@fredjean.net"
7
+ gemspec.homepage = "http://github.com/ikai/jruby-memcache-client"
8
8
  gemspec.description = "A drop in replacement for Ruby's memcache-client."
9
- gemspec.authors = ["Abhi Yerra", "Ikai Lan", "Frederic Jean", "Lennon Day-Reynolds"]
9
+ gemspec.authors = ["Abhi Yerra", "Ikai Lan", "Frederic Jean", "Lennon Day-Reynolds", "slyphon"]
10
10
  end
11
11
  rescue LoadError
12
12
  puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
@@ -15,9 +15,9 @@ end
15
15
  if RUBY_PLATFORM =~ /java/i
16
16
  begin
17
17
  require 'spec/rake/spectask'
18
-
18
+
19
19
  task :default => :spec
20
-
20
+
21
21
  desc "Run the specs for the jruby-memcache-client gem"
22
22
  Spec::Rake::SpecTask.new
23
23
  rescue LoadError
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
- ---
2
- :minor: 6
1
+ ---
3
2
  :major: 1
4
- :patch: 0
3
+ :minor: 6
4
+ :patch: 1
@@ -1,14 +1,17 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
1
4
  # -*- encoding: utf-8 -*-
2
5
 
3
6
  Gem::Specification.new do |s|
4
7
  s.name = %q{jruby-memcache-client}
5
- s.version = "1.6.0"
8
+ s.version = "1.6.1"
6
9
 
7
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Abhi Yerra", "Ikai Lan", "Frederic Jean", "Lennon Day-Reynolds"]
9
- s.date = %q{2009-05-20}
11
+ s.authors = ["Abhi Yerra", "Ikai Lan", "Frederic Jean", "Lennon Day-Reynolds", "slyphon"]
12
+ s.date = %q{2009-11-22}
10
13
  s.description = %q{A drop in replacement for Ruby's memcache-client.}
11
- s.email = %q{abhi@traytwo.com}
14
+ s.email = %q{fred@fredjean.net}
12
15
  s.extra_rdoc_files = [
13
16
  "README"
14
17
  ]
@@ -23,11 +26,10 @@ Gem::Specification.new do |s|
23
26
  "lib/memcache.rb",
24
27
  "spec/jruby_memcache_spec.rb"
25
28
  ]
26
- s.has_rdoc = true
27
29
  s.homepage = %q{http://github.com/ikai/jruby-memcache-client}
28
30
  s.rdoc_options = ["--charset=UTF-8"]
29
31
  s.require_paths = ["lib"]
30
- s.rubygems_version = %q{1.3.1}
32
+ s.rubygems_version = %q{1.3.5}
31
33
  s.summary = %q{A drop in replacement for Ruby's memcache-client.}
32
34
  s.test_files = [
33
35
  "spec/jruby_memcache_spec.rb"
@@ -35,7 +37,7 @@ Gem::Specification.new do |s|
35
37
 
36
38
  if s.respond_to? :specification_version then
37
39
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
38
- s.specification_version = 2
40
+ s.specification_version = 3
39
41
 
40
42
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
41
43
  else
data/lib/memcache.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'java'
2
+ require 'base64'
2
3
 
3
4
  require File.dirname(__FILE__) + '/java/java_memcached-release_2.0.1.jar'
4
5
 
@@ -160,7 +161,8 @@ class MemCache
160
161
  return nil if value.nil?
161
162
  unless raw
162
163
  marshal_bytes = java.lang.String.new(value).getBytes(MARSHALLING_CHARSET)
163
- value = Marshal.load(String.from_java_bytes(marshal_bytes))
164
+ decoded = Base64.decode64(String.from_java_bytes(marshal_bytes))
165
+ value = Marshal.load(decoded)
164
166
  end
165
167
  value
166
168
  end
@@ -179,7 +181,8 @@ class MemCache
179
181
  next if v.nil?
180
182
  unless raw
181
183
  marshal_bytes = java.lang.String.new(v).getBytes(MARSHALLING_CHARSET)
182
- v = Marshal.load(String.from_java_bytes(marshal_bytes))
184
+ decoded = Base64.decode64(String.from_java_bytes(marshal_bytes))
185
+ v = Marshal.load(decoded)
183
186
  end
184
187
  values[k] = v
185
188
  }
@@ -299,7 +302,8 @@ class MemCache
299
302
  end
300
303
 
301
304
  def marshal_value(value)
302
- marshal_bytes = Marshal.dump(value).to_java_bytes
305
+ encoded = Base64.encode64(Marshal.dump(value))
306
+ marshal_bytes = encoded.to_java_bytes
303
307
  java.lang.String.new(marshal_bytes, MARSHALLING_CHARSET)
304
308
  end
305
309
  end
@@ -182,6 +182,20 @@ describe MemCache do
182
182
  @client.set('obj', obj)
183
183
  @client.get('obj').should == obj
184
184
  end
185
+
186
+ it %[should work with those whose marshalled stream contains invalid UTF8 byte sequences] do
187
+ # this test fails w/o the Base64 encoding step
188
+ obj = { :foo => 900 }
189
+ @client.set('obj', obj)
190
+ @client.get('obj').should == obj
191
+ end
192
+
193
+ it %[should work with binary blobs] do
194
+ # this test fails w/o the Base64 encoding step
195
+ blob = "\377\330\377\340\000\020JFIF\000\001\001\000\000\001\000\001\000\000\377"
196
+ @client.set('blob', blob)
197
+ @client.get('blob').should == blob
198
+ end
185
199
  end
186
200
 
187
201
  describe "using set with an expiration" do
metadata CHANGED
@@ -1,23 +1,24 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jruby-memcache-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 1.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abhi Yerra
8
8
  - Ikai Lan
9
9
  - Frederic Jean
10
10
  - Lennon Day-Reynolds
11
+ - slyphon
11
12
  autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
15
 
15
- date: 2009-05-20 00:00:00 -06:00
16
+ date: 2009-11-22 00:00:00 -07:00
16
17
  default_executable:
17
18
  dependencies: []
18
19
 
19
20
  description: A drop in replacement for Ruby's memcache-client.
20
- email: abhi@traytwo.com
21
+ email: fred@fredjean.net
21
22
  executables: []
22
23
 
23
24
  extensions: []
@@ -58,9 +59,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
59
  requirements: []
59
60
 
60
61
  rubyforge_project:
61
- rubygems_version: 1.3.4
62
+ rubygems_version: 1.3.5
62
63
  signing_key:
63
- specification_version: 2
64
+ specification_version: 3
64
65
  summary: A drop in replacement for Ruby's memcache-client.
65
66
  test_files:
66
67
  - spec/jruby_memcache_spec.rb