diff --git a/.rubocop.yml b/.rubocop.yml index 2ac81a644f1..4cca4d06f66 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -105,3 +105,6 @@ Documentation: Encoding: Enabled: false # don't require utf-8 encoding on every file + +MethodCalledOnDoEndBlock: + Enabled: true diff --git a/app/controllers/activation_keys_controller.rb b/app/controllers/activation_keys_controller.rb index 799dc97dfcb..767eb2f5997 100644 --- a/app/controllers/activation_keys_controller.rb +++ b/app/controllers/activation_keys_controller.rb @@ -346,8 +346,8 @@ def retrieve_all_pools next if product.nil? pool.provider_id = product.provider_id pool - end.compact - subscriptions = [] if subscriptions.nil? + end + subscriptions.compact! else subscriptions = [] end diff --git a/app/controllers/api/v1/distributors_controller.rb b/app/controllers/api/v1/distributors_controller.rb index 1751ab6c214..aefb3920bda 100644 --- a/app/controllers/api/v1/distributors_controller.rb +++ b/app/controllers/api/v1/distributors_controller.rb @@ -159,7 +159,8 @@ def report # rubocop:disable MethodLength :only => [:uuid, :name, :location, :created_at, :updated_at], :methods => [:environment, :organization, :compliance_color, :compliant_until, :custom_info] ) - end.flatten! + end + data.flatten! transforms = lambda do |r| r.organization = r.organization.name diff --git a/app/controllers/api/v1/systems_controller.rb b/app/controllers/api/v1/systems_controller.rb index b0e1ec99705..da62a0190db 100644 --- a/app/controllers/api/v1/systems_controller.rb +++ b/app/controllers/api/v1/systems_controller.rb @@ -311,7 +311,8 @@ def report # rubocop:disable MethodLength :only => [:uuid, :name, :location, :created_at, :updated_at], :methods => [:environment, :organization, :compliance_color, :compliant_until, :custom_info] ) - end.flatten! + end + data.flatten! transforms = lambda do |r| r.organization = r.organization.name diff --git a/app/controllers/consumers_controller_logic.rb b/app/controllers/consumers_controller_logic.rb index 43e33aae616..c098c3c7bf8 100644 --- a/app/controllers/consumers_controller_logic.rb +++ b/app/controllers/consumers_controller_logic.rb @@ -43,8 +43,8 @@ def available_subscriptions(cp_pools, organization = current_organization) pool.provider_id = product[0].provider_id pool - end.compact - subscriptions = [] if subscriptions.nil? + end + subscriptions.compact! else subscriptions = [] end diff --git a/app/controllers/content_search_controller.rb b/app/controllers/content_search_controller.rb index 1e206f6f1c7..40fa64909f8 100644 --- a/app/controllers/content_search_controller.rb +++ b/app/controllers/content_search_controller.rb @@ -117,7 +117,8 @@ def packages prod_rows = product_repo_map.collect do |product, reps| spanned_product_content(view, product, reps, 'package', package_ids) - end.flatten + end + prod_rows.flatten! if !prod_rows.empty? rows << view_hash[view.id] diff --git a/app/helpers/menu.rb b/app/helpers/menu.rb index a3675bf7735..ed3908f21de 100644 --- a/app/helpers/menu.rb +++ b/app/helpers/menu.rb @@ -55,9 +55,10 @@ def render_main_sub_menu def render_sublevel_menu(items = nil, prune = true) items ||= menu_main prune_menu(items) if prune - items.collect do |top_level| + result = items.collect do |top_level| render_navigation(:items => top_level[:items], :expand_all => true) if top_level[:items] - end.compact.join("").html_safe + end + result.compact.join("").html_safe end private diff --git a/app/lib/authorization_rules.rb b/app/lib/authorization_rules.rb index de3515dbc6f..d48ee67e74b 100644 --- a/app/lib/authorization_rules.rb +++ b/app/lib/authorization_rules.rb @@ -68,7 +68,7 @@ def build_bad_params_error_msg(bad_params, params) def check_hash_params(rule, params) rule = rule.with_indifferent_access params = params.with_indifferent_access - rule.keys.collect do |k| + result = rule.keys.collect do |k| if params[k] keys = params[k].keys - rule[k].collect { |r| r.to_s } if keys.empty? @@ -77,7 +77,8 @@ def check_hash_params(rule, params) {k => keys} end end - end.compact + end + result.compact end def check_array_params(rule, params) diff --git a/app/lib/glue/event.rb b/app/lib/glue/event.rb index cd25312bd61..fe7a8e63dff 100644 --- a/app/lib/glue/event.rb +++ b/app/lib/glue/event.rb @@ -56,7 +56,8 @@ def self.trigger(event_class, *args) message << step.error['backtrace'].join("\n") end message - end.join("\n") + end + log_message = log_message.join("\n") if execution_plan.failed_steps.any? ::Logging.logger['glue'].error(log_message) diff --git a/app/lib/util/support.rb b/app/lib/util/support.rb index 08a04da93ba..f8cbeed4db5 100644 --- a/app/lib/util/support.rb +++ b/app/lib/util/support.rb @@ -76,7 +76,8 @@ def self.diff_hash_params(rule, params) end end end - end.compact.flatten + end + diff_data = diff_data.compact.flatten return diff_data unless diff_data.nil? || diff_data.empty? stringify(params.keys) - stringify(rule.keys) diff --git a/app/models/erratum_rule.rb b/app/models/erratum_rule.rb index 301ff0c946e..bda26e91864 100644 --- a/app/models/erratum_rule.rb +++ b/app/models/erratum_rule.rb @@ -65,7 +65,8 @@ def generate_clauses(repo) # end.compact.flatten ids = parameters[:units].collect do |unit| unit[:id] - end.compact + end + ids.compact! {"id" => {"$in" => ids}} unless ids.empty? else diff --git a/app/models/glue/provider.rb b/app/models/glue/provider.rb index b3acceffd1e..178120ad8d2 100644 --- a/app/models/glue/provider.rb +++ b/app/models/glue/provider.rb @@ -60,9 +60,10 @@ def refresh_manifest(upstream, options = {}) def sync Rails.logger.debug "Syncing provider #{name}" - self.products.collect do |p| + syncs = self.products.collect do |p| p.sync - end.flatten + end + syncs.flatten end def synced? @@ -71,9 +72,10 @@ def synced? #get last sync status of all repositories in this provider def latest_sync_statuses - self.products.collect do |p| + statuses = self.products.collect do |p| p.latest_sync_statuses - end.flatten + end + statuses.flatten end # Get the most relavant status for all the repos in this Provider @@ -436,8 +438,8 @@ def index_subscriptions next if product.nil? pool.provider_id = product.provider_id # Set so it is saved into elastic search pool - end.compact - subscriptions = [] if subscriptions.nil? + end + subscriptions.compact! else subscriptions = [] end diff --git a/app/models/glue/pulp/errata.rb b/app/models/glue/pulp/errata.rb index 79b906ea017..cf9733739a5 100644 --- a/app/models/glue/pulp/errata.rb +++ b/app/models/glue/pulp/errata.rb @@ -43,9 +43,10 @@ def self.find_by_errata_id(id) def self.list_by_filter_clauses(clauses) errata = Katello.pulp_server.extensions.errata.search(::Errata::CONTENT_TYPE, :filters => clauses) if errata - errata.collect do |attrs| + result = errata.collect do |attrs| ::Errata.new(attrs) if attrs - end.compact + end + result.compact else [] end @@ -64,11 +65,12 @@ def initialize(params = {}, options = {}) end def package_filenames - self.pkglist.collect do |pkgs| + filenames = self.pkglist.collect do |pkgs| pkgs['packages'].collect do |pk| pk["filename"] end - end.flatten + end + filenames.flatten end def included_packages diff --git a/app/models/glue/pulp/package_group.rb b/app/models/glue/pulp/package_group.rb index 2827094cc40..50947c91f06 100644 --- a/app/models/glue/pulp/package_group.rb +++ b/app/models/glue/pulp/package_group.rb @@ -44,9 +44,7 @@ def initialize(params = {}, options = {}) [:default_package_names, :conditional_package_names, :optional_package_names, :mandatory_package_names].each do |attr| values = send(attr) - values = values.collect do |v| - v.split(", ") - end.flatten + values = values.collect { |v| v.split(", ") }.flatten send("#{attr}=", values) end diff --git a/app/models/glue/pulp/repo.rb b/app/models/glue/pulp/repo.rb index 710d1dbd909..c04519c77d3 100644 --- a/app/models/glue/pulp/repo.rb +++ b/app/models/glue/pulp/repo.rb @@ -266,7 +266,8 @@ def purge_empty_groups_errata # Remove all errata with no packages errata_to_delete = errata.collect do |erratum| erratum.errata_id if filenames.intersection(erratum.package_filenames).empty? - end.compact + end + errata_to_delete.compact! #do the errata remove call unless errata_to_delete.empty? @@ -276,7 +277,8 @@ def purge_empty_groups_errata # Remove all package groups with no packages package_groups_to_delete = package_groups.collect do |group| group.package_group_id if rpm_names.intersection(group.package_names).empty? - end.compact + end + package_groups_to_delete.compact! unless package_groups_to_delete.empty? unassociate_by_filter(FilterRule::PACKAGE_GROUP, {"id" => {"$in" => package_groups_to_delete}}) diff --git a/app/models/glue/pulp/repos.rb b/app/models/glue/pulp/repos.rb index 33ffee36c23..88826d0cdd4 100644 --- a/app/models/glue/pulp/repos.rb +++ b/app/models/glue/pulp/repos.rb @@ -109,21 +109,23 @@ def has_package?(id) end def find_packages_by_name(env, name) - self.repos(env).collect do |repo| + packages = self.repos(env).collect do |repo| repo.find_packages_by_name(name).collect do |p| p[:repo_id] = repo.id p end - end.flatten(1) + end + packages.flatten(1) end def find_packages_by_nvre(env, name, version, release, epoch) - self.repos(env).collect do |repo| + packages = self.repos(env).collect do |repo| repo.find_packages_by_nvre(name, version, release, epoch).collect do |p| p[:repo_id] = repo.id p end - end.flatten(1) + end + packages.flatten(1) end def distributions(env) @@ -136,9 +138,10 @@ def distributions(env) end def get_distribution(env, id) - self.repos(env).map do |repo| + distribution = self.repos(env).map do |repo| repo.distributions.find_all {|d| d.id == id } - end.flatten(1) + end + distribution.flatten(1) end def find_latest_packages_by_name(env, name) @@ -148,7 +151,8 @@ def find_latest_packages_by_name(env, name) pack[:repo_id] = repo.id pack end - end.flatten(1) + end + packs.flatten!(1) Util::Package.find_latest_packages packs end @@ -166,9 +170,10 @@ def promoted_to?(target_env) def sync Rails.logger.debug "Syncing product #{self.label}" - self.repos(library).collect do |r| + repos = self.repos(library).collect do |r| r.sync - end.flatten + end + repos.flatten end def synced? diff --git a/app/models/kt_environment.rb b/app/models/kt_environment.rb index aba3ab64b29..c07d6e6c9a4 100644 --- a/app/models/kt_environment.rb +++ b/app/models/kt_environment.rb @@ -240,21 +240,23 @@ def package_group_categories(search_args = {}) end def find_packages_by_name(name) - self.products.collect do |prod| + products = self.products.collect do |prod| prod.find_packages_by_name(self, name).collect do |p| p[:product_id] = prod.cp_id p end - end.flatten(1) + end + products.flatten(1) end def find_packages_by_nvre(name, version, release, epoch) - self.products.collect do |prod| + products = self.products.collect do |prod| prod.find_packages_by_nvre(self, name, version, release, epoch).collect do |p| p[:product_id] = prod.cp_id p end - end.flatten(1) + end + products.flatten(1) end def find_latest_packages_by_name(name) @@ -264,15 +266,17 @@ def find_latest_packages_by_name(name) pack[:product_id] = prod.cp_id pack end - end.flatten(1) + end + packs.flatten!(1) Util::Package.find_latest_packages packs end def get_distribution(id) - self.products.collect do |prod| + distribution = self.products.collect do |prod| prod.get_distribution(self, id) - end.flatten(1) + end + distribution.flatten(1) end def unset_users_with_default diff --git a/app/models/promotion_changeset.rb b/app/models/promotion_changeset.rb index 930a29485e2..00229884677 100644 --- a/app/models/promotion_changeset.rb +++ b/app/models/promotion_changeset.rb @@ -99,9 +99,10 @@ def promote_content(notify = false) end def promote_views(from_env, to_env, views) - views.collect do |view| + views = views.collect do |view| view.promote(from_env, to_env) - end.flatten + end + views.flatten end def update_view_cp_content(to_env) diff --git a/app/models/task_status.rb b/app/models/task_status.rb index c1c39a4f107..8423c66e055 100644 --- a/app/models/task_status.rb +++ b/app/models/task_status.rb @@ -302,9 +302,10 @@ def rmi_error_description stacktrace.split("(").first end elsif errors =~ /^\[.*,.*\]$/m - errors.split(",").map do |error| + result = errors.split(",").map do |error| error.gsub(/^\W+|\W+$/, "") - end.join("\n") + end + result.join("\n") else errors end diff --git a/script/check-gettext.rb b/script/check-gettext.rb index d9aafa38ac7..d26c32c4fb8 100755 --- a/script/check-gettext.rb +++ b/script/check-gettext.rb @@ -65,7 +65,8 @@ end end [string, suffix] - end.compact + end + gettext_strings.compact rescue ArgumentError next # we can't scan binary files, skipping end