arel_extensions 1.6.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 -7
  4. data/.rubocop.yml +3 -67
  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 +91 -258
  14. data/Rakefile +30 -48
  15. data/TODO +1 -0
  16. data/appveyor.yml +22 -60
  17. data/arel_extensions.gemspec +14 -13
  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 +14 -14
  23. data/gemfiles/rails5_2.gemfile +14 -16
  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 -7
  30. data/lib/arel_extensions/boolean_functions.rb +14 -53
  31. data/lib/arel_extensions/common_sql_functions.rb +17 -16
  32. data/lib/arel_extensions/comparators.rb +28 -29
  33. data/lib/arel_extensions/date_duration.rb +13 -17
  34. data/lib/arel_extensions/insert_manager.rb +15 -18
  35. data/lib/arel_extensions/math.rb +53 -55
  36. data/lib/arel_extensions/math_functions.rb +39 -46
  37. data/lib/arel_extensions/nodes/abs.rb +1 -0
  38. data/lib/arel_extensions/nodes/blank.rb +2 -1
  39. data/lib/arel_extensions/nodes/case.rb +19 -20
  40. data/lib/arel_extensions/nodes/cast.rb +8 -10
  41. data/lib/arel_extensions/nodes/ceil.rb +1 -1
  42. data/lib/arel_extensions/nodes/coalesce.rb +4 -3
  43. data/lib/arel_extensions/nodes/collate.rb +10 -9
  44. data/lib/arel_extensions/nodes/concat.rb +18 -9
  45. data/lib/arel_extensions/nodes/date_diff.rb +26 -42
  46. data/lib/arel_extensions/nodes/duration.rb +3 -0
  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 +37 -46
  52. data/lib/arel_extensions/nodes/is_null.rb +0 -0
  53. data/lib/arel_extensions/nodes/json.rb +39 -52
  54. data/lib/arel_extensions/nodes/length.rb +0 -5
  55. data/lib/arel_extensions/nodes/levenshtein_distance.rb +1 -1
  56. data/lib/arel_extensions/nodes/locate.rb +2 -1
  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 +1 -0
  62. data/lib/arel_extensions/nodes/repeat.rb +5 -3
  63. data/lib/arel_extensions/nodes/replace.rb +8 -16
  64. data/lib/arel_extensions/nodes/round.rb +6 -5
  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 -8
  68. data/lib/arel_extensions/nodes/then.rb +1 -1
  69. data/lib/arel_extensions/nodes/trim.rb +6 -4
  70. data/lib/arel_extensions/nodes/union.rb +8 -5
  71. data/lib/arel_extensions/nodes/union_all.rb +7 -4
  72. data/lib/arel_extensions/nodes/wday.rb +4 -0
  73. data/lib/arel_extensions/nodes.rb +1 -1
  74. data/lib/arel_extensions/null_functions.rb +5 -19
  75. data/lib/arel_extensions/predications.rb +44 -45
  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 +35 -91
  79. data/lib/arel_extensions/tasks.rb +6 -6
  80. data/lib/arel_extensions/version.rb +1 -1
  81. data/lib/arel_extensions/visitors/ibm_db.rb +31 -24
  82. data/lib/arel_extensions/visitors/mssql.rb +194 -440
  83. data/lib/arel_extensions/visitors/mysql.rb +212 -368
  84. data/lib/arel_extensions/visitors/oracle.rb +179 -236
  85. data/lib/arel_extensions/visitors/oracle12.rb +31 -18
  86. data/lib/arel_extensions/visitors/postgresql.rb +173 -271
  87. data/lib/arel_extensions/visitors/sqlite.rb +127 -157
  88. data/lib/arel_extensions/visitors/to_sql.rb +238 -300
  89. data/lib/arel_extensions/visitors.rb +62 -83
  90. data/lib/arel_extensions.rb +31 -235
  91. data/test/database.yml +10 -20
  92. data/test/helper.rb +18 -0
  93. data/test/real_db_test.rb +118 -121
  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 +370 -773
  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 +38 -52
  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 -18
  113. data/NEWS.md +0 -116
  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 -29
  121. data/gemfiles/rails6.gemfile +0 -34
  122. data/gemfiles/rails6_1.gemfile +0 -42
  123. data/gemfiles/rails7.gemfile +0 -42
  124. data/gemfiles/rails7_1.gemfile +0 -41
  125. data/gemfiles/rails7_2.gemfile +0 -41
  126. data/gemfiles/rails8.gemfile +0 -40
  127. data/gemfiles/rails8_1.gemfile +0 -41
  128. data/gemspecs/arel_extensions-v1.gemspec +0 -27
  129. data/gemspecs/arel_extensions-v2.gemspec +0 -27
  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 -3
  146. data/version_v2.rb +0 -3
