activerecord-advantage-adapter 0.1.4 → 0.1.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b0b104f4e9d8fb204bc6249aa06448f5881292745123dd94c2def2eee9254dad
4
- data.tar.gz: 3e64e4089e520711b10ca37cb3b3404834c2b939d65a50898e19d1735c4f3d50
3
+ metadata.gz: 2d10f6102f8391080901ec11c4394d7b47cfab4b7072f2ca7255e44a05c138a3
4
+ data.tar.gz: 7aece77305d027f0d6e1ceec3fd3b0e07a3a10c92eccd24d853ab3a504a17881
5
5
  SHA512:
6
- metadata.gz: 6f100c25e14250e25e93ecadfe20f1bbe2c5ee1e42d3980924771111cc7ac5a094a3ab2f2db057bbd2ac8630ca195e15a60892fbc8dd47eb90ef2f4c8c324204
7
- data.tar.gz: 3ecae6463a95d48e9e1f9ef194fe8adde8333e39c74f9d90d405fd63acc64a59cbdcfb91b0fdea786ce1dca00f5dff93c142dbfaf8fef62a4465a8af65fae4bc
6
+ metadata.gz: b5cfeeb5eb5080e7ccb15594e4b0d2e0cb3defdbdbb94b8b9d8c39b0c09128f69c332e506f28ce9d84f8db7698a700f202403aa1be74abdbc3692b143cd76309
7
+ data.tar.gz: c5c2245d339343294ea183cb5c1cd2a76f88619c275f26683bcf9bcac841550f65ec3e2b52e4696534030b4b1b10d897ed765ef5d79af7ac1e898c332bf990d6
@@ -1,49 +1,48 @@
1
1
  lib = File.expand_path("../lib", __FILE__)
2
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
- pkg_version = "0.1.4"
4
+ pkg_version = "0.1.6"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "activerecord-advantage-adapter"
7
+ spec.name = 'activerecord-advantage-adapter'
8
8
  spec.version = pkg_version
9
- spec.authors = ["Edgar Sherman", "Jon Adams"]
10
- spec.email = ["advantage@sybase.com", "t12nslookup@googlemail.com"]
9
+ spec.authors = ['Edgar Sherman', 'Jon Adams']
10
+ spec.email = ['advantage@sybase.com', 't12nslookup@googlemail.com']
11
11
 
12
- spec.summary = %q{ActiveRecord driver for Advantage}
13
- spec.description = %q{ActiveRecord driver for the Advantage Database connector}
14
- spec.homepage = "http://devzone.advantagedatabase.com"
15
- spec.license = "Apache-2.0"
12
+ spec.summary = 'ActiveRecord driver for Advantage'
13
+ spec.description = 'ActiveRecord driver for the Advantage Database connector'
14
+ spec.homepage = 'http://devzone.advantagedatabase.com'
15
+ spec.license = 'Apache-2.0'
16
16
 
17
17
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
18
  # to allow pushing to a single host or delete this section to allow pushing to any host.
19
19
  if spec.respond_to?(:metadata)
20
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
20
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
21
21
 
22
- spec.metadata["homepage_uri"] = spec.homepage
22
+ spec.metadata['homepage_uri'] = spec.homepage
23
23
  # Changed to the github project, as this is the actively maintained source, now.
24
- spec.metadata["source_code_uri"] = "https://github.com/t12nslookup/activerecord-advantage-adapter/"
25
- spec.metadata["changelog_uri"] = "https://github.com/t12nslookup/activerecord-advantage-adapter/CHANGELOG.md"
24
+ spec.metadata['source_code_uri'] = 'https://github.com/t12nslookup/activerecord-advantage-adapter/'
25
+ spec.metadata['changelog_uri'] = 'https://github.com/t12nslookup/activerecord-advantage-adapter/blob/main/CHANGELOG.md'
26
26
  else
27
- raise "RubyGems 2.0 or newer is required to protect against " \
28
- "public gem pushes."
27
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
28
+ 'public gem pushes.'
29
29
  end
30
30
 
31
31
  # Specify which files should be added to the gem when it is released.
32
32
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
33
- spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
34
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
35
- end
36
- spec.files = Dir["{test,lib}/**/*",
37
- "LICENSE",
38
- "README",
39
- "activerecord-advantage-adapter.gemspec"]
40
- spec.require_paths = ["lib"]
41
-
42
- spec.add_development_dependency "bundler", "~> 1.17"
43
- spec.add_development_dependency "rake", "~> 10.0"
44
- spec.add_development_dependency "rspec", "~> 3.0"
45
-
46
- spec.add_runtime_dependency "advantage", "~> 0.1", ">= 0.1.2"
33
+ # spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
34
+ # `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
35
+ # end
36
+ spec.files = Dir['{test,lib}/**/*',
37
+ 'LICENSE',
38
+ 'README',
39
+ 'activerecord-advantage-adapter.gemspec']
40
+ spec.require_paths = ['lib']
41
+
42
+ spec.add_development_dependency 'bundler', '~> 1.17'
43
+ spec.add_development_dependency 'rake', '~> 10.0'
44
+ spec.add_development_dependency 'rspec', '~> 3.0'
45
+
46
+ spec.add_runtime_dependency 'advantage', '~> 0.1', '>= 0.1.2'
47
47
  # spec.add_runtime_dependency 'activerecord', '>= 3.2.0'
