active_record_sql_unionizer 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a02c2215bc7bfb78cb28677fe3feb34c086ea0ba
4
+ data.tar.gz: cbb35c5d3fed7e8de039a6e933b6c3825ea582f8
5
+ SHA512:
6
+ metadata.gz: bf18bb9ec9454df6c659d221f4870c56a7fcdb5f00e0db10f9d0ad3f5712037a25deac948abf9505c2e4b8d380ad6d2ff926085a73887a40803da32d45fcc39a
7
+ data.tar.gz: 54d73e6f4423452999ef0c787fddc5df1d9e6f104425ede3fb9f858d38f9a48d60138b675545aaadef9513cbbecc8678f467ccda4cf16fa84acdedc51df9dac5
@@ -0,0 +1 @@
1
+ require_relative "active_record_sql_unionizer/active_record_sql_unionizer"
@@ -0,0 +1,18 @@
1
+ require "active_record"
2
+
3
+ module ActiveRecordSqlUnionizer
4
+ extend ActiveSupport::Concern
5
+
6
+ module ClassMethods
7
+ def unionize(*queries)
8
+ union_string = queries.map do |query|
9
+ query_string = query.is_a?(String) ? query : query.to_sql
10
+ "(#{query_string})"
11
+ end.join(" UNION ")
12
+ union_string = "(#{union_string}) AS #{self.to_s.underscore.downcase.pluralize}"
13
+
14
+ sql = self.connection.unprepared_statement {union_string}
15
+ self.from(sql)
16
+ end
17
+ end
18
+ end
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: active_record_sql_unionizer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Jeff Hostetler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-12-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pg
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.20'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.20'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.4'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: database_cleaner
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.6'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.6'
69
+ description: Union for ActiveRecord::Relation and SQL string queries. Fam.
70
+ email: superfake@example.com
71
+ executables: []
72
+ extensions: []
73
+ extra_rdoc_files: []
74
+ files:
75
+ - lib/active_record_sql_unionizer.rb
76
+ - lib/active_record_sql_unionizer/active_record_sql_unionizer.rb
77
+ homepage: http://rubygems.org/gems/active_record_sql_unionizer
78
+ licenses:
79
+ - MIT
80
+ metadata: {}
81
+ post_install_message:
82
+ rdoc_options: []
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project:
97
+ rubygems_version: 2.6.11
98
+ signing_key:
99
+ specification_version: 4
100
+ summary: Union for ActiveRecord::Relation and SQL string queries
101
+ test_files: []