aggregate_columns 0.9.9 → 1.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.
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1cef858478e67ac57c390e6b0fbd14205b902d6f
|
4
|
+
data.tar.gz: 48682e8fe14bef7278086f6e1f4d21fc05c1a218
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e6d50ff2927a6a5a00769da15f6738fddfa066a0b8cac1092b17c2eccc42bf59d5a2b002675301d001e4c04e7cce108ae22a9fc77ec78462e6e6203c30a28742
|
7
|
+
data.tar.gz: 82c52ea712d9c23c69304bb1e1ab61a9163a1ffd46d93dbd02e968bbe788792e216315596964a31fc07e692971ba42a5aaf41ae4becd79698644e6fc6a48b333
|
data/aggregate_columns.gemspec
CHANGED
@@ -18,9 +18,8 @@ Gem::Specification.new do |s|
|
|
18
18
|
|
19
19
|
# specify any dependencies here; for example:
|
20
20
|
# s.add_development_dependency "rspec"
|
21
|
-
s.add_runtime_dependency "activerecord", ">= 2"
|
21
|
+
s.add_runtime_dependency "activerecord", ">= 2", ">= 2"
|
22
22
|
s.add_development_dependency "rake"
|
23
|
-
s.add_development_dependency "activerecord", ">= 2"
|
24
23
|
s.add_development_dependency "activesupport", ">= 2"
|
25
24
|
s.add_development_dependency "activerecord-nulldb-adapter", "0.2.0" # 0.2.1 explicitly forbids Rails >= 3.1
|
26
25
|
|
@@ -27,7 +27,7 @@ module AggregateColumns
|
|
27
27
|
table_name = assoc_reflection.table_name
|
28
28
|
klass = assoc_reflection.klass
|
29
29
|
join_type = options[:join_type] || "LEFT" # TODO: check if in range of allowed values
|
30
|
-
order = options[:order] || "DESC"
|
30
|
+
order = options[:order] || "DESC NULLS LAST"
|
31
31
|
conditions = options[:conditions]
|
32
32
|
joins = options[:joins]
|
33
33
|
|
@@ -61,13 +61,13 @@ module AggregateColumns
|
|
61
61
|
rel = rel.
|
62
62
|
joins( "#{join_type.to_s.upcase} JOIN (#{aggregate_rel.to_sql}) #{result_column}_join ON #{table_name}.id = #{result_column}_join.#{join_foreign_key}" ).
|
63
63
|
select( result_column.to_s ).
|
64
|
-
order( "#{result_column} DESC" ) # You might reorder if you want to have it differently
|
64
|
+
order( "#{result_column} DESC NULLS LAST" ) # You might reorder if you want to have it differently
|
65
65
|
else
|
66
66
|
aggregate_rel = aggregate_rel.where( "#{table_name}.id = #{join_reflection.quoted_table_name}.#{join_reflection.foreign_key}" )
|
67
67
|
aggregate_rel = yield( aggregate_rel ) if block_given?
|
68
68
|
rel = rel.
|
69
69
|
select( "(#{aggregate_rel.to_sql}) AS #{result_column}" ).
|
70
|
-
order( "#{result_column} DESC" ) # You might reorder if you want to have it differently
|
70
|
+
order( "#{result_column} DESC NULLS LAST" ) # You might reorder if you want to have it differently
|
71
71
|
end
|
72
72
|
return rel
|
73
73
|
end
|
@@ -56,13 +56,13 @@ module AggregateColumns
|
|
56
56
|
rel = rel.
|
57
57
|
joins( "#{join_type.to_s.upcase} JOIN (#{aggregate_rel.to_sql}) #{result_column}_join ON #{table_name}.id = #{result_column}_join.#{join_foreign_key}" ).
|
58
58
|
select( result_column.to_s ).
|
59
|
-
order( "#{result_column} DESC" ) # You might reorder if you want to have it differently
|
59
|
+
order( "#{result_column} DESC NULLS LAST" ) # You might reorder if you want to have it differently
|
60
60
|
else
|
61
61
|
aggregate_rel = aggregate_rel.where( "#{table_name}.id = #{join_reflection.quoted_table_name}.#{join_reflection.foreign_key}" )
|
62
62
|
aggregate_rel = yield( aggregate_rel ) if block_given?
|
63
63
|
rel = rel.
|
64
64
|
select( "(#{aggregate_rel.to_sql}) AS #{result_column}" ).
|
65
|
-
order( "#{result_column} DESC" ) # You might reorder if you want to have it differently
|
65
|
+
order( "#{result_column} DESC NULLS LAST" ) # You might reorder if you want to have it differently
|
66
66
|
end
|
67
67
|
return rel
|
68
68
|
end
|
metadata
CHANGED
@@ -1,105 +1,78 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: aggregate_columns
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
- 9
|
10
|
-
version: 0.9.9
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
6
|
+
authors:
|
13
7
|
- Marek Janukowicz/Starware
|
14
8
|
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2017-09-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
22
14
|
name: activerecord
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
hash: 7
|
30
|
-
segments:
|
31
|
-
- 2
|
32
|
-
version: "2"
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2'
|
33
20
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: rake
|
37
21
|
prerelease: false
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
47
34
|
type: :development
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: activerecord
|
51
35
|
prerelease: false
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
segments:
|
59
|
-
- 2
|
60
|
-
version: "2"
|
61
|
-
type: :development
|
62
|
-
version_requirements: *id003
|
63
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
64
42
|
name: activesupport
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
hash: 7
|
72
|
-
segments:
|
73
|
-
- 2
|
74
|
-
version: "2"
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2'
|
75
48
|
type: :development
|
76
|
-
version_requirements: *id004
|
77
|
-
- !ruby/object:Gem::Dependency
|
78
|
-
name: activerecord-nulldb-adapter
|
79
49
|
prerelease: false
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: activerecord-nulldb-adapter
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
90
61
|
version: 0.2.0
|
91
62
|
type: :development
|
92
|
-
|
93
|
-
|
94
|
-
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.2.0
|
69
|
+
description: ''
|
70
|
+
email:
|
95
71
|
- marek@janukowicz.net
|
96
72
|
executables: []
|
97
|
-
|
98
73
|
extensions: []
|
99
|
-
|
100
74
|
extra_rdoc_files: []
|
101
|
-
|
102
|
-
files:
|
75
|
+
files:
|
103
76
|
- .hgignore
|
104
77
|
- Gemfile
|
105
78
|
- README
|
@@ -113,41 +86,30 @@ files:
|
|
113
86
|
- test/rails_2_test.rb
|
114
87
|
- test/rails_3_test.rb
|
115
88
|
- test/test_helper.rb
|
116
|
-
|
117
|
-
homepage: ""
|
89
|
+
homepage: ''
|
118
90
|
licenses: []
|
119
|
-
|
91
|
+
metadata: {}
|
120
92
|
post_install_message:
|
121
93
|
rdoc_options: []
|
122
|
-
|
123
|
-
require_paths:
|
94
|
+
require_paths:
|
124
95
|
- lib
|
125
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
none: false
|
136
|
-
requirements:
|
137
|
-
- - ">="
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
hash: 3
|
140
|
-
segments:
|
141
|
-
- 0
|
142
|
-
version: "0"
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
143
106
|
requirements: []
|
144
|
-
|
145
107
|
rubyforge_project:
|
146
|
-
rubygems_version:
|
108
|
+
rubygems_version: 2.4.8
|
147
109
|
signing_key:
|
148
|
-
specification_version:
|
110
|
+
specification_version: 4
|
149
111
|
summary: Create and use aggregate columns in Rails applications
|
150
|
-
test_files:
|
112
|
+
test_files:
|
151
113
|
- test/rails_2_test.rb
|
152
114
|
- test/rails_3_test.rb
|
153
115
|
- test/test_helper.rb
|