directiverecord 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.rdoc +4 -0
- data/VERSION +1 -1
- data/lib/directive_record/gem_ext/active_record/base.rb +4 -0
- data/lib/directive_record/query/sql.rb +17 -0
- data/lib/directive_record/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjcwZWZhNjNhZThlMWQyOWU4NGIyNzE1YTRiNjQ5N2UzYWE2OGUzYQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NjcxNWM5NTc2NzEzZTNiNTUwNjczMTA4MjAzMzUwMGViMTYzMjRlNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NGFkZTNiN2EyN2NhZTc4YjE0ZjY2MjE0M2EwMGZiYjc2OGZjODk4OTE5MjZm
|
10
|
+
ZTIzZWQ3ZTRjODU3YWYxMDhmOTJiNTgwMWM1ODZmZWM3OTc1YzQ4YTczZjVi
|
11
|
+
Y2M3YWRiYjYxZTllNzIxMzU4MzFlMzQ3MDBiMTllNzMwYjdiNjY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDhmZWNlZDY2Njc1OWM4ZjM4NzkxMWI3ODhmMTJjZDU5NmM2MDU5M2YxNWJj
|
14
|
+
Y2Y5YWI4MGJhNTRmOTI1MWU5ZTc0M2Y3Y2VjMzUyNjBjOTk4Y2FjMjA2MTUz
|
15
|
+
OTU4NzE2M2E2YmM3YTA4OTZlOGIwMDBlYzdiMGM2MGYyMDk1MWQ=
|
data/CHANGELOG.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
@@ -9,6 +9,10 @@ module ActiveRecord
|
|
9
9
|
extract_connection(args).select_rows to_qry(*args)
|
10
10
|
end
|
11
11
|
|
12
|
+
def self.to_trend_qry(q1, q2, join_column_count, options)
|
13
|
+
DirectiveRecord::Query.new(self).to_trend_sql(q1, q2, join_column_count, options)
|
14
|
+
end
|
15
|
+
|
12
16
|
private
|
13
17
|
|
14
18
|
def self.extract_connection(args)
|
@@ -25,6 +25,23 @@ module DirectiveRecord
|
|
25
25
|
compose_sql options
|
26
26
|
end
|
27
27
|
|
28
|
+
def to_trend_sql(q1, q2, join_column_count, options)
|
29
|
+
i = join_column_count + 1
|
30
|
+
select = "q1.*, q2.c#{i}, (((q1.c#{i} - q2.c#{i}) / ABS(q2.c#{i})) * 100) AS trend"
|
31
|
+
on = (1..join_column_count).to_a.collect{|x| "q1.c#{x} = q2.c#{x}"}.join(" AND ")
|
32
|
+
order = "\nORDER BY #{options[:order]}" if options[:order]
|
33
|
+
limit = "\nLIMIT #{options[:limit]}" if options[:limit]
|
34
|
+
offset = "\nOFFSET #{options[:offset]}" if options[:offset]
|
35
|
+
<<-SQL
|
36
|
+
SELECT #{select}
|
37
|
+
FROM
|
38
|
+
(\n#{q1}\n) q1
|
39
|
+
INNER JOIN
|
40
|
+
(\n#{q2}\n) q2
|
41
|
+
ON #{on}#{order}#{limit}#{offset}
|
42
|
+
SQL
|
43
|
+
end
|
44
|
+
|
28
45
|
private
|
29
46
|
|
30
47
|
def path_delimiter; end
|