activerecord-advantage-adapter 0.1.1 → 0.1.2

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.
@@ -1,39 +1,88 @@
1
- module Arel
2
- module Visitors
3
- class Advantage < Arel::Visitors::ToSql
4
- private
5
-
6
- def visit_Arel_Nodes_Offset o
7
- "START AT #{visit(o.expr) + 1}"
8
- end
9
-
10
- def visit_Arel_Nodes_Limit(o)
11
- "TOP #{visit o.expr}"
12
- end
13
-
14
- def visit_Arel_Nodes_SelectStatement(o)
15
- [
16
- "SELECT",
17
- (visit(o.limit) if o.limit),
18
- (visit(o.offset) if o.offset),
19
- o.cores.map { |x| visit_Arel_Nodes_SelectCore x }.join,
20
- ("ORDER BY #{o.orders.map { |x| visit x }.join(', ')}" unless o.orders.empty?),
21
- ].compact.join ' '
22
- end
23
-
24
- def visit_Arel_Nodes_SelectCore o
25
- [
26
- "#{o.projections.map { |x| visit x }.join ', '}",
27
- #("FROM #{visit o.froms}" if o.froms),
28
- ("FROM #{visit o.source}" if o.source),
29
- ("WHERE #{o.wheres.map { |x| visit x }.join ' AND ' }" unless o.wheres.empty?),
30
- ("GROUP BY #{o.groups.map { |x| visit x }.join ', ' }" unless o.groups.empty?),
31
- (visit(o.having) if o.having),
32
- ].compact.join ' '
33
- end
34
- end
35
- end
36
- end
37
-
38
- Arel::Visitors::VISITORS['advantage'] = Arel::Visitors::Advantage
39
-
1
+ module Arel
2
+ module Visitors
3
+ class Advantage < Arel::Visitors::ToSql
4
+ private
5
+
6
+ if Rails::VERSION::MAJOR >= 4
7
+ # Rails 4 or above
8
+ def visit_Arel_Nodes_Offset(o, collector)
9
+ collector << "START AT "
10
+ visit (o.expr + 1), collector
11
+ collector << " "
12
+ collector
13
+ end
14
+
15
+ def visit_Arel_Nodes_Limit(o, collector)
16
+ collector << "TOP "
17
+ visit o.expr, collector
18
+ collector << " "
19
+ collector
20
+ end
21
+
22
+ # copied from informix.rb
23
+ def visit_Arel_Nodes_SelectStatement(o, collector)
24
+ collector << "SELECT "
25
+ collector = maybe_visit o.limit, collector
26
+ collector = maybe_visit o.offset, collector
27
+ collector = o.cores.inject(collector) { |c, x|
28
+ visit_Arel_Nodes_SelectCore x, c
29
+ }
30
+ if o.orders.any?
31
+ collector << "ORDER BY "
32
+ collector = inject_join o.orders, collector, ", "
33
+ end
34
+ collector
35
+ end
36
+
37
+ def visit_Arel_Nodes_SelectCore(o, collector)
38
+ collector = inject_join o.projections, collector, ", "
39
+ if o.source && !o.source.empty?
40
+ collector << " FROM "
41
+ collector = visit o.source, collector
42
+ end
43
+
44
+ if o.wheres.any?
45
+ collector << " WHERE "
46
+ collector = inject_join o.wheres, collector, " AND "
47
+ end
48
+
49
+ if o.groups.any?
50
+ collector << "GROUP BY "
51
+ collector = inject_join o.groups, collector, ", "
52
+ end
53
+
54
+ collector
55
+ end
56
+ else
57
+ # Rails 3 or lower
58
+ def visit_Arel_Nodes_Offset(o)
59
+ "START AT #{visit(o.expr) + 1}"
60
+ end
61
+
62
+ def visit_Arel_Nodes_Limit(o)
63
+ "TOP #{visit o.expr}"
64
+ end
65
+
66
+ def visit_Arel_Nodes_SelectStatement(o)
67
+ [
68
+ "SELECT",
69
+ (visit(o.limit) if o.limit),
70
+ (visit(o.offset) if o.offset),
71
+ o.cores.map { |x| visit_Arel_Nodes_SelectCore x }.join,
72
+ ("ORDER BY #{o.orders.map { |x| visit x }.join(", ")}" unless o.orders.empty?),
73
+ ].compact.join " "
74
+ end
75
+
76
+ def visit_Arel_Nodes_SelectCore(o)
77
+ [
78
+ "#{o.projections.map { |x| visit x }.join ", "}",
79
+ ("FROM #{visit o.source}" if o.source),
80
+ ("WHERE #{o.wheres.map { |x| visit x }.join " AND "}" unless o.wheres.empty?),
81
+ ("GROUP BY #{o.groups.map { |x| visit x }.join ", "}" unless o.groups.empty?),
82
+ (visit(o.having) if o.having),
83
+ ].compact.join " "
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -1,23 +1,23 @@
1
- print "Using native Advantage Interface\n"
2
- require_dependency 'models/course'
3
- require 'logger'
4
-
5
- ActiveRecord::Base.logger = Logger.new("debug.log")
6
-
7
- ActiveRecord::Base.configurations = {
8
- 'arunit' => {
9
- :adapter => 'advantage',
10
- :database => 'c:/test/arunit.add',
11
- :username => 'adssys',
12
- :password =>
13
- },
14
- 'arunit2' => {
15
- :adapter => 'advantage',
16
- :database => 'c:/test/arunit2.add',
17
- :username => 'adssys',
18
- :password =>
19
- }
20
- }
21
-
22
- ActiveRecord::Base.establish_connection 'arunit'
23
- Course.establish_connection 'arunit2'
1
+ print "Using native Advantage Interface\n"
2
+ require_dependency 'models/course'
3
+ require 'logger'
4
+
5
+ ActiveRecord::Base.logger = Logger.new("debug.log")
6
+
7
+ ActiveRecord::Base.configurations = {
8
+ 'arunit' => {
9
+ :adapter => 'advantage',
10
+ :database => 'c:/test/arunit.add',
11
+ :username => 'adssys',
12
+ :password =>
13
+ },
14
+ 'arunit2' => {
15
+ :adapter => 'advantage',
16
+ :database => 'c:/test/arunit2.add',
17
+ :username => 'adssys',
18
+ :password =>
19
+ }
20
+ }
21
+
22
+ ActiveRecord::Base.establish_connection 'arunit'
23
+ Course.establish_connection 'arunit2'
metadata CHANGED
@@ -1,90 +1,117 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-advantage-adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
- prerelease:
4
+ version: 0.1.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Edgar Sherman
8
+ - Jon Adams
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-19 00:00:00.000000000 Z
12
+ date: 2020-11-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: advantage
15
+ name: bundler
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
- - - ! '>='
18
+ - - "~>"
20
19
  - !ruby/object:Gem::Version
