mem_mappr 0.0.1 → 0.0.2

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.
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