class Bridgetown::Resource::Destination
Attributes
output_ext[RW]
@return [String]
resource[RW]
@return [Bridgetown::Resource::Base]
Public Class Methods
new(resource)
click to toggle source
@param resource [Bridgetown::Resource::Base]
# File lib/bridgetown-core/resource/destination.rb, line 13 def initialize(resource) @resource = resource @output_ext = resource.transformer.final_ext end
Public Instance Methods
absolute_url()
click to toggle source
# File lib/bridgetown-core/resource/destination.rb, line 18 def absolute_url Addressable::URI.parse( resource.site.config.url.to_s + relative_url ).normalize.to_s end
final_ext()
click to toggle source
# File lib/bridgetown-core/resource/destination.rb, line 29 def final_ext output_ext || resource.extname end
output_path()
click to toggle source
# File lib/bridgetown-core/resource/destination.rb, line 33 def output_path path = URL.unescape_path(relative_url) if resource.site.base_path.present? path = path.delete_prefix resource.site.base_path(strip_slash_only: true) end path = resource.site.in_dest_dir(path) path = File.join(path, "index.html") if relative_url.end_with? "/" path end
relative_url()
click to toggle source
# File lib/bridgetown-core/resource/destination.rb, line 24 def relative_url @processor ||= PermalinkProcessor.new(resource) @processor.transform end
write(output)
click to toggle source
# File lib/bridgetown-core/resource/destination.rb, line 43 def write(output) path = output_path FileUtils.mkdir_p(File.dirname(path)) Bridgetown.logger.debug "Writing:", path File.write(path, output, mode: "wb") end