gitlab-org--gitlab-foss/spec/rubocop/cop
Yorick Peterse 8a72f5c427
Added FromUnion to easily select from a UNION
This commit adds the module `FromUnion`, which provides the class method
`from_union`. This simplifies the process of selecting data from the
result of a UNION, and reduces the likelihood of making mistakes. As a
result, instead of this:

    union = Gitlab::SQL::Union.new([foo, bar])

    Foo.from("(#{union.to_sql}) #{Foo.table_name}")

We can now write this instead:

    Foo.from_union([foo, bar])

This commit also includes some changes to make this new setup work
properly. For example, a bug in Rails 4
(https://github.com/rails/rails/issues/24193) would break the use of
`from("sub-query-here").includes(:relation)` in certain cases. There was
also a CI query which appeared to repeat a lot of conditions from an
outer query on an inner query, which isn't necessary.

Finally, we include a RuboCop cop to ensure developers use this new
module, instead of using Gitlab::SQL::Union directly.

Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/51307
2018-09-17 12:39:43 +02:00
..
code_reuse Added RuboCop cops to enforce code reuse rules 2018-09-11 15:00:18 +02:00
gitlab Added FromUnion to easily select from a UNION 2018-09-17 12:39:43 +02:00
migration Add rubocop check for add_reference to require index. 2018-08-08 23:30:48 +02:00
rspec
avoid_break_from_strong_memoize_spec.rb
avoid_return_from_blocks_spec.rb
destroy_all_spec.rb Whitelist existing destroy_all offenses 2018-08-16 17:29:37 +02:00
include_sidekiq_worker_spec.rb
line_break_around_conditional_block_spec.rb Fix LineBreakAroundConditionalBlock cop for a conditional after rescue 2018-09-05 09:34:11 -07:00
prefer_class_methods_over_module_spec.rb Minor renames for clarity 2018-08-29 16:56:34 +02:00
project_path_helper_spec.rb
ruby_interpolation_in_translation_spec.rb Reject ruby interpolation in externalized strings 2018-08-25 18:43:21 +02:00
sidekiq_options_queue_spec.rb