# frozen_string_literal: true

# Este campo representa el archivo donde se almacenan los datos
class MetadataPath < MetadataTemplate
  # :label en este caso es el idioma/colección
  #
  # @return [String]
  def default_value
    File.join(site.path, "_#{lang}", "#{date}-#{slug}#{ext}")
  end

  # La ruta del archivo según Jekyll
  #
  # @return [String]
  def document_value
    document.path
  end

  def value
    self[:value] = default_value
  end
  alias absolute value
  alias to_s value

  def relative
    Pathname.new(value).relative_path_from(Pathname.new(site.path)).to_s
  end

  def basename
    File.basename(value, ext)
  end

  # No lo aceptamos en los parámetros
  def to_param; end

  private

  def ext
    document.data['ext'].blank? ? '.markdown' : document.data['ext']
  end

  def slug
    post.slug.value
  end

  def date
    post.date.value.strftime('%F')
  end
end