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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 518b8ac7c1220a69156623f41405677b532f8602
4
- data.tar.gz: d9d4ff4ff4f7f596311fac39a25cdf7aabad1c1d
3
+ metadata.gz: 14c8162bb4c63c744295b08a767f3dd347967557
4
+ data.tar.gz: b0151c208209aad112ee07e250bbb63cf53c9339
5
5
  SHA512:
6
- metadata.gz: 068eee1e08e11f006a83aa2837f56fecec1cefdcfb0a5b74bcfc32d15ea1ef5525357527ce23e36055ee31411c9135ae2079e3550b7288f48252d0e5c92992b7
7
- data.tar.gz: af7e7da093231b6f063c0520aea8ca2156b454af93c324b88793a94c8bb1ee268e4baf0174d9d006b5df16b65f57d769eba60b70c758df80e8f5eb376c786542
6
+ metadata.gz: 8778543933b59bc25e589cb93e12f85b64ba5ab93a3e2e7c715d209bbda04cf86835af423cd47746de8a9f5216bfae8cf5deba0367223f928638c30a28048d96
7
+ data.tar.gz: 9032fb1c27e6ef1ddf1a400fe7cc3ea3ff448a6cb016202486d8ff72b4fb414ea4692ef716ccaf1cb82b5ecb98a4d179bdd4ffeeac7e5b8ec589ef730c4ab92f
@@ -2,3 +2,4 @@ require 'odata_config'
2
2
  require "active_record_extension"
3
3
  require "big_decimal"
4
4
  require "sql_server_adapter"
5
+ require "sqlserver"
@@ -1,3 +1,3 @@
1
1
  module ActiverecordSqlserverCrm
2
- VERSION = "5.1.1"
2
+ VERSION = "5.1.2"
3
3
  end
@@ -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.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: 2017-12-12 00:00:00.000000000 Z
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: