arel_extensions 1.7.0 → 2.0.0.rc3

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.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +2 -1
  3. data/.gitignore +6 -8
  4. data/.rubocop.yml +4 -194
  5. data/.travis/oracle/download.js +152 -0
  6. data/.travis/oracle/download.sh +30 -0
  7. data/.travis/oracle/download_ojdbc.js +116 -0
  8. data/.travis/oracle/install.sh +34 -0
  9. data/.travis/setup_accounts.sh +9 -0
  10. data/.travis/sqlite3/extension-functions.sh +6 -0
  11. data/.travis.yml +223 -0
  12. data/Gemfile +28 -2
  13. data/README.md +89 -265
  14. data/Rakefile +30 -50
  15. data/TODO +1 -0
  16. data/appveyor.yml +22 -60
  17. data/arel_extensions.gemspec +17 -14
  18. data/functions.html +3 -3
  19. data/gemfiles/rails3.gemfile +20 -0
  20. data/gemfiles/rails4.gemfile +29 -0
  21. data/gemfiles/rails5_0.gemfile +29 -0
  22. data/gemfiles/rails5_1_4.gemfile +17 -19
  23. data/gemfiles/rails5_2.gemfile +17 -26
  24. data/init/mssql.sql +4 -4
  25. data/init/mysql.sql +38 -38
  26. data/init/oracle.sql +0 -0
  27. data/init/postgresql.sql +25 -24
  28. data/init/sqlite.sql +0 -0
  29. data/lib/arel_extensions/attributes.rb +3 -9
  30. data/lib/arel_extensions/boolean_functions.rb +16 -57
  31. data/lib/arel_extensions/common_sql_functions.rb +20 -21
  32. data/lib/arel_extensions/comparators.rb +28 -31
  33. data/lib/arel_extensions/date_duration.rb +13 -19
  34. data/lib/arel_extensions/insert_manager.rb +15 -22
  35. data/lib/arel_extensions/math.rb +70 -68
  36. data/lib/arel_extensions/math_functions.rb +52 -57
  37. data/lib/arel_extensions/nodes/abs.rb +1 -0
  38. data/lib/arel_extensions/nodes/blank.rb +5 -6
  39. data/lib/arel_extensions/nodes/case.rb +27 -31
  40. data/lib/arel_extensions/nodes/cast.rb +12 -12
  41. data/lib/arel_extensions/nodes/ceil.rb +1 -1
  42. data/lib/arel_extensions/nodes/coalesce.rb +5 -4
  43. data/lib/arel_extensions/nodes/collate.rb +10 -9
  44. data/lib/arel_extensions/nodes/concat.rb +22 -13
  45. data/lib/arel_extensions/nodes/date_diff.rb +70 -77
  46. data/lib/arel_extensions/nodes/duration.rb +5 -2
  47. data/lib/arel_extensions/nodes/find_in_set.rb +1 -0
  48. data/lib/arel_extensions/nodes/floor.rb +1 -1
  49. data/lib/arel_extensions/nodes/format.rb +8 -35
  50. data/lib/arel_extensions/nodes/formatted_number.rb +23 -22
  51. data/lib/arel_extensions/nodes/function.rb +39 -50
  52. data/lib/arel_extensions/nodes/is_null.rb +0 -2
  53. data/lib/arel_extensions/nodes/json.rb +47 -72
  54. data/lib/arel_extensions/nodes/length.rb +0 -5
  55. data/lib/arel_extensions/nodes/levenshtein_distance.rb +2 -2
  56. data/lib/arel_extensions/nodes/locate.rb +3 -2
  57. data/lib/arel_extensions/nodes/log10.rb +2 -1
  58. data/lib/arel_extensions/nodes/matches.rb +8 -6
  59. data/lib/arel_extensions/nodes/md5.rb +1 -0
  60. data/lib/arel_extensions/nodes/power.rb +5 -5
  61. data/lib/arel_extensions/nodes/rand.rb +3 -2
  62. data/lib/arel_extensions/nodes/repeat.rb +6 -4
  63. data/lib/arel_extensions/nodes/replace.rb +8 -16
  64. data/lib/arel_extensions/nodes/round.rb +7 -6
  65. data/lib/arel_extensions/nodes/soundex.rb +15 -15
  66. data/lib/arel_extensions/nodes/std.rb +21 -18
  67. data/lib/arel_extensions/nodes/substring.rb +16 -58
  68. data/lib/arel_extensions/nodes/then.rb +2 -2
  69. data/lib/arel_extensions/nodes/trim.rb +7 -5
  70. data/lib/arel_extensions/nodes/union.rb +9 -6
  71. data/lib/arel_extensions/nodes/union_all.rb +8 -5
  72. data/lib/arel_extensions/nodes/wday.rb +6 -2
  73. data/lib/arel_extensions/nodes.rb +1 -1
  74. data/lib/arel_extensions/null_functions.rb +6 -18
  75. data/lib/arel_extensions/predications.rb +49 -54
  76. data/lib/arel_extensions/railtie.rb +5 -5
  77. data/lib/arel_extensions/set_functions.rb +7 -5
  78. data/lib/arel_extensions/string_functions.rb +55 -110
  79. data/lib/arel_extensions/tasks.rb +6 -6
  80. data/lib/arel_extensions/version.rb +1 -3
  81. data/lib/arel_extensions/visitors/ibm_db.rb +36 -29
  82. data/lib/arel_extensions/visitors/mssql.rb +248 -493
  83. data/lib/arel_extensions/visitors/mysql.rb +244 -420
  84. data/lib/arel_extensions/visitors/oracle.rb +258 -311
  85. data/lib/arel_extensions/visitors/oracle12.rb +34 -20
  86. data/lib/arel_extensions/visitors/postgresql.rb +239 -350
  87. data/lib/arel_extensions/visitors/sqlite.rb +169 -191
  88. data/lib/arel_extensions/visitors/to_sql.rb +299 -371
  89. data/lib/arel_extensions/visitors.rb +62 -83
  90. data/lib/arel_extensions.rb +32 -243
  91. data/test/database.yml +10 -20
  92. data/test/helper.rb +18 -0
  93. data/test/real_db_test.rb +120 -123
  94. data/test/support/fake_record.rb +3 -11
  95. data/test/test_comparators.rb +17 -14
  96. data/test/visitors/test_bulk_insert_oracle.rb +12 -12
  97. data/test/visitors/test_bulk_insert_sqlite.rb +14 -13
  98. data/test/visitors/test_bulk_insert_to_sql.rb +13 -11
  99. data/test/visitors/test_oracle.rb +55 -55
  100. data/test/visitors/test_to_sql.rb +226 -419
  101. data/test/with_ar/all_agnostic_test.rb +375 -912
  102. data/test/with_ar/insert_agnostic_test.rb +22 -28
  103. data/test/with_ar/test_bulk_sqlite.rb +17 -18
  104. data/test/with_ar/test_math_sqlite.rb +27 -27
  105. data/test/with_ar/test_string_mysql.rb +34 -32
  106. data/test/with_ar/test_string_sqlite.rb +35 -31
  107. metadata +64 -50
  108. data/.github/workflows/publish.yml +0 -30
  109. data/.github/workflows/release.yml +0 -30
  110. data/.github/workflows/ruby.yml +0 -452
  111. data/CONTRIBUTING.md +0 -102
  112. data/Makefile +0 -48
  113. data/NEWS.md +0 -131
  114. data/bin/build +0 -15
  115. data/bin/publish +0 -8
  116. data/dev/arelx.dockerfile +0 -41
  117. data/dev/compose.yaml +0 -69
  118. data/dev/postgres.dockerfile +0 -5
  119. data/dev/rbenv +0 -189
  120. data/gemfiles/rails5.gemfile +0 -36
  121. data/gemfiles/rails6.gemfile +0 -40
  122. data/gemfiles/rails6_1.gemfile +0 -48
  123. data/gemfiles/rails7.gemfile +0 -48
  124. data/gemfiles/rails7_1.gemfile +0 -48
  125. data/gemfiles/rails7_2.gemfile +0 -47
  126. data/gemfiles/rails8.gemfile +0 -40
  127. data/gemfiles/rails8_1.gemfile +0 -41
  128. data/gemspecs/arel_extensions-v1.gemspec +0 -25
  129. data/gemspecs/arel_extensions-v2.gemspec +0 -25
  130. data/generate_gems.sh +0 -15
  131. data/lib/arel_extensions/aliases.rb +0 -14
  132. data/lib/arel_extensions/constants.rb +0 -13
  133. data/lib/arel_extensions/helpers.rb +0 -61
  134. data/lib/arel_extensions/nodes/aggregate_function.rb +0 -13
  135. data/lib/arel_extensions/nodes/byte_size.rb +0 -11
  136. data/lib/arel_extensions/nodes/char_length.rb +0 -11
  137. data/lib/arel_extensions/nodes/formatted_date.rb +0 -42
  138. data/lib/arel_extensions/nodes/rollup.rb +0 -36
  139. data/lib/arel_extensions/nodes/select.rb +0 -10
  140. data/lib/arel_extensions/nodes/sum.rb +0 -7
  141. data/lib/arel_extensions/visitors/convert_format.rb +0 -37
  142. data/lib/arel_extensions/warning.rb +0 -42
  143. data/test/arelx_test_helper.rb +0 -94
  144. data/test/config_loader.rb +0 -9
  145. data/version_v1.rb +0 -5
  146. data/version_v2.rb +0 -5
metadata CHANGED
@@ -1,31 +1,73 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 2.0.0.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yann Azoury
8
8
  - Félix Bellanger
9
9
  - Julien Delporte
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2026-09-02 00:00:00.000000000 Z
13
+ date: 2019-08-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: arel
16
+ name: activerecord
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '6.0'
21
+ version: 6.0.0.rc2
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '6.0'
28
+ version: 6.0.0.rc2
29
+ - !ruby/object:Gem::Dependency
30
+ name: minitest
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '5.9'
36
+ type: :development
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '5.9'
43
+ - !ruby/object:Gem::Dependency
44
+ name: rdoc
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '4.0'
50
+ type: :development
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '4.0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: rake
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '11'
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '11'
29
71
  description: Adds new features to Arel
30
72
  email:
31
73
  - yann.azoury@faveod.com
@@ -39,69 +81,50 @@ extra_rdoc_files:
39
81
  - functions.html
40
82
  files:
41
83
  - ".codeclimate.yml"
42
- - ".github/workflows/publish.yml"
43
- - ".github/workflows/release.yml"
44
- - ".github/workflows/ruby.yml"
45
84
  - ".gitignore"
46
85
  - ".rubocop.yml"
47
- - CONTRIBUTING.md
86
+ - ".travis.yml"
87
+ - ".travis/oracle/download.js"
88
+ - ".travis/oracle/download.sh"
89
+ - ".travis/oracle/download_ojdbc.js"
90
+ - ".travis/oracle/install.sh"
91
+ - ".travis/setup_accounts.sh"
92
+ - ".travis/sqlite3/extension-functions.sh"
48
93
  - Gemfile
