diff options
author | Nick Thomas <nick@gitlab.com> | 2018-08-14 22:29:59 +0100 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2018-08-15 07:38:18 +0100 |
commit | d3490f6998b13a6f74af9b6f35a28c115a25143e (patch) | |
tree | fded45a6210b94d9ca772cc13529078c6dccaa63 /app/finders | |
parent | ffd164d27f674b554fdffbffa828a9715c93ee60 (diff) | |
download | gitlab-ce-d3490f6998b13a6f74af9b6f35a28c115a25143e.tar.gz |
Introduce a LicenseTemplate model and LicenseTemplateFinder helper
Diffstat (limited to 'app/finders')
-rw-r--r-- | app/finders/license_template_finder.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/finders/license_template_finder.rb b/app/finders/license_template_finder.rb new file mode 100644 index 00000000000..fad33f0eca2 --- /dev/null +++ b/app/finders/license_template_finder.rb @@ -0,0 +1,36 @@ +# LicenseTemplateFinder +# +# Used to find license templates, which may come from a variety of external +# sources +# +# Arguments: +# popular: boolean. When set to true, only "popular" licenses are shown. When +# false, all licenses except popular ones are shown. When nil (the +# default), *all* licenses will be shown. +class LicenseTemplateFinder + attr_reader :params + + def initialize(params = {}) + @params = params + end + + def execute + Licensee::License.all(featured: popular_only?).map do |license| + LicenseTemplate.new( + id: license.key, + name: license.name, + nickname: license.nickname, + category: (license.featured? ? :Popular : :Other), + content: license.content, + url: license.url, + meta: license.meta + ) + end + end + + private + + def popular_only? + params.fetch(:popular, nil) + end +end |