mem_mappr 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -10,8 +10,8 @@ begin
10
10
  gem.email = "hungerandthirst@gmail.com"
11
11
  gem.homepage = "http://github.com/plukevdh/mem_mappr"
12
12
  gem.authors = ["Luke van der Hoeven"]
13
- gem.add_development_dependency "memcache-client", ">= 0"
14
- gem.add_development_dependency "yaml", ">= 0"
13
+ gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
14
+ gem.add_dependency "memcache-client", ">= 0"
15
15
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
16
  end
17
17
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
data/lib/mem_mappr.rb CHANGED
@@ -19,7 +19,11 @@ module MemMappr
19
19
 
20
20
  def unmap(name)
21
21
  data = CACHE.get name
22
- object = de_srlz(data)
22
+ object = nil
23
+ unless data.empty?
24
+ object = de_srlz(data)
25
+ end
26
+ object
23
27
  end
24
28
 
25
29
  def map_array(name, objects)
@@ -29,10 +33,12 @@ module MemMappr
29
33
  def unmap_array(name)
30
34
  data = CACHE.get name
31
35
  object_array = []
32
- data.each do |object|
33
- object_array << de_srlz(object)
36
+ unless data.empty?
37
+ data.each do |object|
38
+ object_array << de_srlz(object)
39
+ end
34
40
  end
35
-
41
+
36
42
  object_array
37
43
  end
38
44
 
data/mem_mappr.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mem_mappr}
8
- s.version = "0.0.1"
8
+ s.version = "0.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Luke van der Hoeven"]
@@ -48,15 +48,15 @@ Gem::Specification.new do |s|
48
48
  s.specification_version = 3
49
49
 
50
50
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
51
- s.add_development_dependency(%q<memcache-client>, [">= 0"])
52
- s.add_development_dependency(%q<yaml>, [">= 0"])
51
+ s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
52
+ s.add_runtime_dependency(%q<memcache-client>, [">= 0"])
53
53
  else
54
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
54
55
  s.add_dependency(%q<memcache-client>, [">= 0"])
55
- s.add_dependency(%q<yaml>, [">= 0"])
56
56
  end
57
57
  else
58
+ s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
58
59
  s.add_dependency(%q<memcache-client>, [">= 0"])
59
- s.add_dependency(%q<yaml>, [">= 0"])
60
60
  end
61
61
  end
62
62
 
data/rails/init.rb CHANGED
@@ -1,17 +1,3 @@
1
1
  require 'mem_mappr'
2
-
3
- begin
4
- require 'memcache'
5
- rescue LoadError
6
- end
7
-
8
- unless File.exists? config_file = File.join('config', 'memcache.yml')
9
- error = "Looks like you don't have a config file. Please add one to the Rails.root/config folder before continuing."
10
- puts error
11
- logger.info error
12
- exit!
13
- end
14
-
15
- MemMappr.config = YAML.load_file(config_file)
16
- logger.info "Loaded mem_mappr"
2
+ MemMappr.setup
17
3
 
data/test/helper.rb CHANGED
@@ -5,6 +5,25 @@ require 'shoulda'
5
5
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
6
  $LOAD_PATH.unshift(File.dirname(__FILE__))
7
7
  require 'mem_mappr'
8
+ require 'active_record'
9
+
10
+
11
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
12
+
13
+ ActiveRecord::Schema.define(:version => 1) do
14
+ create_table :users do |t|
15
+ t.string :first_name
16
+ t.string :last_name
17
+ t.integer :age
18
+ t.datetime :birthday
19
+ end
20
+ end
21
+
22
+ class User < ActiveRecord::Base
23
+ end
24
+
25
+ us = User.new(:first_name => "Luke", :last_name => "van der Hoeven", :age => 23, :birthday => "1986-12-14 11:48:41")
26
+ us.save!
8
27
 
9
28
  class Test::Unit::TestCase
10
29
  end
@@ -1,7 +1,37 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestMemMappr < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
4
+ should "setup without error" do
5
+ MemMappr.setup
6
+ assert Object.const_defined?(:CACHE)
7
+ assert_equal CACHE.class, MemCache
8
+ end
9
+
10
+ context "Memcache hits" do
11
+ setup do
12
+ MemMappr.setup
13
+ end
14
+
15
+ should "set and get objects from memcache (with memcached running independantly)" do
16
+ v = CACHE.set "test_object", "12345"
17
+ assert v.include? "STORED"
18
+ assert_equal "12345", CACHE.get("test_object")
19
+ end
20
+
21
+ should "map and unmap a simple AR object" do
22
+ resp = MemMappr.map("user", User.first)
23
+ assert resp.include? "STORED"
24
+
25
+ usr = MemMappr.unmap("user")
26
+ assert_equal User, usr.class
27
+
28
+ assert_equal "Luke", usr.first_name
29
+ assert_equal "van der Hoeven", usr.last_name
30
+ assert_equal 23, usr.age
31
+ puts usr.birthday
32
+ assert usr.birthday.eql?(Time.parse("1986-12-14 11:48:41"))
33
+
34
+ assert_equal User.first, usr
35
+ end
36
+ end
7
37
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 1
9
- version: 0.0.1
8
+ - 2
9
+ version: 0.0.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Luke van der Hoeven
@@ -18,7 +18,7 @@ date: 2010-06-10 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: memcache-client
21
+ name: thoughtbot-shoulda
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
24
  requirements:
@@ -30,7 +30,7 @@ dependencies:
30
30
  type: :development
31
31
  version_requirements: *id001
32
32
  - !ruby/object:Gem::Dependency
33
- name: yaml
33
+ name: memcache-client
34
34
  prerelease: false
35
35
  requirement: &id002 !ruby/object:Gem::Requirement
36
36
  requirements:
@@ -39,7 +39,7 @@ dependencies:
39
39
  segments:
40
40
  - 0
41
41
  version: "0"
42
- type: :development
42
+ type: :runtime
43
43
  version_requirements: *id002
44
44
  description: This is a simple way to memcache ActiveRecord objects, mostly by serializing them into objects that memcache can understand.
45
45
  email: hungerandthirst@gmail.com