49
94
  - MIT-LICENSE.txt
50
- - Makefile
51
- - NEWS.md
52
95
  - README.md
53
96
  - Rakefile
54
97
  - SQL_Challenges.md
55
98
  - TODO
56
99
  - appveyor.yml
57
100
  - arel_extensions.gemspec
58
- - bin/build
59
- - bin/publish
60
- - dev/arelx.dockerfile
61
- - dev/compose.yaml
62
- - dev/postgres.dockerfile
63
- - dev/rbenv
64
101
  - functions.html
65
- - gemfiles/rails5.gemfile
102
+ - gemfiles/rails3.gemfile
103
+ - gemfiles/rails4.gemfile
104
+ - gemfiles/rails5_0.gemfile
66
105
  - gemfiles/rails5_1_4.gemfile
67
106
  - gemfiles/rails5_2.gemfile
68
- - gemfiles/rails6.gemfile
69
- - gemfiles/rails6_1.gemfile
70
- - gemfiles/rails7.gemfile
71
- - gemfiles/rails7_1.gemfile
72
- - gemfiles/rails7_2.gemfile
73
- - gemfiles/rails8.gemfile
74
- - gemfiles/rails8_1.gemfile
75
- - gemspecs/arel_extensions-v1.gemspec
76
- - gemspecs/arel_extensions-v2.gemspec
77
- - generate_gems.sh
78
107
  - init/mssql.sql
