arel_toolkit 0.3.0 → 0.4.4

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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +3 -0
  3. data/.github/workflows/develop.yml +90 -0
  4. data/.github/workflows/master.yml +67 -0
  5. data/.gitignore +8 -0
  6. data/.rubocop.yml +13 -5
  7. data/Appraisals +13 -0
  8. data/CHANGELOG.md +94 -5
  9. data/Gemfile +5 -0
  10. data/Gemfile.lock +62 -33
  11. data/Guardfile +4 -0
  12. data/README.md +67 -23
  13. data/Rakefile +11 -1
  14. data/arel_toolkit.gemspec +15 -6
  15. data/benchmark.rb +54 -0
  16. data/ext/pg_result_init/extconf.rb +52 -0
  17. data/ext/pg_result_init/pg_result_init.c +138 -0
  18. data/ext/pg_result_init/pg_result_init.h +6 -0
  19. data/gemfiles/active_record_6.gemfile +7 -0
  20. data/gemfiles/active_record_6.gemfile.lock +210 -0
  21. data/gemfiles/arel_gems.gemfile +10 -0
  22. data/gemfiles/arel_gems.gemfile.lock +284 -0
  23. data/gemfiles/default.gemfile +5 -0
  24. data/gemfiles/default.gemfile.lock +208 -0
  25. data/lib/arel/enhance.rb +17 -0
  26. data/lib/arel/enhance/context_enhancer/arel_table.rb +92 -0
  27. data/lib/arel/enhance/node.rb +232 -0
  28. data/lib/arel/enhance/path.rb +38 -0
  29. data/lib/arel/enhance/path_node.rb +26 -0
  30. data/lib/arel/enhance/query.rb +38 -0
  31. data/lib/arel/enhance/query_methods.rb +23 -0
  32. data/lib/arel/enhance/visitor.rb +97 -0
  33. data/lib/arel/extensions.rb +32 -6
  34. data/lib/arel/extensions/active_model_attribute_with_cast_value.rb +22 -0
  35. data/lib/arel/extensions/active_record_relation_query_attribute.rb +22 -0
  36. data/lib/arel/extensions/active_record_type_caster_connection.rb +7 -0
  37. data/lib/arel/extensions/active_record_type_caster_map.rb +7 -0
  38. data/lib/arel/extensions/array.rb +2 -9
  39. data/lib/arel/extensions/at_time_zone.rb +10 -3
  40. data/lib/arel/extensions/attributes_attribute.rb +47 -0
  41. data/lib/arel/extensions/binary.rb +7 -0
  42. data/lib/arel/extensions/bind_param.rb +15 -0
  43. data/lib/arel/extensions/bit_string.rb +2 -9
  44. data/lib/arel/extensions/case.rb +17 -0
  45. data/lib/arel/extensions/coalesce.rb +17 -3
  46. data/lib/arel/extensions/conflict.rb +9 -0
  47. data/lib/arel/extensions/contains.rb +27 -5
  48. data/lib/arel/extensions/current_catalog.rb +4 -0
  49. data/lib/arel/extensions/current_date.rb +4 -0
  50. data/lib/arel/extensions/current_of_expression.rb +2 -9
  51. data/lib/arel/extensions/current_role.rb +4 -0
  52. data/lib/arel/extensions/current_row.rb +7 -0
  53. data/lib/arel/extensions/current_schema.rb +4 -0
  54. data/lib/arel/extensions/current_user.rb +4 -0
  55. data/lib/arel/extensions/dealocate.rb +31 -0
  56. data/lib/arel/extensions/default_values.rb +4 -0
  57. data/lib/arel/extensions/delete_manager.rb +22 -6
  58. data/lib/arel/extensions/delete_statement.rb +46 -24
  59. data/lib/arel/extensions/dot.rb +11 -0
  60. data/lib/arel/extensions/exists.rb +59 -0
  61. data/lib/arel/extensions/extract_from.rb +3 -10
  62. data/lib/arel/extensions/factorial.rb +10 -2
  63. data/lib/arel/extensions/false.rb +7 -0
  64. data/lib/arel/extensions/function.rb +44 -14
  65. data/lib/arel/extensions/greatest.rb +17 -3
  66. data/lib/arel/extensions/indirection.rb +3 -12
  67. data/lib/arel/extensions/infer.rb +7 -7
  68. data/lib/arel/extensions/infix_operation.rb +17 -0
  69. data/lib/arel/extensions/insert_manager.rb +19 -3
  70. data/lib/arel/extensions/insert_statement.rb +31 -12
  71. data/lib/arel/extensions/into.rb +21 -0
  72. data/lib/arel/extensions/least.rb +17 -3
  73. data/lib/arel/extensions/named_argument.rb +3 -8
  74. data/lib/arel/extensions/named_function.rb +7 -0
  75. data/lib/arel/extensions/node.rb +10 -0
  76. data/lib/arel/extensions/ordering.rb +21 -6
  77. data/lib/arel/extensions/overlaps.rb +9 -0
  78. data/lib/arel/extensions/overlay.rb +9 -0
  79. data/lib/arel/extensions/position.rb +3 -8
  80. data/lib/arel/extensions/prepare.rb +39 -0
  81. data/lib/arel/extensions/range_function.rb +10 -2
  82. data/lib/arel/extensions/row.rb +3 -8
  83. data/lib/arel/extensions/select_core.rb +73 -0
  84. data/lib/arel/extensions/select_manager.rb +22 -6
  85. data/lib/arel/extensions/select_statement.rb +31 -9
  86. data/lib/arel/extensions/session_user.rb +4 -0
  87. data/lib/arel/extensions/set_to_default.rb +4 -0
  88. data/lib/arel/extensions/substring.rb +8 -0
  89. data/lib/arel/extensions/table.rb +43 -10
  90. data/lib/arel/extensions/time_with_precision.rb +6 -0
  91. data/lib/arel/extensions/to_sql.rb +27 -0
  92. data/lib/arel/extensions/top.rb +8 -0
  93. data/lib/arel/extensions/transaction.rb +3 -8
  94. data/lib/arel/extensions/tree_manager.rb +15 -0
  95. data/lib/arel/extensions/trim.rb +8 -0
  96. data/lib/arel/extensions/true.rb +7 -0
  97. data/lib/arel/extensions/type_cast.rb +7 -0
  98. data/lib/arel/extensions/unary.rb +7 -0
  99. data/lib/arel/extensions/unary_operation.rb +16 -0
  100. data/lib/arel/extensions/unknown.rb +4 -0
  101. data/lib/arel/extensions/update_manager.rb +22 -6
  102. data/lib/arel/extensions/update_statement.rb +36 -33
  103. data/lib/arel/extensions/user.rb +4 -0
  104. data/lib/arel/extensions/values_list.rb +15 -0
  105. data/lib/arel/extensions/variable_set.rb +9 -0
  106. data/lib/arel/extensions/variable_show.rb +3 -8
  107. data/lib/arel/middleware.rb +5 -1
  108. data/lib/arel/middleware/active_record_extension.rb +13 -0
  109. data/lib/arel/middleware/cache_accessor.rb +35 -0
  110. data/lib/arel/middleware/chain.rb +108 -33
  111. data/lib/arel/middleware/database_executor.rb +77 -0
  112. data/lib/arel/middleware/no_op_cache.rb +9 -0
  113. data/lib/arel/middleware/postgresql_adapter.rb +41 -5
  114. data/lib/arel/middleware/railtie.rb +15 -1
  115. data/lib/arel/middleware/result.rb +170 -0
  116. data/lib/arel/middleware/to_sql_executor.rb +15 -0
  117. data/lib/arel/middleware/to_sql_middleware.rb +33 -0
  118. data/lib/arel/sql_to_arel.rb +6 -3
  119. data/lib/arel/sql_to_arel/pg_query_visitor.rb +67 -38
  120. data/lib/arel/sql_to_arel/pg_query_visitor/frame_options.rb +1 -1
  121. data/lib/arel/sql_to_arel/result.rb +17 -4
  122. data/lib/arel/transformer.rb +8 -0
  123. data/lib/arel/transformer/prefix_schema_name.rb +183 -0
  124. data/lib/arel/transformer/remove_active_record_info.rb +40 -0
  125. data/lib/arel/transformer/replace_table_with_subquery.rb +31 -0
  126. data/lib/arel_toolkit.rb +15 -2
  127. data/lib/arel_toolkit/version.rb +1 -1
  128. metadata +179 -42
  129. data/.travis.yml +0 -29
  130. data/lib/arel/extensions/generate_series.rb +0 -9
  131. data/lib/arel/extensions/rank.rb +0 -9
  132. data/lib/arel/extensions/unbound_column_reference.rb +0 -5
  133. data/lib/arel/sql_formatter.rb +0 -59
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12a7a7083cd421854ed6034a0a1cbf83352439d843d7414225267599e9d5a0af
4
- data.tar.gz: db2a316896694e49edce2ee52aab4f2283781e45347acaea23fac1fd5dbbf5a9
3
+ metadata.gz: a61ce95fcd49278974796940a1c783448978fef075e83157ee95e2e7fce1d42d
4
+ data.tar.gz: bb0431b90908d911f52b0d3b02c1acac0f0223274b73aa53305cebe1bdb77bd1
5
5
  SHA512:
