summaryrefslogtreecommitdiff
path: root/app/finders/packages/package_file_finder.rb
blob: 55dc4be20019bb4379777b74f313db03c8db7c60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# frozen_string_literal: true
class Packages::PackageFileFinder
  attr_reader :package, :file_name, :params

  def initialize(package, file_name, params = {})
    @package = package
    @file_name = file_name
    @params = params
  end

  def execute
    package_files.last
  end

  def execute!
    package_files.last!
  end

  private

  def package_files
    files = if Feature.enabled?(:packages_installable_package_files, default_enabled: :yaml)
              package.installable_package_files
            else
              package.package_files
            end

    by_file_name(files)
  end

  def by_file_name(files)
    if params[:with_file_name_like]
      files.with_file_name_like(file_name)
    else
      files.with_file_name(file_name)
    end
  end
end