79
108
  - init/mysql.sql
80
109
  - init/oracle.sql
81
110
  - init/postgresql.sql
82
111
  - init/sqlite.sql
83
112
  - lib/arel_extensions.rb
84
- - lib/arel_extensions/aliases.rb
85
113
  - lib/arel_extensions/attributes.rb
86
114
  - lib/arel_extensions/boolean_functions.rb
87
115
  - lib/arel_extensions/common_sql_functions.rb
88
116
  - lib/arel_extensions/comparators.rb
89
- - lib/arel_extensions/constants.rb
90
117
  - lib/arel_extensions/date_duration.rb
91
- - lib/arel_extensions/helpers.rb
92
118
  - lib/arel_extensions/insert_manager.rb
93
119
  - lib/arel_extensions/math.rb
94
120
  - lib/arel_extensions/math_functions.rb
95
121
  - lib/arel_extensions/nodes.rb
96
122
  - lib/arel_extensions/nodes/abs.rb
97
- - lib/arel_extensions/nodes/aggregate_function.rb
98
123
  - lib/arel_extensions/nodes/blank.rb
99
- - lib/arel_extensions/nodes/byte_size.rb
100
124
  - lib/arel_extensions/nodes/case.rb
101
125
  - lib/arel_extensions/nodes/cast.rb
102
126
  - lib/arel_extensions/nodes/ceil.rb
103
127
  - lib/arel_extensions/nodes/change_case.rb
104
- - lib/arel_extensions/nodes/char_length.rb
105
128
  - lib/arel_extensions/nodes/coalesce.rb
106
129
  - lib/arel_extensions/nodes/collate.rb
107
130
  - lib/arel_extensions/nodes/concat.rb
@@ -110,7 +133,6 @@ files:
110
133
  - lib/arel_extensions/nodes/find_in_set.rb
111
134
  - lib/arel_extensions/nodes/floor.rb
112
135
  - lib/arel_extensions/nodes/format.rb
113
- - lib/arel_extensions/nodes/formatted_date.rb
114
136
  - lib/arel_extensions/nodes/formatted_number.rb
115
137
  - lib/arel_extensions/nodes/function.rb
116
138
  - lib/arel_extensions/nodes/is_null.rb
@@ -125,13 +147,10 @@ files:
125
147
  - lib/arel_extensions/nodes/rand.rb
126
148
  - lib/arel_extensions/nodes/repeat.rb
127
149
  - lib/arel_extensions/nodes/replace.rb
128
- - lib/arel_extensions/nodes/rollup.rb
129
150
  - lib/arel_extensions/nodes/round.rb
130
- - lib/arel_extensions/nodes/select.rb
131
151
  - lib/arel_extensions/nodes/soundex.rb
132
152
  - lib/arel_extensions/nodes/std.rb
133
153
  - lib/arel_extensions/nodes/substring.rb
134
- - lib/arel_extensions/nodes/sum.rb
135
154
  - lib/arel_extensions/nodes/then.rb
136
155
  - lib/arel_extensions/nodes/trim.rb
137
156
  - lib/arel_extensions/nodes/union.rb
@@ -145,7 +164,6 @@ files:
145
164
  - lib/arel_extensions/tasks.rb