48
-
49
48
  end
@@ -433,6 +433,26 @@ SQL
433
433
  execute "ALTER TABLE #{quote_table_name(table_name)} DROP #{quote_column_name(column_name)}"
434
434
  end
435
435
 
436
+ if Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR < 2
437
+ def combine_bind_parameters(
438
+ from_clause: [],
439
+ join_clause: [],
440
+ where_clause: [],
441
+ having_clause: [],
442
+ limit: nil,
443
+ offset: nil
444
+ ) # :nodoc:
445
+ result = []
446
+ result << limit if limit
447
+ result += from_clause if from_clause.any?
448
+ result += join_clause if join_clause.any?
449
+ result += where_clause if where_clause.any?
450
+ result += having_clause if having_clause.any?
451
+ result << offset if offset
452
+ result
453
+ end
454
+ end
455
+
436
456
  protected
437
457
 
438
458
  # Execute a query
@@ -13,7 +13,7 @@ module Arel
13
13
  end
14
14
 
15
15
  def visit_Arel_Nodes_Limit(o, collector)
16
- collector << "TOP "
16
+ collector << "TOP "
17
17
  visit o.expr, collector
18
18
  collector << " "
19
19
  collector
@@ -21,38 +21,63 @@ module Arel
21
21
 
22
22
  # copied from informix.rb
23
23
  def visit_Arel_Nodes_SelectStatement(o, collector)
24
- collector << "SELECT "
24
+ collector << 'SELECT '
25
25
  collector = maybe_visit o.limit, collector
26
26
  collector = maybe_visit o.offset, collector
27
- collector = o.cores.inject(collector) { |c, x|
27
+ collector = o.cores.inject(collector) do |c, x|
28
28
  visit_Arel_Nodes_SelectCore x, c
29
- }
29
+ end
30
30
  if o.orders.any?
31
- collector << "ORDER BY "
32
- collector = inject_join o.orders, collector, ", "
31
+ collector << ' ORDER BY '
32
+ collector = inject_join o.orders, collector, ', '
33
33
  end
34
34
  collector
35
35
  end
36
36
 
37
37
  def visit_Arel_Nodes_SelectCore(o, collector)
38
- collector = inject_join o.projections, collector, ", "
38
+ collector = maybe_visit o.set_quantifier, collector
39
+ collector = inject_join o.projections, collector, ', '
39
40
  if o.source && !o.source.empty?
40
- collector << " FROM "
41
+ collector << ' FROM '
41
42
  collector = visit o.source, collector
42
43
  end
43
44
 
44
45
  if o.wheres.any?
45
- collector << " WHERE "
46
- collector = inject_join o.wheres, collector, " AND "
46
+ collector << ' WHERE '
47
+ collector = inject_join o.wheres, collector, ' AND '
47
48
  end
48
49
 
49
50
  if o.groups.any?
50
- collector << "GROUP BY "
51
- collector = inject_join o.groups, collector, ", "
51
+ collector << ' GROUP BY '
52
+ collector = inject_join o.groups, collector, ', '
52
53
  end
53
54
 
54
55
  collector
55
56
  end
57
+
58
+ def visit_Arel_Nodes_Distinct(o, collector)
59
+ collector << 'DISTINCT '
60
+ end
61
+
62
+ # Rails version > 5?
63
+ def unboundable?(value)
64
+ value.respond_to?(:unboundable?) && value.unboundable?
65
+ end
66
+
67
+ def visit_Arel_Nodes_NotEqual(o, collector)
68
+ right = o.right
69
+
70
+ return collector << ' 1=1' if unboundable?(right)
71
+
72
+ collector = visit o.left, collector
73
+
74
+ if right.nil?
75
+ collector << ' IS NOT NULL'
76
+ else
77
+ collector << ' <> '
78
+ visit right, collector
79
+ end
80
+ end
56
81
  else
57
82
  # Rails 3 or lower
58
83
  def visit_Arel_Nodes_Offset(o)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-advantage-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edgar Sherman
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-05-28 00:00:00.000000000 Z
12
+ date: 2022-06-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -94,7 +94,7 @@ metadata:
94
94
  allowed_push_host: https://rubygems.org
95
95
  homepage_uri: http://devzone.advantagedatabase.com
96
96
  source_code_uri: https://github.com/t12nslookup/activerecord-advantage-adapter/
97
- changelog_uri: https://github.com/t12nslookup/activerecord-advantage-adapter/CHANGELOG.md
97
+ changelog_uri: https://github.com/t12nslookup/activerecord-advantage-adapter/blob/main/CHANGELOG.md
98
98
  post_install_message:
99
99
  rdoc_options: []
100
100
  require_paths: