Sha256: 25d116cedf7c42b437425d710e8bff4c69e7249b6a8f4c51012516637d21714b

Contents?: true

Size: 799 Bytes

Versions: 1

Compression:

Stored size: 799 Bytes

Contents

# frozen_string_literal: true

module Bemer
  class PathResolver
    def initialize(view)
      @view = view
    end

    def resolve(name, partial = false) # rubocop:disable Metrics/AbcSize
      name         = name.to_s
      virtual_dir  = File.dirname(view.instance_variable_get(:@virtual_path))
      dirs         = [virtual_dir, File.dirname(name).delete('.')].reject(&:blank?)
      prefixes     = [File.join(*dirs).to_s]
      format       = File.extname(name).delete('.') unless partial
      basename     = File.basename(name, '.*')
      options      = { formats: [format.to_sym] } if format

      return name unless view.lookup_context.exists?(basename, prefixes, partial, **options.to_h)

      File.join(virtual_dir, name).to_s
    end

    protected

    attr_reader :view
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bemer-0.6.0 lib/bemer/path_resolver.rb