146
165
  - lib/arel_extensions/version.rb
147
166
  - lib/arel_extensions/visitors.rb
148
- - lib/arel_extensions/visitors/convert_format.rb
149
167
  - lib/arel_extensions/visitors/ibm_db.rb
150
168
  - lib/arel_extensions/visitors/mssql.rb
151
169
  - lib/arel_extensions/visitors/mysql.rb
@@ -154,10 +172,8 @@ files:
154
172
  - lib/arel_extensions/visitors/postgresql.rb
155
173
  - lib/arel_extensions/visitors/sqlite.rb
156
174
  - lib/arel_extensions/visitors/to_sql.rb
157
- - lib/arel_extensions/warning.rb
158
- - test/arelx_test_helper.rb
159
- - test/config_loader.rb
160
175
  - test/database.yml
176
+ - test/helper.rb
161
177
  - test/real_db_test.rb
162
178
  - test/support/alter_system_user_password.sql
163
179
  - test/support/create_oracle_enhanced_users.sql
@@ -174,13 +190,11 @@ files:
174
190
  - test/with_ar/test_math_sqlite.rb
175
191
  - test/with_ar/test_string_mysql.rb
176
192
  - test/with_ar/test_string_sqlite.rb
177
- - version_v1.rb
178
- - version_v2.rb
179
193
  homepage: https://github.com/Faveod/arel-extensions
180
194
  licenses:
181
195
  - MIT
182
196
  metadata: {}
183
- post_install_message:
197
+ post_install_message:
184
198
  rdoc_options:
185
199
  - "--main"
186
200
  - README.md
@@ -193,12 +207,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
193
207
  version: '0'
194
208
  required_rubygems_version: !ruby/object:Gem::Requirement
195
209
  requirements:
196
- - - ">="
210
+ - - ">"
197
211
  - !ruby/object:Gem::Version
198
- version: '0'
212
+ version: 1.3.1
199
213
  requirements: []
200
- rubygems_version: 3.4.19
201
- signing_key:
214
+ rubygems_version: 3.0.2
215
+ signing_key:
202
216
  specification_version: 4
203
217
  summary: Extending Arel
204
218
  test_files: []
@@ -1,30 +0,0 @@
1
- name: rubygems.org
2
- on:
3
- release:
4
- types: [published]
5
- workflow_dispatch:
6
-
7
- jobs:
8
- publish_gems:
9
- name: Publish to Rubygems
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v3
13
- - name: setup ruby 3.2
14
- uses: ruby/setup-ruby@v1
15
- with:
16
- ruby-version: 3.2
17
- - name: Fetch Github Release Asset
18
- uses: dsaltares/fetch-gh-release-asset@master
19
- with:
20
- file: "arel_extensions.*.gem"
21
- regex: true
22
- token: ${{ secrets.GITHUB_TOKEN }}
23
- - name: List gems
24
- run: ls -l *.gem
25
- - name: Release Gems
26
- uses: cadwallion/publish-rubygems-action@master
27
- env:
28
- GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
29
- RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
30
- RELEASE_COMMAND: bin/publish
@@ -1,30 +0,0 @@
1
- name: Release
2
- on:
3
- workflow_run:
4
- workflows: ["Build and Test"]
5
- branches: [master]
6
- types:
7
- - completed
8
-
9
- jobs:
10
- build_gems:
11
- name: Build Gemfiles
12
- runs-on: ubuntu-latest
13
- steps:
14
- - uses: actions/checkout@v3
15
- - name: setup ruby 3.2
16
- uses: ruby/setup-ruby@v1
17
- with:
18
- ruby-version: 3.2
19
- - name: build gems
20
- run: |
21
- bin/build
22
- - name: release
23
- uses: softprops/action-gh-release@v1
24
- with:
25
- tag_name: ${{ github.ref }}-${{ steps.vars.outputs.sha_short }}
26
- draft: true
27
- files: |
28
- ./arel_extensions-*.gem
29
- env:
30
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}