21
- version: 0.1.0
22
- type: :runtime
20
+ version: '1.17'
21
+ type: :development
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
- - - ! '>='
25
+ - - "~>"
28
26
  - !ruby/object:Gem::Version
29
- version: 0.1.0
27
+ version: '1.17'
30
28
  - !ruby/object:Gem::Dependency
31
- name: activerecord
29
+ name: rake
32
30
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
31
  requirements:
35
- - - ! '>='
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '10.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
36
40
  - !ruby/object:Gem::Version
37
- version: 3.2.0
41
+ version: '10.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '3.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: advantage
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.1'
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 0.1.2
38
66
  type: :runtime
39
67
  prerelease: false
40
68
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
69
  requirements:
43
- - - ! '>='
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '0.1'
73
+ - - ">="
44
74
  - !ruby/object:Gem::Version
45
- version: 3.2.0
46
- description: ! ' ActiveRecord driver for Advantage
47
-
48
- '
49
- email: advantage@sybase.com
75
+ version: 0.1.2
76
+ description: ActiveRecord driver for the Advantage Database connector
77
+ email:
78
+ - advantage@sybase.com
79
+ - t12nslookup@googlemail.com
50
80
  executables: []
51
81
  extensions: []
52
- extra_rdoc_files:
53
- - README
54
- - LICENSE
82
+ extra_rdoc_files: []
55
83
  files:
84
+ - LICENSE
85
+ - README
86
+ - activerecord-advantage-adapter.gemspec
56
87
  - lib/active_record/connection_adapters/advantage_adapter.rb
57
88
  - lib/arel/visitors/advantage.rb
58
89
  - test/connection.rb
59
- - README
60
- - LICENSE
61
90
  homepage: http://devzone.advantagedatabase.com
62
- licenses: []
91
+ licenses:
92
+ - Apache-2.0
93
+ metadata:
94
+ allowed_push_host: https://rubygems.org
95
+ homepage_uri: http://devzone.advantagedatabase.com
96
+ source_code_uri: https://github.com/t12nslookup/activerecord-advantage-adapter/
97
+ changelog_uri: https://github.com/t12nslookup/activerecord-advantage-adapter/blob/master/CHANGELOG.md
63
98
  post_install_message:
64
- rdoc_options:
65
- - --title
66
- - ActiveRecord Driver for Advantage
67
- - --main
68
- - README
69
- - --line-numbers
99
+ rdoc_options: []
70
100
  require_paths:
71
101
  - lib
72
102
  required_ruby_version: !ruby/object:Gem::Requirement
73
- none: false
74
103
  requirements:
75
- - - ! '>='
104
+ - - ">="
76
105
  - !ruby/object:Gem::Version
77
- version: 1.9.2
106
+ version: '0'
78
107
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
108
  requirements:
81
- - - ! '>='
109
+ - - ">="
82
110
  - !ruby/object:Gem::Version
83
111
  version: '0'
84
112
  requirements: []
85
- rubyforge_project:
86
- rubygems_version: 1.8.24
113
+ rubygems_version: 3.1.2
87
114
  signing_key:
88
- specification_version: 3
115
+ specification_version: 4
89
116
  summary: ActiveRecord driver for Advantage
90
117
  test_files: []