6
- metadata.gz: 1b77b18061a8332e5e6aa9fe0288fb2526309604f17eb3751d0c363ea1349aaa158fad5106fee32e0a3064cbc21615e1930dd0e59012b92648e75a96cc488190
7
- data.tar.gz: 5b04edcfc25b94cb44ac93d4c7472bc7e4d380c20a1d750c41f56e52b754cb0e023b5758e8c35dd2477037e6ff9ca0d2b0aaf5dc7825063fa5b053be7142c142
6
+ metadata.gz: aa03c27964e900c04f5af3178c7744eb8ef08a64537c1dc0594262cf4e5fffb1e0c5907ef891048bfa224f2d39f31fedc78aa7a8e0f03294af8193dc8c1e63c3
7
+ data.tar.gz: a2e1849d25ddaee84720b1ed10045a9fc6e0b926d555557f99c3498bdecb02de0eda06fb4a04f1f9a72a4f9b945a089b3ece8059cd04ad42f45d843446244b15
data/.codeclimate.yml CHANGED
@@ -2,6 +2,9 @@ version: "2"
2
2
  plugins:
3
3
  rubocop:
4
4
  enabled: true
5
+ channel: rubocop-0-71
6
+ config:
7
+ file: .rubocop.yml
5
8
  bundler-audit:
