arel_toolkit 0.4.0 → 0.4.1

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/develop.yml +86 -0
  3. data/.github/workflows/master.yml +67 -0
  4. data/.gitignore +4 -0
  5. data/CHANGELOG.md +35 -3
  6. data/Gemfile.lock +22 -15
  7. data/Guardfile +4 -0
  8. data/README.md +11 -8
  9. data/Rakefile +11 -1
  10. data/arel_toolkit.gemspec +4 -1
  11. data/ext/pg_result_init/extconf.rb +52 -0
  12. data/ext/pg_result_init/pg_result_init.c +138 -0
  13. data/ext/pg_result_init/pg_result_init.h +6 -0
  14. data/gemfiles/arel_gems.gemfile.lock +7 -0
  15. data/gemfiles/default.gemfile.lock +7 -0
  16. data/lib/arel/enhance.rb +1 -0
  17. data/lib/arel/enhance/context_enhancer/arel_table.rb +18 -1
  18. data/lib/arel/enhance/node.rb +25 -6
  19. data/lib/arel/enhance/query.rb +2 -0
  20. data/lib/arel/enhance/query_methods.rb +23 -0
  21. data/lib/arel/enhance/visitor.rb +4 -2
  22. data/lib/arel/extensions.rb +7 -2
  23. data/lib/arel/extensions/active_model_attribute_with_cast_value.rb +22 -0
  24. data/lib/arel/extensions/active_record_relation_query_attribute.rb +22 -0
  25. data/lib/arel/extensions/active_record_type_caster_connection.rb +7 -0
  26. data/lib/arel/extensions/attributes_attribute.rb +47 -0
  27. data/lib/arel/extensions/bind_param.rb +15 -0
  28. data/lib/arel/extensions/coalesce.rb +17 -3
  29. data/lib/arel/extensions/exists.rb +59 -0
  30. data/lib/arel/extensions/function.rb +2 -1
  31. data/lib/arel/extensions/greatest.rb +17 -3
  32. data/lib/arel/extensions/insert_statement.rb +2 -2
  33. data/lib/arel/extensions/least.rb +17 -3
  34. data/lib/arel/extensions/node.rb +10 -0
  35. data/lib/arel/extensions/range_function.rb +10 -2
  36. data/lib/arel/extensions/select_core.rb +1 -0
  37. data/lib/arel/extensions/tree_manager.rb +5 -0
  38. data/lib/arel/middleware.rb +5 -1
  39. data/lib/arel/middleware/active_record_extension.rb +13 -0
  40. data/lib/arel/middleware/chain.rb +76 -21
  41. data/lib/arel/middleware/database_executor.rb +68 -0
  42. data/lib/arel/middleware/postgresql_adapter.rb +41 -5
  43. data/lib/arel/middleware/railtie.rb +6 -2
  44. data/lib/arel/middleware/result.rb +170 -0
  45. data/lib/arel/middleware/to_sql_executor.rb +15 -0
  46. data/lib/arel/middleware/to_sql_middleware.rb +33 -0
  47. data/lib/arel/sql_to_arel/pg_query_visitor.rb +34 -33
  48. data/lib/arel/sql_to_arel/result.rb +19 -2
  49. data/lib/arel/transformer.rb +2 -1
  50. data/lib/arel/transformer/prefix_schema_name.rb +183 -0
  51. data/lib/arel/transformer/remove_active_record_info.rb +2 -4
  52. data/lib/arel/transformer/replace_table_with_subquery.rb +31 -0
  53. data/lib/arel_toolkit.rb +6 -1
  54. data/lib/arel_toolkit/version.rb +1 -1
  55. metadata +55 -10
  56. data/.travis.yml +0 -34
  57. data/lib/arel/extensions/generate_series.rb +0 -9
  58. data/lib/arel/extensions/rank.rb +0 -9
  59. data/lib/arel/transformer/add_schema_to_table.rb +0 -26
data/.travis.yml DELETED
@@ -1,34 +0,0 @@
1
- ---
2
- env:
3
- global:
4
- - CC_TEST_REPORTER_ID=64634aec08aacb7cba69b6eb1f4c814228cffe9d167dcb208dcc6d49a4c5c493
5
- sudo: false
6
- language: ruby
7
- cache: bundler
8
- notifications:
9
- email: false
10
- rvm:
11
- - 2.5.3
12
- addons:
13
- postgresql: "9.5"
14
- before_script:
15
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
16
- - chmod +x ./cc-test-reporter
17
- - ./cc-test-reporter before-build
18
- before_install:
19
- - GEM_HOME=vendor/bundle/ruby/2.5.0 gem install bundler -v 2.0.1
20
- install:
21
- - GEM_HOME=vendor/bundle/ruby/2.5.0 bundle install --jobs=3 --retry=3 --deployment --path=${BUNDLE_PATH:-vendor/bundle}
22
- - GEM_HOME=vendor/bundle/ruby/2.5.0 bundle exec appraisal install
23
- script:
24
- - GEM_HOME=vendor/bundle/ruby/2.5.0 bundle exec appraisal rspec
25
- after_script:
26
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
27
- deploy:
28
- provider: pages
29
- skip_cleanup: true
30
- github_token: $GITHUB_TOKEN
31
- local_dir: ./coverage
32
- keep_history: true
33
- on:
34
- branch: master
@@ -1,9 +0,0 @@
1
- module Arel
2
- module Nodes
3
- class GenerateSeries < Arel::Nodes::NamedFunction
4
- def initialize(args)
5
- super 'GENERATE_SERIES', args
6
- end
7
- end
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- module Arel
2
- module Nodes
3
- class Rank < Arel::Nodes::NamedFunction
4
- def initialize(args)
5
- super 'RANK', args
6
- end
7
- end
8
- end
9
- end
@@ -1,26 +0,0 @@
1
- module Arel
2
- module Transformer
3
- class AddSchemaToTable
4
- attr_reader :schema_name
5
-
6
- def initialize(schema_name)
7
- @schema_name = schema_name
8
- end
9
-
10
- # https://github.com/mvgijssel/arel_toolkit/issues/110
11
- def call(arel, _context)
12
- tree = Arel.enhance(arel)
13
-
14
- tree.query(
15
- class: Arel::Table,
16
- schema_name: nil,
17
- context: { range_variable: true },
18
- ).each do |node|
19
- node['schema_name'].replace(schema_name)
20
- end
21
-
22
- tree.object
23
- end
24
- end
25
- end
26
- end