arel_toolkit 0.2.0 → 0.4.3
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 +4 -4
- data/.codeclimate.yml +3 -0
- data/.github/workflows/develop.yml +90 -0
- data/.github/workflows/master.yml +67 -0
- data/.gitignore +8 -0
- data/.rubocop.yml +13 -2
- data/Appraisals +13 -0
- data/CHANGELOG.md +132 -6
- data/Gemfile +5 -0
- data/Gemfile.lock +92 -12
- data/Guardfile +23 -12
- data/README.md +104 -6
- data/Rakefile +18 -0
- data/arel_toolkit.gemspec +19 -4
- data/benchmark.rb +54 -0
- data/bin/console +1 -0
- data/ext/pg_result_init/extconf.rb +52 -0
- data/ext/pg_result_init/pg_result_init.c +138 -0
- data/ext/pg_result_init/pg_result_init.h +6 -0
- data/gemfiles/active_record_6.gemfile +7 -0
- data/gemfiles/active_record_6.gemfile.lock +210 -0
- data/gemfiles/arel_gems.gemfile +10 -0
- data/gemfiles/arel_gems.gemfile.lock +284 -0
- data/gemfiles/default.gemfile +5 -0
- data/gemfiles/default.gemfile.lock +208 -0
- data/lib/arel/enhance.rb +17 -0
- data/lib/arel/enhance/context_enhancer/arel_table.rb +92 -0
- data/lib/arel/enhance/node.rb +232 -0
- data/lib/arel/enhance/path.rb +38 -0
- data/lib/arel/enhance/path_node.rb +26 -0
- data/lib/arel/enhance/query.rb +38 -0
- data/lib/arel/enhance/query_methods.rb +23 -0
- data/lib/arel/enhance/visitor.rb +97 -0
- data/lib/arel/extensions.rb +55 -3
- data/lib/arel/extensions/active_model_attribute_with_cast_value.rb +22 -0
- data/lib/arel/extensions/active_record_relation_query_attribute.rb +22 -0
- data/lib/arel/extensions/active_record_type_caster_connection.rb +7 -0
- data/lib/arel/extensions/active_record_type_caster_map.rb +7 -0
- data/lib/arel/extensions/array.rb +2 -9
- data/lib/arel/extensions/assignment.rb +22 -0
- data/lib/arel/extensions/at_time_zone.rb +37 -0
- data/lib/arel/extensions/attributes_attribute.rb +47 -0
- data/lib/arel/extensions/binary.rb +7 -0
- data/lib/arel/extensions/bind_param.rb +15 -0
- data/lib/arel/extensions/bit_string.rb +2 -9
- data/lib/arel/extensions/case.rb +17 -0
- data/lib/arel/extensions/coalesce.rb +17 -3
- data/lib/arel/extensions/conflict.rb +9 -0
- data/lib/arel/extensions/contained_within_equals.rb +10 -0
- data/lib/arel/extensions/contains.rb +27 -5
- data/lib/arel/extensions/contains_equals.rb +10 -0
- data/lib/arel/extensions/current_catalog.rb +4 -0
- data/lib/arel/extensions/current_date.rb +4 -0
- data/lib/arel/extensions/current_of_expression.rb +2 -9
- data/lib/arel/extensions/current_role.rb +4 -0
- data/lib/arel/extensions/current_row.rb +7 -0
- data/lib/arel/extensions/current_schema.rb +4 -0
- data/lib/arel/extensions/current_user.rb +4 -0
- data/lib/arel/extensions/dealocate.rb +31 -0
- data/lib/arel/extensions/default_values.rb +4 -0
- data/lib/arel/extensions/delete_manager.rb +25 -0
- data/lib/arel/extensions/delete_statement.rb +32 -8
- data/lib/arel/extensions/distinct_from.rb +3 -16
- data/lib/arel/extensions/dot.rb +11 -0
- data/lib/arel/extensions/equality.rb +2 -4
- data/lib/arel/extensions/exists.rb +59 -0
- data/lib/arel/extensions/extract_from.rb +25 -0
- data/lib/arel/extensions/factorial.rb +10 -2
- data/lib/arel/extensions/false.rb +7 -0
- data/lib/arel/extensions/function.rb +44 -14
- data/lib/arel/extensions/greatest.rb +17 -3
- data/lib/arel/extensions/indirection.rb +3 -12
- data/lib/arel/extensions/infer.rb +7 -7
- data/lib/arel/extensions/infix_operation.rb +17 -0
- data/lib/arel/extensions/insert_manager.rb +21 -0
- data/lib/arel/extensions/insert_statement.rb +35 -9
- data/lib/arel/extensions/into.rb +21 -0
- data/lib/arel/extensions/json_get_field.rb +10 -0
- data/lib/arel/extensions/json_get_object.rb +10 -0
- data/lib/arel/extensions/json_path_get_field.rb +10 -0
- data/lib/arel/extensions/json_path_get_object.rb +10 -0
- data/lib/arel/extensions/jsonb_all_key_exists.rb +10 -0
- data/lib/arel/extensions/jsonb_any_key_exists.rb +10 -0
- data/lib/arel/extensions/jsonb_key_exists.rb +10 -0
- data/lib/arel/extensions/least.rb +17 -3
- data/lib/arel/extensions/named_argument.rb +24 -0
- data/lib/arel/extensions/named_function.rb +7 -0
- data/lib/arel/extensions/node.rb +10 -0
- data/lib/arel/extensions/not_distinct_from.rb +3 -16
- data/lib/arel/extensions/not_equal.rb +2 -4
- data/lib/arel/extensions/ordering.rb +21 -6
- data/lib/arel/extensions/overlap.rb +1 -1
- data/lib/arel/extensions/overlaps.rb +49 -0
- data/lib/arel/extensions/overlay.rb +53 -0
- data/lib/arel/extensions/position.rb +27 -0
- data/lib/arel/extensions/prepare.rb +39 -0
- data/lib/arel/extensions/range_function.rb +10 -2
- data/lib/arel/extensions/row.rb +3 -8
- data/lib/arel/extensions/select_core.rb +73 -0
- data/lib/arel/extensions/select_manager.rb +25 -0
- data/lib/arel/extensions/select_statement.rb +31 -9
- data/lib/arel/extensions/session_user.rb +4 -0
- data/lib/arel/extensions/set_to_default.rb +4 -0
- data/lib/arel/extensions/substring.rb +46 -0
- data/lib/arel/extensions/table.rb +43 -10
- data/lib/arel/extensions/time_with_precision.rb +6 -0
- data/lib/arel/extensions/to_sql.rb +27 -0
- data/lib/arel/extensions/top.rb +8 -0
- data/lib/arel/extensions/transaction.rb +45 -0
- data/lib/arel/extensions/tree_manager.rb +15 -0
- data/lib/arel/extensions/trim.rb +44 -0
- data/lib/arel/extensions/true.rb +7 -0
- data/lib/arel/extensions/type_cast.rb +11 -0
- data/lib/arel/extensions/unary.rb +7 -0
- data/lib/arel/extensions/unary_operation.rb +16 -0
- data/lib/arel/extensions/unknown.rb +4 -0
- data/lib/arel/extensions/update_manager.rb +25 -0
- data/lib/arel/extensions/update_statement.rb +31 -6
- data/lib/arel/extensions/user.rb +4 -0
- data/lib/arel/extensions/values_list.rb +15 -0
- data/lib/arel/extensions/variable_set.rb +55 -0
- data/lib/arel/extensions/variable_show.rb +26 -0
- data/lib/arel/middleware.rb +27 -0
- data/lib/arel/middleware/active_record_extension.rb +13 -0
- data/lib/arel/middleware/cache_accessor.rb +35 -0
- data/lib/arel/middleware/chain.rb +172 -0
- data/lib/arel/middleware/database_executor.rb +77 -0
- data/lib/arel/middleware/no_op_cache.rb +9 -0
- data/lib/arel/middleware/postgresql_adapter.rb +62 -0
- data/lib/arel/middleware/railtie.rb +25 -0
- data/lib/arel/middleware/result.rb +170 -0
- data/lib/arel/middleware/to_sql_executor.rb +15 -0
- data/lib/arel/middleware/to_sql_middleware.rb +33 -0
- data/lib/arel/sql_to_arel.rb +8 -4
- data/lib/arel/sql_to_arel/error.rb +6 -0
- data/lib/arel/sql_to_arel/pg_query_visitor.rb +324 -76
- data/lib/arel/sql_to_arel/pg_query_visitor/frame_options.rb +112 -0
- data/lib/arel/sql_to_arel/result.rb +30 -0
- data/lib/arel/transformer.rb +8 -0
- data/lib/arel/transformer/prefix_schema_name.rb +183 -0
- data/lib/arel/transformer/remove_active_record_info.rb +40 -0
- data/lib/arel/transformer/replace_table_with_subquery.rb +31 -0
- data/lib/arel_toolkit.rb +16 -1
- data/lib/arel_toolkit/version.rb +1 -1
- metadata +278 -25
- data/.travis.yml +0 -21
- data/lib/arel/extensions/generate_series.rb +0 -9
- data/lib/arel/extensions/rank.rb +0 -9
- data/lib/arel/sql_to_arel/frame_options.rb +0 -110
- data/lib/arel/sql_to_arel/unbound_column_reference.rb +0 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 28d6dfc92b5aebf97e6a22fa4ded2583f5d2184b1f0a8afc7ea4bc1951805b6d
|
|
4
|
+
data.tar.gz: 9c72d8926233ec968b2c864886a422848bb0fd85c7e2828e86db0b9cee21144a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7aaab2a35e519f4c85ce56135efa0374b8806318791913c351b797972827e0c10a5e4b9d17f6d21d8abed7508db17170a199ec4186dc16a9036a4e460a767ca0
|
|
7
|
+
data.tar.gz: 127121759494230ea9d82b7499812f942c44026f4ff7d22dc08b45d0b5a60ce1505b11bc4c6136391005aef17ef2932565e6266c189fd521c0869dac455bdf47
|
data/.codeclimate.yml
CHANGED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: CI - develop
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches-ignore:
|
|
5
|
+
- master
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
rspec:
|
|
9
|
+
name: RSpec - ${{ matrix.title }}
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
checkout: [branch, master]
|
|
15
|
+
include:
|
|
16
|
+
- checkout: branch
|
|
17
|
+
ref: null
|
|
18
|
+
title: current branch
|
|
19
|
+
rebase: false
|
|
20
|
+
codeclimate: true
|
|
21
|
+
- checkout: master
|
|
22
|
+
ref: master
|
|
23
|
+
title: merge with master
|
|
24
|
+
rebase: true
|
|
25
|
+
codeclimate: false
|
|
26
|
+
|
|
27
|
+
services:
|
|
28
|
+
postgres:
|
|
29
|
+
options: >-
|
|
30
|
+
--health-cmd pg_isready
|
|
31
|
+
--health-interval 10s
|
|
32
|
+
--health-timeout 5s
|
|
33
|
+
--health-retries 5
|
|
34
|
+
image: postgres:10.10
|
|
35
|
+
ports:
|
|
36
|
+
- 5432:5432
|
|
37
|
+
env:
|
|
38
|
+
POSTGRES_DB: arel_toolkit_test
|
|
39
|
+
POSTGRES_USER: postgres
|
|
40
|
+
steps:
|
|
41
|
+
- uses: actions/checkout@v1
|
|
42
|
+
with:
|
|
43
|
+
ref: ${{ matrix.ref }}
|
|
44
|
+
|
|
45
|
+
# Based on
|
|
46
|
+
# https://discourse.drone.io/t/planned-change-to-git-clone-logic/1165
|
|
47
|
+
- name: Rebase
|
|
48
|
+
if: matrix.rebase
|
|
49
|
+
run: |
|
|
50
|
+
export GIT_AUTHOR_NAME=${CI_COMMIT_AUTHOR_NAME=GithubCI}
|
|
51
|
+
export GIT_AUTHOR_EMAIL=${CI_COMMIT_AUTHOR_EMAIL=ci@github.comm}
|
|
52
|
+
export GIT_COMMITTER_NAME=${GIT_AUTHOR_NAME}
|
|
53
|
+
export GIT_COMMITTER_EMAIL=${GIT_AUTHOR_EMAIL}
|
|
54
|
+
git fetch origin $GITHUB_REF
|
|
55
|
+
git rebase $GITHUB_SHA
|
|
56
|
+
|
|
57
|
+
- name: Set up Ruby 2.5.x
|
|
58
|
+
uses: actions/setup-ruby@v1
|
|
59
|
+
with:
|
|
60
|
+
ruby-version: 2.5.x
|
|
61
|
+
|
|
62
|
+
- name: Setup
|
|
63
|
+
run: |
|
|
64
|
+
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
|
65
|
+
chmod +x ./cc-test-reporter
|
|
66
|
+
./cc-test-reporter before-build
|
|
67
|
+
|
|
68
|
+
sudo apt-get install -y libpq-dev
|
|
69
|
+
|
|
70
|
+
gem install bundler
|
|
71
|
+
|
|
72
|
+
bundle install --jobs 4 --retry 3
|
|
73
|
+
bundle exec appraisal install
|
|
74
|
+
|
|
75
|
+
bundle exec rake clean
|
|
76
|
+
bundle exec rake compile
|
|
77
|
+
|
|
78
|
+
- name: RSpec
|
|
79
|
+
run: |
|
|
80
|
+
bundle exec appraisal rspec --force-color
|
|
81
|
+
|
|
82
|
+
- name: Report to codeclimate
|
|
83
|
+
if: always() && matrix.codeclimate
|
|
84
|
+
shell: bash
|
|
85
|
+
env:
|
|
86
|
+
JOB_STATUS: ${{ job.status == 'Success' }}
|
|
87
|
+
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
|
88
|
+
run: |
|
|
89
|
+
EXIT_CODE=$([[ "$JOB_STATUS" == true ]] && echo 0 || echo 1)
|
|
90
|
+
./cc-test-reporter after-build --exit-code $EXIT_CODE
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
name: CI - master
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- master
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
rspec:
|
|
9
|
+
name: RSpec - master
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
services:
|
|
13
|
+
postgres:
|
|
14
|
+
options: >-
|
|
15
|
+
--health-cmd pg_isready
|
|
16
|
+
--health-interval 10s
|
|
17
|
+
--health-timeout 5s
|
|
18
|
+
--health-retries 5
|
|
19
|
+
image: postgres:10.10
|
|
20
|
+
ports:
|
|
21
|
+
- 5432:5432
|
|
22
|
+
env:
|
|
23
|
+
POSTGRES_DB: arel_toolkit_test
|
|
24
|
+
POSTGRES_USER: postgres
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v1
|
|
27
|
+
|
|
28
|
+
- name: Set up Ruby 2.5.x
|
|
29
|
+
uses: actions/setup-ruby@v1
|
|
30
|
+
with:
|
|
31
|
+
ruby-version: 2.5.x
|
|
32
|
+
|
|
33
|
+
- name: Setup
|
|
34
|
+
run: |
|
|
35
|
+
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
|
36
|
+
chmod +x ./cc-test-reporter
|
|
37
|
+
./cc-test-reporter before-build
|
|
38
|
+
|
|
39
|
+
sudo apt-get install -y libpq-dev
|
|
40
|
+
|
|
41
|
+
gem install bundler
|
|
42
|
+
|
|
43
|
+
bundle install --jobs 4 --retry 3
|
|
44
|
+
bundle exec appraisal install
|
|
45
|
+
|
|
46
|
+
bundle exec rake clean
|
|
47
|
+
bundle exec rake compile
|
|
48
|
+
|
|
49
|
+
- name: RSpec
|
|
50
|
+
run: |
|
|
51
|
+
bundle exec appraisal rspec --force-color
|
|
52
|
+
|
|
53
|
+
- name: Report to codeclimate
|
|
54
|
+
if: always()
|
|
55
|
+
shell: bash
|
|
56
|
+
env:
|
|
57
|
+
JOB_STATUS: ${{ job.status == 'Success' }}
|
|
58
|
+
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
|
59
|
+
run: |
|
|
60
|
+
EXIT_CODE=$([[ "$JOB_STATUS" == true ]] && echo 0 || echo 1)
|
|
61
|
+
./cc-test-reporter after-build --exit-code $EXIT_CODE
|
|
62
|
+
|
|
63
|
+
- name: Upload coverage to GitHub pages
|
|
64
|
+
uses: maxheld83/ghpages@v0.2.1
|
|
65
|
+
env:
|
|
66
|
+
BUILD_DIR: ./coverage
|
|
67
|
+
GH_PAT: ${{ secrets.GH_PAT }}
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
AllCops:
|
|
2
|
+
Exclude:
|
|
3
|
+
- 'gemfiles/arel_gems.gemfile'
|
|
4
|
+
- 'gemfiles/default.gemfile'
|
|
3
5
|
|
|
4
6
|
Bundler/OrderedGems:
|
|
5
7
|
Enabled: false
|
|
@@ -23,12 +25,21 @@ Metrics/BlockLength:
|
|
|
23
25
|
Style/Documentation:
|
|
24
26
|
Enabled: false
|
|
25
27
|
|
|
28
|
+
Style/MultilineBlockChain:
|
|
29
|
+
Enabled: false
|
|
30
|
+
|
|
31
|
+
Style/TrailingCommaInHashLiteral:
|
|
32
|
+
EnforcedStyleForMultiline: comma
|
|
33
|
+
|
|
26
34
|
Style/TrailingCommaInArrayLiteral:
|
|
27
35
|
EnforcedStyleForMultiline: comma
|
|
28
36
|
|
|
29
37
|
Style/TrailingCommaInArguments:
|
|
30
38
|
EnforcedStyleForMultiline: comma
|
|
31
39
|
|
|
40
|
+
Style/FrozenStringLiteralComment:
|
|
41
|
+
Enabled: false
|
|
42
|
+
|
|
32
43
|
Layout/MultilineMethodCallIndentation:
|
|
33
44
|
Enabled: true
|
|
34
45
|
EnforcedStyle: indented
|
data/Appraisals
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
appraise 'arel_gems' do
|
|
2
|
+
gem 'postgres_ext', github: 'Hacker0x01/postgres_ext', branch: 'rails-5.2'
|
|
3
|
+
gem 'active_record_upsert', github: 'Hacker0x01/active_record_upsert', branch: 'master'
|
|
4
|
+
gem 'pg_search', github: 'Hacker0x01/pg_search', branch: 'update-ranking'
|
|
5
|
+
gem 'rspec-rails', '~> 3.8.0'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
appraise 'default' do
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
appraise 'active_record_6' do
|
|
12
|
+
gem 'activerecord', '~> 6.0.0'
|
|
13
|
+
end
|
data/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,136 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## [v0.4.3](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.3) (2020-11-09)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.4.2...v0.4.3)
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
7
|
+
**Implemented enhancements:**
|
|
8
|
+
|
|
9
|
+
- Upgrade active\_record to 6 [\#167](https://github.com/mvgijssel/arel_toolkit/pull/167) ([khaleksa](https://github.com/khaleksa))
|
|
10
|
+
- Bump json from 2.2.0 to 2.3.1 [\#166](https://github.com/mvgijssel/arel_toolkit/pull/166) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
11
|
+
- Bump activesupport from 5.2.3 to 5.2.4.3 [\#165](https://github.com/mvgijssel/arel_toolkit/pull/165) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
12
|
+
- Update rake requirement from ~\> 10.0 to ~\> 13.0 [\#161](https://github.com/mvgijssel/arel_toolkit/pull/161) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
13
|
+
- Bump nokogiri from 1.10.4 to 1.10.8 [\#160](https://github.com/mvgijssel/arel_toolkit/pull/160) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
14
|
+
- Adds cache mechanism to middleware [\#154](https://github.com/mvgijssel/arel_toolkit/pull/154) ([Willianvdv](https://github.com/Willianvdv))
|
|
15
|
+
|
|
16
|
+
## [v0.4.2](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.2) (2020-01-08)
|
|
17
|
+
|
|
18
|
+
[Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.4.1...v0.4.2)
|
|
19
|
+
|
|
20
|
+
**Breaking changes:**
|
|
21
|
+
|
|
22
|
+
- Remove path, inline visit and improve recursion for improved performance [\#152](https://github.com/mvgijssel/arel_toolkit/pull/152) ([Willianvdv](https://github.com/Willianvdv))
|
|
23
|
+
|
|
24
|
+
**Implemented enhancements:**
|
|
25
|
+
|
|
26
|
+
- Validate whether setting a session variable transformation does the right thing [\#155](https://github.com/mvgijssel/arel_toolkit/issues/155)
|
|
27
|
+
- Add ability to mutate nodes with precomputed Arel::Nodes::Enhance [\#158](https://github.com/mvgijssel/arel_toolkit/pull/158) ([mvgijssel](https://github.com/mvgijssel))
|
|
28
|
+
|
|
29
|
+
## [v0.4.1](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.1) (2019-11-13)
|
|
30
|
+
|
|
31
|
+
[Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.4.0...v0.4.1)
|
|
32
|
+
|
|
33
|
+
**Implemented enhancements:**
|
|
34
|
+
|
|
35
|
+
- Create a transformer that replaces a table reference with a subquery [\#141](https://github.com/mvgijssel/arel_toolkit/issues/141)
|
|
36
|
+
- Same signature for all middleware helpers [\#135](https://github.com/mvgijssel/arel_toolkit/issues/135)
|
|
37
|
+
- Instantiate PG::Result object instead of duck typed object [\#130](https://github.com/mvgijssel/arel_toolkit/issues/130)
|
|
38
|
+
- Add `to\_sql` to Arel.middleware which prints the sql after middleware processing [\#127](https://github.com/mvgijssel/arel_toolkit/issues/127)
|
|
39
|
+
- Extend Middleware to include the response from the database [\#126](https://github.com/mvgijssel/arel_toolkit/issues/126)
|
|
40
|
+
- Extend AddSchemaToTable to support multiple schemas and regclass typecasts [\#124](https://github.com/mvgijssel/arel_toolkit/issues/124)
|
|
41
|
+
- Optional context argument for Arel middleware [\#110](https://github.com/mvgijssel/arel_toolkit/issues/110)
|
|
42
|
+
- Handle is\_rowsfrom in pg\_query\_visitor\#visit\_RangeFunction [\#36](https://github.com/mvgijssel/arel_toolkit/issues/36)
|
|
43
|
+
- Bump nokogiri from 1.10.3 to 1.10.4 [\#132](https://github.com/mvgijssel/arel_toolkit/pull/132) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
44
|
+
|
|
45
|
+
**Fixed bugs:**
|
|
46
|
+
|
|
47
|
+
- Bundle install fails with missing arel\_toolkit/pg\_result\_init [\#148](https://github.com/mvgijssel/arel_toolkit/issues/148)
|
|
48
|
+
- Handle column reference with 3 \(or more\) fields [\#145](https://github.com/mvgijssel/arel_toolkit/issues/145)
|
|
49
|
+
- Error when aliasing a range select [\#144](https://github.com/mvgijssel/arel_toolkit/issues/144)
|
|
50
|
+
- Make sure the method signatures of PostgreSQLAdapter match [\#122](https://github.com/mvgijssel/arel_toolkit/issues/122)
|
|
51
|
+
- Fix missing middleware method and fix \(again\) infinite middleware recursion [\#120](https://github.com/mvgijssel/arel_toolkit/issues/120)
|
|
52
|
+
- Use named window with OVER. [\#149](https://github.com/mvgijssel/arel_toolkit/pull/149) ([khaleksa](https://github.com/khaleksa))
|
|
53
|
+
|
|
54
|
+
## [v0.4.0](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.0) (2019-07-31)
|
|
55
|
+
|
|
56
|
+
[Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.3.0...v0.4.0)
|
|
57
|
+
|
|
58
|
+
**Implemented enhancements:**
|
|
59
|
+
|
|
60
|
+
- Replace Arel::Nodes::UnboundColumnReference with Arel::Nodes::UnqualifiedColumn [\#91](https://github.com/mvgijssel/arel_toolkit/issues/91)
|
|
61
|
+
- Add brakeman to check for security vulnerabilities [\#10](https://github.com/mvgijssel/arel_toolkit/issues/10)
|
|
62
|
+
- Rename Arel.transformer to Arel.enhance [\#111](https://github.com/mvgijssel/arel_toolkit/issues/111)
|
|
63
|
+
- Ability to query an Arel transformer tree [\#103](https://github.com/mvgijssel/arel_toolkit/issues/103)
|
|
64
|
+
- Implement PREPARE and DEALLOCATE statement [\#101](https://github.com/mvgijssel/arel_toolkit/issues/101)
|
|
65
|
+
- Create Arel transformer class to safely and easily mutate an Arel AST [\#89](https://github.com/mvgijssel/arel_toolkit/issues/89)
|
|
66
|
+
- Test and verify compatibility with Arel extension gems [\#81](https://github.com/mvgijssel/arel_toolkit/issues/81)
|
|
67
|
+
- Automatically load Railtie when gem is included in Rails [\#66](https://github.com/mvgijssel/arel_toolkit/issues/66)
|
|
68
|
+
- Create remove ActiveRecord specifics transformer [\#63](https://github.com/mvgijssel/arel_toolkit/issues/63)
|
|
69
|
+
|
|
70
|
+
**Fixed bugs:**
|
|
71
|
+
|
|
72
|
+
- TypeError: superclass mismatch for class Overlap [\#93](https://github.com/mvgijssel/arel_toolkit/issues/93)
|
|
73
|
+
|
|
74
|
+
## [v0.3.0](https://github.com/mvgijssel/arel_toolkit/tree/v0.3.0) (2019-07-01)
|
|
75
|
+
|
|
76
|
+
[Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.2.0...v0.3.0)
|
|
77
|
+
|
|
78
|
+
**Implemented enhancements:**
|
|
79
|
+
|
|
80
|
+
- Implement Functions and Operators from PostgreSQL docs [\#84](https://github.com/mvgijssel/arel_toolkit/issues/84)
|
|
81
|
+
- Implement more missing operators and visitors [\#82](https://github.com/mvgijssel/arel_toolkit/issues/82)
|
|
82
|
+
- Improve error message when unable to parse sql to arel [\#71](https://github.com/mvgijssel/arel_toolkit/issues/71)
|
|
83
|
+
- Publish coverage information to GitHub pages [\#64](https://github.com/mvgijssel/arel_toolkit/issues/64)
|
|
84
|
+
- Add ActiveRecord comparison testing [\#61](https://github.com/mvgijssel/arel_toolkit/issues/61)
|
|
85
|
+
- Make Arel::TreeManager equal to other trees [\#59](https://github.com/mvgijssel/arel_toolkit/issues/59)
|
|
86
|
+
- Add support for Arel.middleware [\#52](https://github.com/mvgijssel/arel_toolkit/issues/52)
|
|
87
|
+
- Handle multiple tree entries in pg\_query\_visitor\#accept [\#33](https://github.com/mvgijssel/arel_toolkit/issues/33)
|
|
88
|
+
|
|
89
|
+
**Fixed bugs:**
|
|
90
|
+
|
|
91
|
+
- Fix invalid generated SQL, add missing visitors and extend operators [\#79](https://github.com/mvgijssel/arel_toolkit/issues/79)
|
|
92
|
+
- Fix handling of equality with Arel::Nodes::Quoted [\#77](https://github.com/mvgijssel/arel_toolkit/issues/77)
|
|
93
|
+
- Fix default values for Delete- and UpdateStatement [\#75](https://github.com/mvgijssel/arel_toolkit/issues/75)
|
|
94
|
+
- Unknown operator `` for IN statement [\#73](https://github.com/mvgijssel/arel_toolkit/issues/73)
|
|
95
|
+
- NameError: undefined local variable or method `number' for \#\<Arel::SqlToArel::PgQueryVisitor:0x000055dfdd14c6f8\> [\#69](https://github.com/mvgijssel/arel_toolkit/issues/69)
|
|
96
|
+
- Make compatible with postgres\_ext [\#67](https://github.com/mvgijssel/arel_toolkit/issues/67)
|
|
97
|
+
|
|
98
|
+
**Closed issues:**
|
|
99
|
+
|
|
100
|
+
- File issues for commented out rspec test [\#51](https://github.com/mvgijssel/arel_toolkit/issues/51)
|
|
101
|
+
|
|
102
|
+
## [v0.2.0](https://github.com/mvgijssel/arel_toolkit/tree/v0.2.0) (2019-05-30)
|
|
103
|
+
|
|
104
|
+
[Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.1.0...v0.2.0)
|
|
105
|
+
|
|
106
|
+
**Implemented enhancements:**
|
|
107
|
+
|
|
108
|
+
- Handle op in pg\_query\_visitor\#visit\_SelectStmt [\#38](https://github.com/mvgijssel/arel_toolkit/issues/38)
|
|
109
|
+
- Introduce Guard [\#5](https://github.com/mvgijssel/arel_toolkit/issues/5)
|
|
110
|
+
- Add WITH, OVERRIDING and RETURNING to INSERT [\#28](https://github.com/mvgijssel/arel_toolkit/issues/28)
|
|
111
|
+
- Return \(Select|Update|Insert|Delete\)Manager instead of \(Select|Update|Insert|Delete\)Statement [\#25](https://github.com/mvgijssel/arel_toolkit/issues/25)
|
|
112
|
+
- Implement UNION in sql\_to\_arel [\#24](https://github.com/mvgijssel/arel_toolkit/issues/24)
|
|
113
|
+
- Extract Arel extensions to their own files [\#23](https://github.com/mvgijssel/arel_toolkit/issues/23)
|
|
114
|
+
- Implement pg\_query\_visitor method for DELETE [\#22](https://github.com/mvgijssel/arel_toolkit/issues/22)
|
|
115
|
+
- Implement pg\_query\_visitor method for INSERT [\#21](https://github.com/mvgijssel/arel_toolkit/issues/21)
|
|
116
|
+
- Implement pg\_query\_visitor method for UPDATE [\#20](https://github.com/mvgijssel/arel_toolkit/issues/20)
|
|
117
|
+
- Implement all the visitor methods in PgQueryVisitor for SELECT statements [\#11](https://github.com/mvgijssel/arel_toolkit/issues/11)
|
|
118
|
+
- 22/implement delete [\#30](https://github.com/mvgijssel/arel_toolkit/pull/30) ([mvgijssel](https://github.com/mvgijssel))
|
|
119
|
+
- Added WITH, OVERRIDING and RETURINING to INSERT [\#29](https://github.com/mvgijssel/arel_toolkit/pull/29) ([mvgijssel](https://github.com/mvgijssel))
|
|
120
|
+
- Added badges to README \(and fix setup\) [\#3](https://github.com/mvgijssel/arel_toolkit/pull/3) ([mvgijssel](https://github.com/mvgijssel))
|
|
121
|
+
- Configure codeclimate [\#2](https://github.com/mvgijssel/arel_toolkit/pull/2) ([mvgijssel](https://github.com/mvgijssel))
|
|
122
|
+
- Updated travis file [\#1](https://github.com/mvgijssel/arel_toolkit/pull/1) ([mvgijssel](https://github.com/mvgijssel))
|
|
123
|
+
|
|
124
|
+
**Fixed bugs:**
|
|
125
|
+
|
|
126
|
+
- Fix CodeClimate coverage [\#8](https://github.com/mvgijssel/arel_toolkit/issues/8)
|
|
127
|
+
|
|
128
|
+
**Closed issues:**
|
|
129
|
+
|
|
130
|
+
- Remove unnecessary to\_arel remains [\#15](https://github.com/mvgijssel/arel_toolkit/issues/15)
|
|
131
|
+
- Merge to\_arel gem [\#4](https://github.com/mvgijssel/arel_toolkit/issues/4)
|
|
132
|
+
- Create issues for unknown branches in pg\_query\_visitor [\#19](https://github.com/mvgijssel/arel_toolkit/issues/19)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,24 +1,60 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
arel_toolkit (0.
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
arel_toolkit (0.4.3)
|
|
5
|
+
activerecord
|
|
6
|
+
pg (~> 1.1.4)
|
|
7
|
+
pg_query (~> 1.2.0)
|
|
7
8
|
|
|
8
9
|
GEM
|
|
9
10
|
remote: https://rubygems.org/
|
|
10
11
|
specs:
|
|
12
|
+
activemodel (5.2.4.3)
|
|
13
|
+
activesupport (= 5.2.4.3)
|
|
14
|
+
activerecord (5.2.4.3)
|
|
15
|
+
activemodel (= 5.2.4.3)
|
|
16
|
+
activesupport (= 5.2.4.3)
|
|
17
|
+
arel (>= 9.0)
|
|
18
|
+
activesupport (5.2.4.3)
|
|
19
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
20
|
+
i18n (>= 0.7, < 2)
|
|
21
|
+
minitest (~> 5.1)
|
|
22
|
+
tzinfo (~> 1.1)
|
|
23
|
+
addressable (2.7.0)
|
|
24
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
11
25
|
ansi (1.5.0)
|
|
26
|
+
appraisal (2.2.0)
|
|
27
|
+
bundler
|
|
28
|
+
rake
|
|
29
|
+
thor (>= 0.14.0)
|
|
30
|
+
approvals (0.0.24)
|
|
31
|
+
nokogiri (~> 1.6)
|
|
32
|
+
thor (~> 0.18)
|
|
12
33
|
arel (9.0.0)
|
|
13
34
|
ast (2.4.0)
|
|
14
35
|
binding_of_caller (0.8.0)
|
|
15
36
|
debug_inspector (>= 0.0.1)
|
|
16
37
|
coderay (1.1.2)
|
|
38
|
+
concurrent-ruby (1.1.6)
|
|
39
|
+
database_cleaner (1.7.0)
|
|
17
40
|
debug_inspector (0.0.3)
|
|
18
41
|
diff-lcs (1.3)
|
|
19
42
|
docile (1.3.1)
|
|
43
|
+
dpl (1.10.11)
|
|
44
|
+
faraday (0.17.0)
|
|
45
|
+
multipart-post (>= 1.2, < 3)
|
|
46
|
+
faraday-http-cache (2.0.0)
|
|
47
|
+
faraday (~> 0.8)
|
|
20
48
|
ffi (1.11.1)
|
|
21
49
|
formatador (0.2.5)
|
|
50
|
+
github_changelog_generator (1.15.0)
|
|
51
|
+
activesupport
|
|
52
|
+
faraday-http-cache
|
|
53
|
+
multi_json
|
|
54
|
+
octokit (~> 4.6)
|
|
55
|
+
rainbow (>= 2.2.1)
|
|
56
|
+
rake (>= 10.0)
|
|
57
|
+
retriable (~> 3.0)
|
|
22
58
|
guard (2.15.0)
|
|
23
59
|
formatador (>= 0.2.4)
|
|
24
60
|
listen (>= 2.7, < 4.0)
|
|
@@ -29,34 +65,55 @@ GEM
|
|
|
29
65
|
shellany (~> 0.0)
|
|
30
66
|
thor (>= 0.18.1)
|
|
31
67
|
guard-compat (1.2.1)
|
|
68
|
+
guard-rake (1.0.0)
|
|
69
|
+
guard
|
|
70
|
+
rake
|
|
32
71
|
guard-rspec (4.7.3)
|
|
33
72
|
guard (~> 2.1)
|
|
34
73
|
guard-compat (~> 1.1)
|
|
35
74
|
rspec (>= 2.99.0, < 4.0)
|
|
75
|
+
guard-rubocop (1.3.0)
|
|
76
|
+
guard (~> 2.0)
|
|
77
|
+
rubocop (~> 0.20)
|
|
36
78
|
hirb (0.7.3)
|
|
79
|
+
i18n (1.8.2)
|
|
80
|
+
concurrent-ruby (~> 1.0)
|
|
37
81
|
interception (0.5)
|
|
38
|
-
jaro_winkler (1.5.
|
|
39
|
-
json (2.
|
|
82
|
+
jaro_winkler (1.5.3)
|
|
83
|
+
json (2.3.1)
|
|
40
84
|
listen (3.1.5)
|
|
41
85
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
42
86
|
rb-inotify (~> 0.9, >= 0.9.7)
|
|
43
87
|
ruby_dep (~> 1.2)
|
|
44
88
|
lumberjack (1.0.13)
|
|
89
|
+
memory_profiler (0.9.14)
|
|
45
90
|
method_source (0.9.2)
|
|
91
|
+
mini_portile2 (2.4.0)
|
|
92
|
+
minitest (5.14.1)
|
|
93
|
+
multi_json (1.14.1)
|
|
94
|
+
multipart-post (2.1.1)
|
|
46
95
|
nenv (0.3.0)
|
|
96
|
+
nokogiri (1.10.8)
|
|
97
|
+
mini_portile2 (~> 2.4.0)
|
|
47
98
|
notiffany (0.1.1)
|
|
48
99
|
nenv (~> 0.1)
|
|
49
100
|
shellany (~> 0.0)
|
|
101
|
+
octokit (4.14.0)
|
|
102
|
+
sawyer (~> 0.8.0, >= 0.5.3)
|
|
50
103
|
parallel (1.17.0)
|
|
51
104
|
parser (2.6.3.0)
|
|
52
105
|
ast (~> 2.4.0)
|
|
53
|
-
|
|
106
|
+
pg (1.1.4)
|
|
107
|
+
pg_query (1.2.0)
|
|
54
108
|
pry (0.12.2)
|
|
55
109
|
coderay (~> 1.1.0)
|
|
56
110
|
method_source (~> 0.9.0)
|
|
57
111
|
pry-alias (0.0.1)
|
|
58
112
|
binding_of_caller
|
|
59
113
|
pry
|
|
114
|
+
pry-doc (1.0.0)
|
|
115
|
+
pry (~> 0.11)
|
|
116
|
+
yard (~> 0.9.11)
|
|
60
117
|
pry-nav (0.3.0)
|
|
61
118
|
pry (>= 0.9.10, < 0.13.0)
|
|
62
119
|
pry-rescue (1.5.0)
|
|
@@ -65,11 +122,15 @@ GEM
|
|
|
65
122
|
pry-stack_explorer (0.4.9.3)
|
|
66
123
|
binding_of_caller (>= 0.7)
|
|
67
124
|
pry (>= 0.9.11)
|
|
125
|
+
public_suffix (4.0.1)
|
|
68
126
|
rainbow (3.0.0)
|
|
69
|
-
rake (
|
|
127
|
+
rake (13.0.1)
|
|
128
|
+
rake-compiler (1.0.7)
|
|
129
|
+
rake
|
|
70
130
|
rb-fsevent (0.10.3)
|
|
71
131
|
rb-inotify (0.10.0)
|
|
72
132
|
ffi (~> 1.0)
|
|
133
|
+
retriable (3.1.2)
|
|
73
134
|
rspec (3.8.0)
|
|
74
135
|
rspec-core (~> 3.8.0)
|
|
75
136
|
rspec-expectations (~> 3.8.0)
|
|
@@ -83,15 +144,18 @@ GEM
|
|
|
83
144
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
84
145
|
rspec-support (~> 3.8.0)
|
|
85
146
|
rspec-support (3.8.0)
|
|
86
|
-
rubocop (0.
|
|
147
|
+
rubocop (0.71.0)
|
|
87
148
|
jaro_winkler (~> 1.5.1)
|
|
88
149
|
parallel (~> 1.10)
|
|
89
150
|
parser (>= 2.6)
|
|
90
151
|
rainbow (>= 2.2.2, < 4.0)
|
|
91
152
|
ruby-progressbar (~> 1.7)
|
|
92
153
|
unicode-display_width (>= 1.4.0, < 1.7)
|
|
93
|
-
ruby-progressbar (1.10.
|
|
154
|
+
ruby-progressbar (1.10.1)
|
|
94
155
|
ruby_dep (1.5.0)
|
|
156
|
+
sawyer (0.8.2)
|
|
157
|
+
addressable (>= 2.3.5)
|
|
158
|
+
faraday (> 0.8, < 2.0)
|
|
95
159
|
shellany (0.0.1)
|
|
96
160
|
simplecov (0.16.1)
|
|
97
161
|
docile (~> 1.1)
|
|
@@ -102,27 +166,43 @@ GEM
|
|
|
102
166
|
hirb
|
|
103
167
|
simplecov
|
|
104
168
|
simplecov-html (0.10.2)
|
|
169
|
+
stackprof (0.2.13)
|
|
105
170
|
thor (0.20.3)
|
|
171
|
+
thread_safe (0.3.6)
|
|
172
|
+
tzinfo (1.2.7)
|
|
173
|
+
thread_safe (~> 0.1)
|
|
106
174
|
unicode-display_width (1.6.0)
|
|
175
|
+
yard (0.9.20)
|
|
107
176
|
|
|
108
177
|
PLATFORMS
|
|
109
178
|
ruby
|
|
110
179
|
|
|
111
180
|
DEPENDENCIES
|
|
181
|
+
appraisal (~> 2.2.0)
|
|
182
|
+
approvals (~> 0.0.24)
|
|
112
183
|
arel_toolkit!
|
|
113
184
|
bundler (~> 2.0)
|
|
185
|
+
database_cleaner (~> 1.7.0)
|
|
186
|
+
dpl (~> 1.10.11)
|
|
187
|
+
github_changelog_generator (~> 1.15)
|
|
114
188
|
guard (~> 2.15)
|
|
189
|
+
guard-rake (~> 1.0.0)
|
|
115
190
|
guard-rspec (~> 4.7)
|
|
191
|
+
guard-rubocop (~> 1.3.0)
|
|
192
|
+
memory_profiler (~> 0.9)
|
|
116
193
|
pry
|
|
117
194
|
pry-alias
|
|
195
|
+
pry-doc
|
|
118
196
|
pry-nav
|
|
119
197
|
pry-rescue
|
|
120
198
|
pry-stack_explorer
|
|
121
|
-
rake (~>
|
|
199
|
+
rake (~> 13.0)
|
|
200
|
+
rake-compiler (~> 1.0)
|
|
122
201
|
rspec (~> 3.8)
|
|
123
|
-
rubocop (
|
|
202
|
+
rubocop (= 0.71.0)
|
|
124
203
|
simplecov (~> 0.16.1)
|
|
125
204
|
simplecov-console (~> 0.4.2)
|
|
205
|
+
stackprof (~> 0.2)
|
|
126
206
|
|
|
127
207
|
BUNDLED WITH
|
|
128
|
-
2.
|
|
208
|
+
2.1.4
|