6
9
  enabled: true
7
10
  fixme:
@@ -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
@@ -6,11 +6,19 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ *.bundle
10
+ *.so
11
+ *.o
12
+ *.a
9
13
 
10
14
  # rspec failure tracking
11
15
  .rspec_status
12
16
 
17
+ # approvals gem
18
+ .approvals
19
+
13
20
  *.temp
14
21
  # emacs
15
22
  TAGS
16
23
  .#*
24
+ stackprof.json
data/.rubocop.yml CHANGED
@@ -1,5 +1,7 @@
1
- Style/FrozenStringLiteralComment:
2
- Enabled: false
1
+ AllCops:
2
+ Exclude:
3
+ - 'gemfiles/arel_gems.gemfile'
4
+ - 'gemfiles/default.gemfile'
3
5
 
4
6
  Bundler/OrderedGems:
5
7
  Enabled: false
@@ -7,9 +9,6 @@ Bundler/OrderedGems:
7
9
  Gemspec/OrderedDependencies:
8
10
  Enabled: false
9
11
 
10
- Style/MultilineBlockChain:
11
- Enabled: false
12
-
13
12
  Metrics/LineLength:
14
13
  Enabled: true
15
14
  Max: 100
@@ -26,12 +25,21 @@ Metrics/BlockLength:
26
25
  Style/Documentation:
27
26
  Enabled: false
