From ff94e64ee63b9238828ce568e311cf54a7d9c0ca Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Sat, 9 Nov 2019 13:08:28 +0900 Subject: [PATCH 1/5] info --analytics handle days and category args --- Library/Homebrew/cmd/info.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index a17980a22c..fd26d134a0 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -369,6 +369,8 @@ module Homebrew value.each do |days, results| days = days.to_i if full_analytics + next if args.days.present? && args.days&.to_i != days + next if args.category.present? && args.category != category analytics_table(category, days, results) else total_count = results.values.inject("+") From 8244a869f63f7d10e8533df7705a7fec5d596315 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Sat, 9 Nov 2019 13:11:55 +0900 Subject: [PATCH 2/5] add empty line after guard clause --- Library/Homebrew/cmd/info.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index fd26d134a0..1e29f7a30a 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -371,6 +371,7 @@ module Homebrew if full_analytics next if args.days.present? && args.days&.to_i != days next if args.category.present? && args.category != category + analytics_table(category, days, results) else total_count = results.values.inject("+") From 1afd271a1332dcd3cc9801242b2dff1a5563b0d5 Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Wed, 13 Nov 2019 22:51:57 +0900 Subject: [PATCH 3/5] check whether args is valid whether args days is in valid_days and args category is in valid_categories --- Library/Homebrew/cmd/info.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 1e29f7a30a..384852de37 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -357,6 +357,8 @@ module Homebrew end def output_formula_analytics(f) + valid_days = %w[30 90 365] + valid_categories = %w[install install-on-request build-error] json = formulae_api_json("formula/#{f}.json") return if json.blank? || json["analytics"].blank? @@ -369,8 +371,15 @@ module Homebrew value.each do |days, results| days = days.to_i if full_analytics - next if args.days.present? && args.days&.to_i != days - next if args.category.present? && args.category != category + if args.days.present? + raise UsageError, "day must be one of #{valid_days.join(", ")}" unless valid_days.include?(args.days) + next if args.days&.to_i != days + end + + if args.category.present? + raise UsageError, "category must be one of #{valid_categories.join(", ")}" unless valid_categories.include?(args.category) + next if args.category.gsub('-','_') != category + end analytics_table(category, days, results) else From af59951c0ea522a48321baccf2aa6ed77fd81e7d Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Wed, 13 Nov 2019 23:00:32 +0900 Subject: [PATCH 4/5] fix style --- Library/Homebrew/cmd/info.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 384852de37..444edd711b 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -377,8 +377,10 @@ module Homebrew end if args.category.present? - raise UsageError, "category must be one of #{valid_categories.join(", ")}" unless valid_categories.include?(args.category) - next if args.category.gsub('-','_') != category + unless valid_categories.include?(args.category) + raise UsageError, "category must be one of #{valid_categories.join(", ")}" + end + next if args.category.tr("-", "_") != category end analytics_table(category, days, results) From 1ab86acb0fb13bb9f52189a2ca410c461ce084fc Mon Sep 17 00:00:00 2001 From: hyuraku <32809703+hyuraku@users.noreply.github.com> Date: Fri, 15 Nov 2019 01:25:54 +0900 Subject: [PATCH 5/5] move methods to analytics_table function --- Library/Homebrew/cmd/info.rb | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/cmd/info.rb b/Library/Homebrew/cmd/info.rb index 444edd711b..6d43555563 100644 --- a/Library/Homebrew/cmd/info.rb +++ b/Library/Homebrew/cmd/info.rb @@ -231,6 +231,18 @@ module Homebrew end def analytics_table(category, days, results, os_version: false, cask_install: false) + valid_days = %w[30 90 365] + if days.present? + raise UsageError, "day must be one of #{valid_days.join(", ")}" unless valid_days.include?(days.to_s) + end + + valid_categories = %w[install install-on-request cask-install build-error os-version] + if category.present? + unless valid_categories.include?(category.tr("_", "-")) + raise UsageError, "category must be one of #{valid_categories.join(", ")}" + end + end + oh1 "#{category} (#{days} days)" total_count = results.values.inject("+") formatted_total_count = format_count(total_count) @@ -357,8 +369,6 @@ module Homebrew end def output_formula_analytics(f) - valid_days = %w[30 90 365] - valid_categories = %w[install install-on-request build-error] json = formulae_api_json("formula/#{f}.json") return if json.blank? || json["analytics"].blank? @@ -372,14 +382,10 @@ module Homebrew days = days.to_i if full_analytics if args.days.present? - raise UsageError, "day must be one of #{valid_days.join(", ")}" unless valid_days.include?(args.days) next if args.days&.to_i != days end if args.category.present? - unless valid_categories.include?(args.category) - raise UsageError, "category must be one of #{valid_categories.join(", ")}" - end next if args.category.tr("-", "_") != category end