tractor 0.4.3 → 0.4.4
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/VERSION +1 -1
- data/lib/tractor/model/mapper.rb +20 -10
- data/tractor.gemspec +4 -5
- metadata +13 -38
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.4.
|
|
1
|
+
0.4.4
|
data/lib/tractor/model/mapper.rb
CHANGED
|
@@ -25,7 +25,7 @@ module Tractor
|
|
|
25
25
|
|
|
26
26
|
def create_from_instance(server_instance)
|
|
27
27
|
hydrate_attributes(server_instance) do |attributes|
|
|
28
|
-
self.create(attributes)
|
|
28
|
+
return self.create(attributes)
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
31
|
|
|
@@ -34,7 +34,7 @@ module Tractor
|
|
|
34
34
|
raise "Cannot update an object that doesn't exist." unless existing_record
|
|
35
35
|
|
|
36
36
|
hydrate_attributes(server_instance) do |attributes|
|
|
37
|
-
existing_record.update(attributes)
|
|
37
|
+
return existing_record.update(attributes)
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
|
|
@@ -44,10 +44,16 @@ module Tractor
|
|
|
44
44
|
obj_to_destroy.destroy
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
def hydrate_attributes(server_instance)
|
|
47
|
+
def hydrate_attributes(server_instance, hydrate_only=false, &block)
|
|
48
48
|
attributes = attribute_mapper(server_instance)
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
if hydrate_only
|
|
50
|
+
ensure_dependencies_met(server_instance, hydrate_only, &block)
|
|
51
|
+
block.call([self.to_s, attributes])
|
|
52
|
+
else
|
|
53
|
+
ensure_dependencies_met(server_instance, hydrate_only)
|
|
54
|
+
yield attributes
|
|
55
|
+
end
|
|
56
|
+
return attributes
|
|
51
57
|
end
|
|
52
58
|
|
|
53
59
|
def attribute_mapper(server_instance)
|
|
@@ -70,15 +76,19 @@ module Tractor
|
|
|
70
76
|
return true
|
|
71
77
|
end
|
|
72
78
|
|
|
73
|
-
def ensure_dependencies_met(server_instance)
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
def ensure_dependencies_met(server_instance, hydrate_only=false, &block)
|
|
80
|
+
|
|
81
|
+
return if !hydrate_only && dependencies_met?(server_instance)
|
|
76
82
|
dependencies.each do |klass, options|
|
|
77
|
-
if klass.find_by_id(server_instance.send(options[:key_name])).nil?
|
|
83
|
+
if hydrate_only || klass.find_by_id(server_instance.send(options[:key_name])).nil?
|
|
78
84
|
server_instances = server_instance.send(options[:method_name])
|
|
79
85
|
server_instances = server_instances.is_a?(Array) ? server_instances : [server_instances]
|
|
80
86
|
server_instances.each do |obj|
|
|
81
|
-
|
|
87
|
+
if hydrate_only
|
|
88
|
+
klass.hydrate_attributes(obj, hydrate_only, &block)
|
|
89
|
+
else
|
|
90
|
+
klass.create_from_instance(obj)
|
|
91
|
+
end
|
|
82
92
|
end
|
|
83
93
|
end
|
|
84
94
|
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.
|
|
8
|
+
s.version = "0.4.4"
|
|
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-06-
|
|
12
|
+
s.date = %q{2010-06-23}
|
|
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 = [
|
|
@@ -31,13 +31,12 @@ Gem::Specification.new do |s|
|
|
|
31
31
|
"spec/spec.opts",
|
|
32
32
|
"spec/spec_helper.rb",
|
|
33
33
|
"spec/tractor_spec.rb",
|
|
34
|
-
"tractor-0.4.3.gem",
|
|
35
34
|
"tractor.gemspec"
|
|
36
35
|
]
|
|
37
36
|
s.homepage = %q{http://github.com/gizm0duck/tractor}
|
|
38
37
|
s.rdoc_options = ["--charset=UTF-8"]
|
|
39
38
|
s.require_paths = ["lib"]
|
|
40
|
-
s.rubygems_version = %q{1.3.
|
|
39
|
+
s.rubygems_version = %q{1.3.5}
|
|
41
40
|
s.summary = %q{Very simple object mapping for ruby objects}
|
|
42
41
|
s.test_files = [
|
|
43
42
|
"spec/model/base_spec.rb",
|
|
@@ -50,7 +49,7 @@ Gem::Specification.new do |s|
|
|
|
50
49
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
51
50
|
s.specification_version = 3
|
|
52
51
|
|
|
53
|
-
if Gem::Version.new(Gem::
|
|
52
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
|
54
53
|
s.add_runtime_dependency(%q<redis>, [">= 2.0.0"])
|
|
55
54
|
s.add_runtime_dependency(%q<yajl-ruby>, [">= 0.7.6"])
|
|
56
55
|
else
|
metadata
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tractor
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease: false
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 4
|
|
9
|
-
- 3
|
|
10
|
-
version: 0.4.3
|
|
4
|
+
version: 0.4.4
|
|
11
5
|
platform: ruby
|
|
12
6
|
authors:
|
|
13
7
|
- Shane Wolf
|
|
@@ -15,41 +9,29 @@ autorequire:
|
|
|
15
9
|
bindir: bin
|
|
16
10
|
cert_chain: []
|
|
17
11
|
|
|
18
|
-
date: 2010-06-
|
|
12
|
+
date: 2010-06-23 00:00:00 -07:00
|
|
19
13
|
default_executable:
|
|
20
14
|
dependencies:
|
|
21
15
|
- !ruby/object:Gem::Dependency
|
|
22
16
|
name: redis
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
type: :runtime
|
|
18
|
+
version_requirement:
|
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
20
|
requirements:
|
|
27
21
|
- - ">="
|
|
28
22
|
- !ruby/object:Gem::Version
|
|
29
|
-
hash: 15
|
|
30
|
-
segments:
|
|
31
|
-
- 2
|
|
32
|
-
- 0
|
|
33
|
-
- 0
|
|
34
23
|
version: 2.0.0
|
|
35
|
-
|
|
36
|
-
version_requirements: *id001
|
|
24
|
+
version:
|
|
37
25
|
- !ruby/object:Gem::Dependency
|
|
38
26
|
name: yajl-ruby
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
27
|
+
type: :runtime
|
|
28
|
+
version_requirement:
|
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
42
30
|
requirements:
|
|
43
31
|
- - ">="
|
|
44
32
|
- !ruby/object:Gem::Version
|
|
45
|
-
hash: 15
|
|
46
|
-
segments:
|
|
47
|
-
- 0
|
|
48
|
-
- 7
|
|
49
|
-
- 6
|
|
50
33
|
version: 0.7.6
|
|
51
|
-
|
|
52
|
-
version_requirements: *id002
|
|
34
|
+
version:
|
|
53
35
|
description: Very simple object mappings for ruby objects
|
|
54
36
|
email: shanewolf@gmail.com
|
|
55
37
|
executables: []
|
|
@@ -74,7 +56,6 @@ files:
|
|
|
74
56
|
- spec/spec.opts
|
|
75
57
|
- spec/spec_helper.rb
|
|
76
58
|
- spec/tractor_spec.rb
|
|
77
|
-
- tractor-0.4.3.gem
|
|
78
59
|
- tractor.gemspec
|
|
79
60
|
has_rdoc: true
|
|
80
61
|
homepage: http://github.com/gizm0duck/tractor
|
|
@@ -86,27 +67,21 @@ rdoc_options:
|
|
|
86
67
|
require_paths:
|
|
87
68
|
- lib
|
|
88
69
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
70
|
requirements:
|
|
91
71
|
- - ">="
|
|
92
72
|
- !ruby/object:Gem::Version
|
|
93
|
-
hash: 3
|
|
94
|
-
segments:
|
|
95
|
-
- 0
|
|
96
73
|
version: "0"
|
|
74
|
+
version:
|
|
97
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
|
-
none: false
|
|
99
76
|
requirements:
|
|
100
77
|
- - ">="
|
|
101
78
|
- !ruby/object:Gem::Version
|
|
102
|
-
hash: 3
|
|
103
|
-
segments:
|
|
104
|
-
- 0
|
|
105
79
|
version: "0"
|
|
80
|
+
version:
|
|
106
81
|
requirements: []
|
|
107
82
|
|
|
108
83
|
rubyforge_project:
|
|
109
|
-
rubygems_version: 1.3.
|
|
84
|
+
rubygems_version: 1.3.5
|
|
110
85
|
signing_key:
|
|
111
86
|
specification_version: 3
|
|
112
87
|
summary: Very simple object mapping for ruby objects
|