28
27
 
28
+ Style/MultilineBlockChain:
29
+ Enabled: false
30
+
31
+ Style/TrailingCommaInHashLiteral:
32
+ EnforcedStyleForMultiline: comma
33
+
29
34
  Style/TrailingCommaInArrayLiteral:
30
35
  EnforcedStyleForMultiline: comma
31
36
 
32
37
  Style/TrailingCommaInArguments:
33
38
  EnforcedStyleForMultiline: comma
34
39
 
40
+ Style/FrozenStringLiteralComment:
41
+ Enabled: false
42
+
35
43
  Layout/MultilineMethodCallIndentation:
36
44
  Enabled: true
37
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,6 +1,90 @@
1
- # Change Log
1
+ # Changelog
2
+
3
+ ## [v0.4.4](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.4) (2021-02-11)
4
+
5
+ [Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.4.3...v0.4.4)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Bump nokogiri from 1.10.8 to 1.11.1 [\#171](https://github.com/mvgijssel/arel_toolkit/pull/171) ([dependabot[bot]](https://github.com/apps/dependabot))
10
+
11
+ **Fixed bugs:**
12
+
13
+ - Fix conditional update and delete statements in Rails 6 [\#170](https://github.com/mvgijssel/arel_toolkit/pull/170) ([mvgijssel](https://github.com/mvgijssel))
14
+
15
+ ## [v0.4.3](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.3) (2020-11-09)
16
+
17
+ [Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.4.2...v0.4.3)
18
+
19
+ **Implemented enhancements:**
20
+
21
+ - Upgrade active\_record to 6 [\#167](https://github.com/mvgijssel/arel_toolkit/pull/167) ([khaleksa](https://github.com/khaleksa))
22
+ - 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))
23
+ - 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))
24
+ - 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))
25
+ - 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))
26
+ - Adds cache mechanism to middleware [\#154](https://github.com/mvgijssel/arel_toolkit/pull/154) ([Willianvdv](https://github.com/Willianvdv))
27
+
28
+ ## [v0.4.2](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.2) (2020-01-08)
29
+
30
+ [Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.4.1...v0.4.2)
31
+
32
+ **Breaking changes:**
33
+
34
+ - Remove path, inline visit and improve recursion for improved performance [\#152](https://github.com/mvgijssel/arel_toolkit/pull/152) ([Willianvdv](https://github.com/Willianvdv))
35
+
36
+ **Implemented enhancements:**
37
+
38
+ - Validate whether setting a session variable transformation does the right thing [\#155](https://github.com/mvgijssel/arel_toolkit/issues/155)
39
+ - Add ability to mutate nodes with precomputed Arel::Nodes::Enhance [\#158](https://github.com/mvgijssel/arel_toolkit/pull/158) ([mvgijssel](https://github.com/mvgijssel))
40
+
41
+ ## [v0.4.1](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.1) (2019-11-13)
42
+
43
+ [Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.4.0...v0.4.1)
44
+
45
+ **Implemented enhancements:**
46
+
47
+ - Create a transformer that replaces a table reference with a subquery [\#141](https://github.com/mvgijssel/arel_toolkit/issues/141)
48
+ - Same signature for all middleware helpers [\#135](https://github.com/mvgijssel/arel_toolkit/issues/135)
49
+ - Instantiate PG::Result object instead of duck typed object [\#130](https://github.com/mvgijssel/arel_toolkit/issues/130)
50
+ - Add `to\_sql` to Arel.middleware which prints the sql after middleware processing [\#127](https://github.com/mvgijssel/arel_toolkit/issues/127)
51
+ - Extend Middleware to include the response from the database [\#126](https://github.com/mvgijssel/arel_toolkit/issues/126)
52
+ - Extend AddSchemaToTable to support multiple schemas and regclass typecasts [\#124](https://github.com/mvgijssel/arel_toolkit/issues/124)
53
+ - Optional context argument for Arel middleware [\#110](https://github.com/mvgijssel/arel_toolkit/issues/110)
54
+ - Handle is\_rowsfrom in pg\_query\_visitor\#visit\_RangeFunction [\#36](https://github.com/mvgijssel/arel_toolkit/issues/36)
55
+ - 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))
56
+
57
+ **Fixed bugs:**
58
+
59
+ - Bundle install fails with missing arel\_toolkit/pg\_result\_init [\#148](https://github.com/mvgijssel/arel_toolkit/issues/148)
60
+ - Handle column reference with 3 \(or more\) fields [\#145](https://github.com/mvgijssel/arel_toolkit/issues/145)
61
+ - Error when aliasing a range select [\#144](https://github.com/mvgijssel/arel_toolkit/issues/144)
62
+ - Make sure the method signatures of PostgreSQLAdapter match [\#122](https://github.com/mvgijssel/arel_toolkit/issues/122)
63
+ - Fix missing middleware method and fix \(again\) infinite middleware recursion [\#120](https://github.com/mvgijssel/arel_toolkit/issues/120)
64
+ - Use named window with OVER. [\#149](https://github.com/mvgijssel/arel_toolkit/pull/149) ([khaleksa](https://github.com/khaleksa))
65
+
66
+ ## [v0.4.0](https://github.com/mvgijssel/arel_toolkit/tree/v0.4.0) (2019-07-31)
67
+
68
+ [Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.3.0...v0.4.0)
69
+
70
+ **Implemented enhancements:**
71
+
72
+ - Replace Arel::Nodes::UnboundColumnReference with Arel::Nodes::UnqualifiedColumn [\#91](https://github.com/mvgijssel/arel_toolkit/issues/91)
73
+ - Add brakeman to check for security vulnerabilities [\#10](https://github.com/mvgijssel/arel_toolkit/issues/10)
74
+ - Rename Arel.transformer to Arel.enhance [\#111](https://github.com/mvgijssel/arel_toolkit/issues/111)
75
+ - Ability to query an Arel transformer tree [\#103](https://github.com/mvgijssel/arel_toolkit/issues/103)
76
+ - Implement PREPARE and DEALLOCATE statement [\#101](https://github.com/mvgijssel/arel_toolkit/issues/101)
77
+ - Create Arel transformer class to safely and easily mutate an Arel AST [\#89](https://github.com/mvgijssel/arel_toolkit/issues/89)
78
+ - Test and verify compatibility with Arel extension gems [\#81](https://github.com/mvgijssel/arel_toolkit/issues/81)
79
+ - Automatically load Railtie when gem is included in Rails [\#66](https://github.com/mvgijssel/arel_toolkit/issues/66)
80
+ - Create remove ActiveRecord specifics transformer [\#63](https://github.com/mvgijssel/arel_toolkit/issues/63)
81
+
82
+ **Fixed bugs:**
83
+
84
+ - TypeError: superclass mismatch for class Overlap [\#93](https://github.com/mvgijssel/arel_toolkit/issues/93)
2
85
 
3
86
  ## [v0.3.0](https://github.com/mvgijssel/arel_toolkit/tree/v0.3.0) (2019-07-01)
87
+
4
88
  [Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.2.0...v0.3.0)
5
89
 
6
90
  **Implemented enhancements:**
@@ -28,11 +112,13 @@
28
112
  - File issues for commented out rspec test [\#51](https://github.com/mvgijssel/arel_toolkit/issues/51)
29
113
 
30
114
  ## [v0.2.0](https://github.com/mvgijssel/arel_toolkit/tree/v0.2.0) (2019-05-30)
115
+
31
116
  [Full Changelog](https://github.com/mvgijssel/arel_toolkit/compare/v0.1.0...v0.2.0)
32
117
 
33
118
  **Implemented enhancements:**
34
119
 
35
120
  - Handle op in pg\_query\_visitor\#visit\_SelectStmt [\#38](https://github.com/mvgijssel/arel_toolkit/issues/38)
121
+ - Introduce Guard [\#5](https://github.com/mvgijssel/arel_toolkit/issues/5)
36
122
  - Add WITH, OVERRIDING and RETURNING to INSERT [\#28](https://github.com/mvgijssel/arel_toolkit/issues/28)
37
123
  - Return \(Select|Update|Insert|Delete\)Manager instead of \(Select|Update|Insert|Delete\)Statement [\#25](https://github.com/mvgijssel/arel_toolkit/issues/25)
38
124
  - Implement UNION in sql\_to\_arel [\#24](https://github.com/mvgijssel/arel_toolkit/issues/24)
@@ -41,7 +127,11 @@
41
127
  - Implement pg\_query\_visitor method for INSERT [\#21](https://github.com/mvgijssel/arel_toolkit/issues/21)
42
128
  - Implement pg\_query\_visitor method for UPDATE [\#20](https://github.com/mvgijssel/arel_toolkit/issues/20)
43
129
  - Implement all the visitor methods in PgQueryVisitor for SELECT statements [\#11](https://github.com/mvgijssel/arel_toolkit/issues/11)
44
- - Introduce Guard [\#5](https://github.com/mvgijssel/arel_toolkit/issues/5)
130
+ - 22/implement delete [\#30](https://github.com/mvgijssel/arel_toolkit/pull/30) ([mvgijssel](https://github.com/mvgijssel))
131
+ - Added WITH, OVERRIDING and RETURINING to INSERT [\#29](https://github.com/mvgijssel/arel_toolkit/pull/29) ([mvgijssel](https://github.com/mvgijssel))
132
+ - Added badges to README \(and fix setup\) [\#3](https://github.com/mvgijssel/arel_toolkit/pull/3) ([mvgijssel](https://github.com/mvgijssel))
133
+ - Configure codeclimate [\#2](https://github.com/mvgijssel/arel_toolkit/pull/2) ([mvgijssel](https://github.com/mvgijssel))
134
+ - Updated travis file [\#1](https://github.com/mvgijssel/arel_toolkit/pull/1) ([mvgijssel](https://github.com/mvgijssel))
45
135
 
46
136
  **Fixed bugs:**
47
137
 
@@ -49,11 +139,10 @@
49
139
 
50
140
  **Closed issues:**
51
141
 
52
- - Create issues for unknown branches in pg\_query\_visitor [\#19](https://github.com/mvgijssel/arel_toolkit/issues/19)
53
142
  - Remove unnecessary to\_arel remains [\#15](https://github.com/mvgijssel/arel_toolkit/issues/15)
54
143
  - Merge to\_arel gem [\#4](https://github.com/mvgijssel/arel_toolkit/issues/4)
144
+ - Create issues for unknown branches in pg\_query\_visitor [\#19](https://github.com/mvgijssel/arel_toolkit/issues/19)
55
145
 
56
- ## [v0.1.0](https://github.com/mvgijssel/arel_toolkit/tree/v0.1.0) (2019-05-16)
57
146
 
58
147
 
59
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
148
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
data/Gemfile CHANGED
@@ -1,4 +1,9 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ git_source(:github) do |repo_name|
4
+ repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?('/')
5
+ "https://github.com/#{repo_name}.git"
6
+ end
7
+
3
8
  # Specify your gem's dependencies in arel_toolkit.gemspec
4
9
  gemspec
data/Gemfile.lock CHANGED
@@ -1,54 +1,60 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- arel_toolkit (0.3.0)
5
- activerecord (~> 5.2.0)
6
- arel (~> 9.0.0)
4
+ arel_toolkit (0.4.4)
5
+ activerecord
7
6
  pg (~> 1.1.4)
8
- pg_query (~> 1.1.0)
7
+ pg_query (~> 1.3)
9
8
 
10
9
  GEM
11
10
  remote: https://rubygems.org/
12
11
  specs:
13
- activemodel (5.2.3)
14
- activesupport (= 5.2.3)
15
- activerecord (5.2.3)
16
- activemodel (= 5.2.3)
17
- activesupport (= 5.2.3)
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)
18
17
  arel (>= 9.0)
19
- activesupport (5.2.3)
18
+ activesupport (5.2.4.3)
20
19
  concurrent-ruby (~> 1.0, >= 1.0.2)
21
20
  i18n (>= 0.7, < 2)
22
21
  minitest (~> 5.1)
23
22
  tzinfo (~> 1.1)
24
- addressable (2.6.0)
25
- public_suffix (>= 2.0.2, < 4.0)
23
+ addressable (2.7.0)
24
+ public_suffix (>= 2.0.2, < 5.0)
26
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)
27
33
  arel (9.0.0)
28
34
  ast (2.4.0)
29
35
  binding_of_caller (0.8.0)
30
36
  debug_inspector (>= 0.0.1)
31
37
  coderay (1.1.2)
32
- concurrent-ruby (1.1.5)
38
+ concurrent-ruby (1.1.6)
33
39
  database_cleaner (1.7.0)
34
40
  debug_inspector (0.0.3)
35
41
  diff-lcs (1.3)
36
42
  docile (1.3.1)
37
43
  dpl (1.10.11)
38
- faraday (0.15.4)
44
+ faraday (0.17.0)
39
45
  multipart-post (>= 1.2, < 3)
40
46
  faraday-http-cache (2.0.0)
41
47
  faraday (~> 0.8)
42
48
  ffi (1.11.1)
43
49
  formatador (0.2.5)
44
- github_changelog_generator (1.14.3)
50
+ github_changelog_generator (1.15.0)
45
51
  activesupport
46
52
  faraday-http-cache
47
53
  multi_json
48
54
  octokit (~> 4.6)
49
- rainbow (>= 2.1)
55
+ rainbow (>= 2.2.1)
50
56
  rake (>= 10.0)
51
- retriable (~> 2.1)
57
+ retriable (~> 3.0)
52
58
  guard (2.15.0)
53
59
  formatador (>= 0.2.4)
54
60
  listen (>= 2.7, < 4.0)
@@ -59,6 +65,9 @@ GEM
59
65
  shellany (~> 0.0)
60
66
  thor (>= 0.18.1)
61
67
  guard-compat (1.2.1)
68
+ guard-rake (1.0.0)
69
+ guard
70
+ rake
62
71
  guard-rspec (4.7.3)
63
72
  guard (~> 2.1)
64
73
  guard-compat (~> 1.1)
@@ -67,21 +76,26 @@ GEM
67
76
  guard (~> 2.0)
68
77
  rubocop (~> 0.20)
69
78
  hirb (0.7.3)
70
- i18n (1.6.0)
79
+ i18n (1.8.2)
71
80
  concurrent-ruby (~> 1.0)
72
81
  interception (0.5)
73
- jaro_winkler (1.5.2)
74
- json (2.2.0)
82
+ jaro_winkler (1.5.3)
83
+ json (2.3.1)
75
84
  listen (3.1.5)
76
85
  rb-fsevent (~> 0.9, >= 0.9.4)
77
86
  rb-inotify (~> 0.9, >= 0.9.7)
78
87
  ruby_dep (~> 1.2)
79
88
  lumberjack (1.0.13)
89
+ memory_profiler (0.9.14)
80
90
  method_source (0.9.2)
81
- minitest (5.11.3)
82
- multi_json (1.13.1)
91
+ mini_portile2 (2.5.0)
92
+ minitest (5.14.1)
93
+ multi_json (1.14.1)
83
94
  multipart-post (2.1.1)
84
95
  nenv (0.3.0)
96
+ nokogiri (1.11.1)
97
+ mini_portile2 (~> 2.5.0)
98
+ racc (~> 1.4)
85
99
  notiffany (0.1.1)
86
100
  nenv (~> 0.1)
87
101
  shellany (~> 0.0)
@@ -91,13 +105,16 @@ GEM
91
105
  parser (2.6.3.0)
92
106
  ast (~> 2.4.0)
93
107
  pg (1.1.4)
94
- pg_query (1.1.0)
108
+ pg_query (1.3.0)
95
109
  pry (0.12.2)
96
110
  coderay (~> 1.1.0)
97
111
  method_source (~> 0.9.0)
98
112
  pry-alias (0.0.1)
99
113
  binding_of_caller
100
114
  pry
115
+ pry-doc (1.0.0)
116
+ pry (~> 0.11)
117
+ yard (~> 0.9.11)
101
118
  pry-nav (0.3.0)
102
119
  pry (>= 0.9.10, < 0.13.0)
103
120
  pry-rescue (1.5.0)
@@ -106,13 +123,16 @@ GEM
106
123
  pry-stack_explorer (0.4.9.3)
107
124
  binding_of_caller (>= 0.7)
108
125
  pry (>= 0.9.11)
109
- public_suffix (3.1.1)
126
+ public_suffix (4.0.1)
127
+ racc (1.5.2)
110
128
  rainbow (3.0.0)
111
- rake (10.5.0)
129
+ rake (13.0.1)
130
+ rake-compiler (1.0.7)
131
+ rake
112
132
  rb-fsevent (0.10.3)
113
133
  rb-inotify (0.10.0)
114
134
  ffi (~> 1.0)
115
- retriable (2.1.0)
135
+ retriable (3.1.2)
116
136
  rspec (3.8.0)
117
137
  rspec-core (~> 3.8.0)
118
138
  rspec-expectations (~> 3.8.0)
@@ -126,14 +146,14 @@ GEM
126
146
  diff-lcs (>= 1.2.0, < 2.0)
127
147
  rspec-support (~> 3.8.0)
128
148
  rspec-support (3.8.0)
129
- rubocop (0.69.0)
149
+ rubocop (0.71.0)
130
150
  jaro_winkler (~> 1.5.1)
131
151
  parallel (~> 1.10)
132
152
  parser (>= 2.6)
133
153
  rainbow (>= 2.2.2, < 4.0)
134
154
  ruby-progressbar (~> 1.7)
135
155
  unicode-display_width (>= 1.4.0, < 1.7)
136
- ruby-progressbar (1.10.0)
156
+ ruby-progressbar (1.10.1)
137
157
  ruby_dep (1.5.0)
138
158
  sawyer (0.8.2)
139
159
  addressable (>= 2.3.5)
@@ -148,34 +168,43 @@ GEM
148
168
  hirb
149
169
  simplecov
150
170
  simplecov-html (0.10.2)
171
+ stackprof (0.2.13)
151
172
  thor (0.20.3)
152
173
  thread_safe (0.3.6)
153
- tzinfo (1.2.5)
174
+ tzinfo (1.2.7)
154
175
  thread_safe (~> 0.1)
155
176
  unicode-display_width (1.6.0)
177
+ yard (0.9.20)
156
178
 
157
179
  PLATFORMS
158
180
  ruby
159
181
 
160
182
  DEPENDENCIES
183
+ appraisal (~> 2.2.0)
184
+ approvals (~> 0.0.24)
161
185
  arel_toolkit!
162
186
  bundler (~> 2.0)
163
187
  database_cleaner (~> 1.7.0)
164
188
  dpl (~> 1.10.11)
165
- github_changelog_generator (~> 1.14.3)
189
+ github_changelog_generator (~> 1.15)
166
190
  guard (~> 2.15)
191
+ guard-rake (~> 1.0.0)
167
192
  guard-rspec (~> 4.7)
168
193
  guard-rubocop (~> 1.3.0)
194
+ memory_profiler (~> 0.9)
169
195
  pry
170
196
  pry-alias
197
+ pry-doc
171
198
  pry-nav
172
199
  pry-rescue
173
200
  pry-stack_explorer
174
- rake (~> 10.0)
201
+ rake (~> 13.0)
202
+ rake-compiler (~> 1.0)
175
203
  rspec (~> 3.8)
176
- rubocop (~> 0.69)
204
+ rubocop (= 0.71.0)
177
205
  simplecov (~> 0.16.1)
178
206
  simplecov-console (~> 0.4.2)
207
+ stackprof (~> 0.2)
179
208
 
180
209
  BUNDLED WITH
181
- 2.0.1
210
+ 2.1.4