metadata CHANGED
@@ -1,31 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel_extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.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: 2025-12-23 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
29
  - !ruby/object:Gem::Dependency
30
30
  name: minitest
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -40,20 +40,34 @@ dependencies:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
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'
43
57
  - !ruby/object:Gem::Dependency
44
58
  name: rake
45
59
  requirement: !ruby/object:Gem::Requirement
46
60
  requirements:
47
61
  - - "~>"
48
62
  - !ruby/object:Gem::Version
49
- version: 12.3.3
63
+ version: '11'
50
64
  type: :development
51
65
  prerelease: false
52
66
  version_requirements: !ruby/object:Gem::Requirement
53
67
  requirements:
54
68
  - - "~>"
55
69
  - !ruby/object:Gem::Version
56
- version: 12.3.3
70
+ version: '11'
57
71
  description: Adds new features to Arel
58
72
  email:
59
73
  - yann.azoury@faveod.com
@@ -67,69 +81,50 @@ extra_rdoc_files:
67
81
  - functions.html
68
82
  files:
69
83
  - ".codeclimate.yml"
70
- - ".github/workflows/publish.yml"
71
- - ".github/workflows/release.yml"
72
- - ".github/workflows/ruby.yml"
73
84
  - ".gitignore"
74
85
  - ".rubocop.yml"
75
- - 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"
76
93
  - Gemfile
77
94
  - MIT-LICENSE.txt
78
- - Makefile
79
- - NEWS.md
80
95
  - README.md
81
96
  - Rakefile
82
97
  - SQL_Challenges.md
83
98
  - TODO
84
99
  - appveyor.yml
85
100
  - arel_extensions.gemspec
86
- - bin/build
87
- - bin/publish
88
- - dev/arelx.dockerfile
89
- - dev/compose.yaml
90
- - dev/postgres.dockerfile
91
- - dev/rbenv
92
101
  - functions.html
93
- - gemfiles/rails5.gemfile
102
+ - gemfiles/rails3.gemfile
103
+ - gemfiles/rails4.gemfile
104
+ - gemfiles/rails5_0.gemfile
94
105
  - gemfiles/rails5_1_4.gemfile
95
106
  - gemfiles/rails5_2.gemfile
96
- - gemfiles/rails6.gemfile
97
- - gemfiles/rails6_1.gemfile
98
- - gemfiles/rails7.gemfile
99
- - gemfiles/rails7_1.gemfile
100
- - gemfiles/rails7_2.gemfile
101
- - gemfiles/rails8.gemfile
102
- - gemfiles/rails8_1.gemfile
103
- - gemspecs/arel_extensions-v1.gemspec
104
- - gemspecs/arel_extensions-v2.gemspec
105
- - generate_gems.sh
106
107
  - init/mssql.sql
107
108
  - init/mysql.sql
108
109
  - init/oracle.sql
109
110
  - init/postgresql.sql
110
111
  - init/sqlite.sql
111
112
  - lib/arel_extensions.rb
112
- - lib/arel_extensions/aliases.rb
113
113
  - lib/arel_extensions/attributes.rb
114
114
  - lib/arel_extensions/boolean_functions.rb
115
115
  - lib/arel_extensions/common_sql_functions.rb
116
116
  - lib/arel_extensions/comparators.rb
117
- - lib/arel_extensions/constants.rb
118
117
  - lib/arel_extensions/date_duration.rb
119
- - lib/arel_extensions/helpers.rb
120
118
  - lib/arel_extensions/insert_manager.rb
121
119
  - lib/arel_extensions/math.rb
122
120
  - lib/arel_extensions/math_functions.rb
123
121
  - lib/arel_extensions/nodes.rb
124
122
  - lib/arel_extensions/nodes/abs.rb
125
- - lib/arel_extensions/nodes/aggregate_function.rb
126
123
  - lib/arel_extensions/nodes/blank.rb
