activerecord-advantage-adapter 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []