columns_on_demand 2.0.1 → 3.0.0

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/README CHANGED
@@ -21,8 +21,10 @@ Compatibility
21
21
 
22
22
  Supports mysql, mysql2, postgresql, and sqlite3.
23
23
 
24
- Currently tested against Rails 2.3.14, 3.0.17, 3.1.8, and 3.2.8. Note that
25
- 3.0 and 3.1 have ActiveRecord regressions that will affect sqlite users.
24
+ Currently tested against Rails 3.2.13 and 3.1.8, on Ruby 1.8.7 and 2.0.0p0.
25
+ Was also tested compatible with 2.3.14, 3.0.17.
26
+
27
+ Note that 3.0 and 3.1 have ActiveRecord regressions that will affect sqlite users.
26
28
 
27
29
 
28
30
  Example
@@ -42,4 +44,4 @@ class Example
42
44
  end
43
45
 
44
46
 
45
- Copyright (c) 2008-2012 Will Bryant, Sekuda Ltd, released under the MIT license
47
+ Copyright (c) 2008-2013 Will Bryant, Sekuda Ltd, released under the MIT license
@@ -7,20 +7,6 @@ module ColumnsOnDemand
7
7
  extend ClassMethods
8
8
  include InstanceMethods
9
9
 
10
- if ActiveRecord::VERSION::MAJOR > 2
11
- relation # set up @relation
12
- class << @relation # but always modify @relation, not the temporary returned by .relation if there's a where(type condition)
13
- def build_select_with_columns_on_demand(arel, selects)
14
- unless selects.empty?
15
- build_select_without_columns_on_demand(arel, selects)
16
- else
17
- arel.project(Arel::SqlLiteral.new(@klass.default_select(true)))
18
- end
19
- end
20
- alias_method_chain :build_select, :columns_on_demand
21
- end
22
- end
23
-
24
10
  class <<self
25
11
  unless ActiveRecord.const_defined?(:AttributeMethods) &&
26
12
  ActiveRecord::AttributeMethods::const_defined?(:Serialization) &&
@@ -140,6 +126,20 @@ module ColumnsOnDemand
140
126
  end
141
127
  end
142
128
  end
129
+
130
+ module RelationMethods
131
+ def build_select_with_columns_on_demand(arel, selects)
132
+ if selects.empty?
133
+ build_select_without_columns_on_demand(arel, default_select(true))
134
+ else
135
+ build_select_without_columns_on_demand(arel, selects)
136
+ end
137
+ end
138
+ end
143
139
  end
144
140
 
145
141
  ActiveRecord::Base.send(:extend, ColumnsOnDemand::BaseMethods)
142
+ if ActiveRecord.const_defined?(:Relation)
143
+ ActiveRecord::Relation.send(:include, ColumnsOnDemand::RelationMethods)
144
+ ActiveRecord::Relation.alias_method_chain :build_select, :columns_on_demand
145
+ end
@@ -1,3 +1,3 @@
1
1
  module ColumnsOnDemand
2
- VERSION = '2.0.1'
2
+ VERSION = '3.0.0'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: columns_on_demand
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
- - 2
7
+ - 3
8
8
  - 0
9
- - 1
10
- version: 2.0.1
9
+ - 0
10
+ version: 3.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Will Bryant
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-08-18 00:00:00 Z
18
+ date: 2013-04-20 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: activerecord