eager_record 0.1.1 → 0.1.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/lib/eager_record.rb CHANGED
@@ -6,6 +6,7 @@ module EagerRecord
6
6
  autoload :VERSION, File.join(File.dirname(__FILE__), 'eager_record', 'version')
7
7
  autoload :EagerPreloading, File.join(File.dirname(__FILE__), 'eager_record', 'eager_preloading')
8
8
  autoload :ScopedPreloading, File.join(File.dirname(__FILE__), 'eager_record', 'scoped_preloading')
9
+ autoload :Unmarshallable, File.join(File.dirname(__FILE__), 'eager_record', 'unmarshallable')
9
10
 
10
11
  class <<self
11
12
  def install
@@ -23,7 +23,7 @@ module EagerRecord
23
23
  grouped_collections.values.each do |grouped_collection|
24
24
  if grouped_collection.length > 1
25
25
  grouped_collection.each do |record|
26
- record.instance_variable_set(:@originating_collection, grouped_collection)
26
+ record.instance_variable_set(:@originating_collection, Unmarshallable.new(grouped_collection))
27
27
  end
28
28
  end
29
29
  end
@@ -0,0 +1,34 @@
1
+ module EagerRecord
2
+ #
3
+ # A wrapper for objects that we don't want to marshal. In particular, used
4
+ # to wrap the @originating_collection array that is created in model instances
5
+ # since marshalling that seems a bad idea.
6
+ #
7
+ class Unmarshallable
8
+ instance_methods.each do |method|
9
+ undef_method(method) unless method =~ /__.+__/ || method.to_sym == :respond_to?
10
+ end
11
+
12
+ class <<self
13
+ def _load(dump)
14
+ nil
15
+ end
16
+ end
17
+
18
+ def initialize(underlying)
19
+ @underlying = underlying
20
+ end
21
+
22
+ def method_missing(method, *args, &block)
23
+ @underlying.__send__(method, *args, &block)
24
+ end
25
+
26
+ def respond_to?(method)
27
+ super || @underlying.respond_to?(method)
28
+ end
29
+
30
+ def _dump(depth)
31
+ Marshal.dump(nil)
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module EagerRecord
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eager_record
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 31
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 1
8
- - 1
9
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
10
11
  platform: ruby
11
12
  authors:
12
13
  - Mat Brown
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-06-04 00:00:00 -04:00
18
+ date: 2010-06-21 00:00:00 -04:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: rspec
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 3
27
30
  segments:
28
31
  - 0
29
32
  version: "0"
@@ -39,10 +42,11 @@ extra_rdoc_files: []
39
42
 
40
43
  files:
41
44
  - rails/init.rb
42
- - lib/eager_record.rb
43
- - lib/eager_record/scoped_preloading.rb
44
45
  - lib/eager_record/version.rb
46
+ - lib/eager_record/unmarshallable.rb
47
+ - lib/eager_record/scoped_preloading.rb
45
48
  - lib/eager_record/eager_preloading.rb
49
+ - lib/eager_record.rb
46
50
  - README.rdoc
47
51
  - History.txt
48
52
  has_rdoc: true
@@ -55,23 +59,27 @@ rdoc_options: []
55
59
  require_paths:
56
60
  - lib
57
61
  required_ruby_version: !ruby/object:Gem::Requirement
62
+ none: false
58
63
  requirements:
59
64
  - - ">="
60
65
  - !ruby/object:Gem::Version
66
+ hash: 3
61
67
  segments:
62
68
  - 0
63
69
  version: "0"
64
70
  required_rubygems_version: !ruby/object:Gem::Requirement
71
+ none: false
65
72
  requirements:
66
73
  - - ">="
67
74
  - !ruby/object:Gem::Version
75
+ hash: 3
68
76
  segments:
69
77
  - 0
70
78
  version: "0"
71
79
  requirements: []
72
80
 
73
81
  rubyforge_project: eager_record
74
- rubygems_version: 1.3.6
82
+ rubygems_version: 1.3.7
75
83
  signing_key:
76
84
  specification_version: 3
77
85
  summary: Automatic association preloading for ActiveRecord collections.