activerecord_sqlserver_crm 5.1.1 → 5.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/config/initializers/extensions.rb +1 -0
- data/lib/activerecord_sqlserver_crm/version.rb +1 -1
- data/lib/sqlserver.rb +42 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14c8162bb4c63c744295b08a767f3dd347967557
|
4
|
+
data.tar.gz: b0151c208209aad112ee07e250bbb63cf53c9339
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8778543933b59bc25e589cb93e12f85b64ba5ab93a3e2e7c715d209bbda04cf86835af423cd47746de8a9f5216bfae8cf5deba0367223f928638c30a28048d96
|
7
|
+
data.tar.gz: 9032fb1c27e6ef1ddf1a400fe7cc3ea3ff448a6cb016202486d8ff72b4fb414ea4692ef716ccaf1cb82b5ecb98a4d179bdd4ffeeac7e5b8ec589ef730c4ab92f
|
data/lib/sqlserver.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# This file comes from the activerecord_sqlserver gem and is overridden.
|
2
|
+
# It fixes 2 problems:
|
3
|
+
# 1. Primary key was looked up from database. But since we are using Views in CRM, nothing was returned for
|
4
|
+
# primary keys. Instead we get primary key from ActiveRecord Object
|
5
|
+
# 2. With a find method, it was adding an Order by and a fetch, which is not necessary
|
6
|
+
module Arel
|
7
|
+
module Visitors
|
8
|
+
class SQLServer < Arel::Visitors::ToSql
|
9
|
+
|
10
|
+
def visit_Arel_Nodes_SelectStatement o, collector
|
11
|
+
@select_statement = o
|
12
|
+
distinct_One_As_One_Is_So_Not_Fetch o
|
13
|
+
if o.with
|
14
|
+
collector = visit o.with, collector
|
15
|
+
collector << SPACE
|
16
|
+
end
|
17
|
+
collector = o.cores.inject(collector) { |c,x|
|
18
|
+
visit_Arel_Nodes_SelectCore(x, c)
|
19
|
+
}
|
20
|
+
# Added this line to check for orders present
|
21
|
+
if o.orders.present?
|
22
|
+
collector = visit_Orders_And_Let_Fetch_Happen o, collector
|
23
|
+
collector = visit_Make_Fetch_Happen o, collector
|
24
|
+
end
|
25
|
+
collector
|
26
|
+
ensure
|
27
|
+
@select_statement = nil
|
28
|
+
end
|
29
|
+
|
30
|
+
def primary_Key_From_Table t
|
31
|
+
return unless t
|
32
|
+
# Use activerecord class, and get primary key from that rather than look in database
|
33
|
+
arclass = t.send(:type_caster)&.send(:types)&.name&.constantize
|
34
|
+
column_name = @connection.schema_cache.primary_keys(t.name) ||
|
35
|
+
arclass.primary_key ||
|
36
|
+
@connection.schema_cache.columns_hash(t.name).first.try(:second).try(:name)
|
37
|
+
column_name ? t[column_name] : nil
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord_sqlserver_crm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.1.
|
4
|
+
version: 5.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rolf Lawrenz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -180,6 +180,7 @@ files:
|
|
180
180
|
- lib/odata/update_operation.rb
|
181
181
|
- lib/odata_config.rb
|
182
182
|
- lib/sql_server_adapter.rb
|
183
|
+
- lib/sqlserver.rb
|
183
184
|
- lib/tasks/activerecord_sqlserver_crm_tasks.rake
|
184
185
|
homepage: https://github.com/RolfLawrenz/activerecord_sqlserver_crm
|
185
186
|
licenses:
|