127
- - lib/arel_extensions/nodes/byte_size.rb
128
124
  - lib/arel_extensions/nodes/case.rb
129
125
  - lib/arel_extensions/nodes/cast.rb
130
126
  - lib/arel_extensions/nodes/ceil.rb
131
127
  - lib/arel_extensions/nodes/change_case.rb
132
- - lib/arel_extensions/nodes/char_length.rb
133
128
  - lib/arel_extensions/nodes/coalesce.rb
134
129
  - lib/arel_extensions/nodes/collate.rb
135
130
  - lib/arel_extensions/nodes/concat.rb
@@ -138,7 +133,6 @@ files:
138
133
  - lib/arel_extensions/nodes/find_in_set.rb
139
134
  - lib/arel_extensions/nodes/floor.rb
140
135
  - lib/arel_extensions/nodes/format.rb
141
- - lib/arel_extensions/nodes/formatted_date.rb
142
136
  - lib/arel_extensions/nodes/formatted_number.rb
143
137
  - lib/arel_extensions/nodes/function.rb
144
138
  - lib/arel_extensions/nodes/is_null.rb
@@ -153,13 +147,10 @@ files:
153
147
  - lib/arel_extensions/nodes/rand.rb
154
148
  - lib/arel_extensions/nodes/repeat.rb
155
149
  - lib/arel_extensions/nodes/replace.rb
156
- - lib/arel_extensions/nodes/rollup.rb
157
150
  - lib/arel_extensions/nodes/round.rb
158
- - lib/arel_extensions/nodes/select.rb
159
151
  - lib/arel_extensions/nodes/soundex.rb
160
152
  - lib/arel_extensions/nodes/std.rb
161
153
  - lib/arel_extensions/nodes/substring.rb
162
- - lib/arel_extensions/nodes/sum.rb
163
154
  - lib/arel_extensions/nodes/then.rb
164
155
  - lib/arel_extensions/nodes/trim.rb
165
156
  - lib/arel_extensions/nodes/union.rb
@@ -173,7 +164,6 @@ files:
173
164
  - lib/arel_extensions/tasks.rb
174
165
  - lib/arel_extensions/version.rb
175
166
  - lib/arel_extensions/visitors.rb
176
- - lib/arel_extensions/visitors/convert_format.rb
177
167
  - lib/arel_extensions/visitors/ibm_db.rb
178
168
  - lib/arel_extensions/visitors/mssql.rb
179
169
  - lib/arel_extensions/visitors/mysql.rb
@@ -182,10 +172,8 @@ files:
182
172
  - lib/arel_extensions/visitors/postgresql.rb
183
173
  - lib/arel_extensions/visitors/sqlite.rb
184
174
  - lib/arel_extensions/visitors/to_sql.rb
185
- - lib/arel_extensions/warning.rb
186
- - test/arelx_test_helper.rb
187
- - test/config_loader.rb
188
175
  - test/database.yml
176
+ - test/helper.rb
189
177
  - test/real_db_test.rb
190
178
  - test/support/alter_system_user_password.sql
191
179
  - test/support/create_oracle_enhanced_users.sql
@@ -202,13 +190,11 @@ files:
202
190
  - test/with_ar/test_math_sqlite.rb
203
191
  - test/with_ar/test_string_mysql.rb
204
192
  - test/with_ar/test_string_sqlite.rb
205
- - version_v1.rb
206
- - version_v2.rb
207
193
  homepage: https://github.com/Faveod/arel-extensions
208
194
  licenses:
209
195
  - MIT
210
196
  metadata: {}
211
- post_install_message:
197
+ post_install_message:
212
198
  rdoc_options:
213
199
  - "--main"
214
200
  - README.md
@@ -221,12 +207,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
221
207
  version: '0'
222
208
  required_rubygems_version: !ruby/object:Gem::Requirement
223
209
  requirements:
224
- - - ">="
210
+ - - ">"
225
211
  - !ruby/object:Gem::Version
226
- version: '0'
212
+ version: 1.3.1
227
213
  requirements: []
228
- rubygems_version: 3.4.19
229
- signing_key:
214
+ rubygems_version: 3.0.2
215
+ signing_key:
230
216
  specification_version: 4
231
217
  summary: Extending Arel
232
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 }}