Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/programming_language.rb')
-rw-r--r--app/models/programming_language.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/programming_language.rb b/app/models/programming_language.rb
index 06e3034e56a..4156c672518 100644
--- a/app/models/programming_language.rb
+++ b/app/models/programming_language.rb
@@ -10,4 +10,22 @@ class ProgrammingLanguage < ApplicationRecord
sanitized_names = names.map(&method(:sanitize_sql_like))
where(arel_table[:name].matches_any(sanitized_names))
end
+
+ def self.most_popular(limit = 25)
+ sql = <<~SQL
+ SELECT
+ mcv
+ FROM
+ pg_stats
+ CROSS JOIN LATERAL
+ unnest(most_common_vals::text::int[]) mt(mcv)
+ WHERE
+ tablename = 'repository_languages' and attname='programming_language_id'
+ LIMIT
+ $1
+ SQL
+ ids = connection.exec_query(sql, 'SQL', [limit]).rows.flatten
+
+ where(id: ids).order(:name)
+ end
end