tractor 0.4.6 → 0.4.7

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
@@ -11,7 +11,6 @@ begin
11
11
  gem.homepage = "http://github.com/gizm0duck/tractor"
12
12
  gem.authors = ["Shane Wolf"]
13
13
  gem.add_dependency "redis", ">=2.0.0"
14
- gem.add_dependency "yajl-ruby", ">=0.7.6"
15
14
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
15
  end
17
16
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.6
1
+ 0.4.7
@@ -1,5 +1,4 @@
1
1
  require 'base64'
2
- require 'yajl'
3
2
 
4
3
  module Tractor
5
4
 
@@ -78,7 +77,6 @@ module Tractor
78
77
  def initialize(attributes={})
79
78
  @attribute_store = {}
80
79
  @association_store = {}
81
- @encoder = Yajl::Encoder.new
82
80
  attributes.each do |k,v|
83
81
  send("#{k}=", v)
84
82
  end
@@ -86,7 +84,8 @@ module Tractor
86
84
 
87
85
  def save
88
86
  raise MissingIdError, "Probably wanna set an id" if self.id.nil? || self.id.to_s.empty?
89
- Tractor.redis["#{self.class}:#{self.id}"] = @encoder.encode(self.send(:attribute_store))
87
+
88
+ Tractor.redis.mapped_hmset("#{self.class}:#{self.id}", self.send(:attribute_store))
90
89
  Tractor.redis.sadd "#{self.class}:all", self.id
91
90
  add_to_indices
92
91
  add_to_associations
@@ -158,10 +157,9 @@ module Tractor
158
157
  end
159
158
 
160
159
  def find_by_id(id)
161
- obj_data = Tractor.redis["#{self}:#{id}"]
162
- return nil if obj_data.nil?
163
- parser = Yajl::Parser.new
164
- new(parser.parse(obj_data))
160
+ obj_data = Tractor.redis.mapped_hmget("#{self}:#{id}", *attributes.keys)
161
+ return nil if obj_data.reject{|k,v| v.nil?}.empty?
162
+ new(obj_data)
165
163
  end
166
164
 
167
165
  # use method missing to do craziness, or define a find_by on each index (BETTER)
@@ -162,12 +162,10 @@ describe Tractor::Model::Base do
162
162
  game = Tractor::Model::Game.new({:id => '1', :board => "large", :flying_object => "disc"})
163
163
  game.save
164
164
 
165
- redis["Tractor::Model::Game:1"].should_not be_nil
166
- parser = Yajl::Parser.new
167
- redis_game = parser.parse(redis["Tractor::Model::Game:1"])
168
- redis_game["id"].should == "1"
169
- redis_game["board"].should == "large"
170
- redis_game["flying_object"].should == "disc"
165
+ redis_game_attributes = Tractor.redis.mapped_hmget("Tractor::Model::Game:1", "id", "board", "flying_object")
166
+ redis_game_attributes["id"].should == "1"
167
+ redis_game_attributes["board"].should == "large"
168
+ redis_game_attributes["flying_object"].should == "disc"
171
169
  end
172
170
 
173
171
  it "appends the new object to the Game set" do
@@ -238,8 +236,7 @@ describe Tractor::Model::Base do
238
236
 
239
237
  it "should write attributes to redis" do
240
238
  sammich = Sammich.create({ :id => '1', :product => "Veggie Sammich" })
241
- parser = Yajl::Parser.new
242
- redis_sammich = parser.parse(redis["Sammich:1"])
239
+ redis_sammich = Tractor.redis.mapped_hmget("Sammich:1", "id", "product")
243
240
  redis_sammich["id"].should == "1"
244
241
  redis_sammich["product"].should == "Veggie Sammich"
245
242
  end
data/tractor.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tractor}
8
- s.version = "0.4.6"
8
+ s.version = "0.4.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Shane Wolf"]
12
- s.date = %q{2010-09-15}
12
+ s.date = %q{2010-10-29}
13
13
  s.description = %q{Very simple object mappings for ruby objects}
14
14
  s.email = %q{shanewolf@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -51,14 +51,11 @@ Gem::Specification.new do |s|
51
51
 
52
52
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
53
  s.add_runtime_dependency(%q<redis>, [">= 2.0.0"])
54
- s.add_runtime_dependency(%q<yajl-ruby>, [">= 0.7.6"])
55
54
  else
56
55
  s.add_dependency(%q<redis>, [">= 2.0.0"])
57
- s.add_dependency(%q<yajl-ruby>, [">= 0.7.6"])
58
56
  end
59
57
  else
60
58
  s.add_dependency(%q<redis>, [">= 2.0.0"])
61
- s.add_dependency(%q<yajl-ruby>, [">= 0.7.6"])
62
59
  end
63
60
  end
64
61
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tractor
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 6
10
- version: 0.4.6
9
+ - 7
10
+ version: 0.4.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Shane Wolf
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-09-15 00:00:00 -07:00
18
+ date: 2010-10-29 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -34,22 +34,6 @@ dependencies:
34
34
  version: 2.0.0
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: yajl-ruby
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 15
46
- segments:
47
- - 0
48
- - 7
49
- - 6
50
- version: 0.7.6
51
- type: :runtime
52
- version_requirements: *id002
53
37
  description: Very simple object mappings for ruby objects
54
38
  email: shanewolf@gmail.com
55
39
  executables: []