Sha256: eb8dc72cf1af30d0af308d1fca128b325a24188dcc9a4a59f9d11ebd3d97b452

Contents?: true

Size: 1.9 KB

Versions: 6

Compression:

Stored size: 1.9 KB

Contents

require 'padrino-helpers'

module Middleman
  module MetaPages
    # View class for a sitemap resource
    class SitemapResource
      include Padrino::Helpers::OutputHelpers
      include Padrino::Helpers::TagHelpers

      def initialize(resource)
        @resource = resource
      end

      def render
        classes = 'resource-details'
        classes << ' ignored' if @resource.ignored?
        content_tag :div, class: classes do
          content_tag :table do
            content = ''
            resource_properties.each do |label, value|
              content << content_tag(:tr) do
                row_content = ''
                row_content << content_tag(:th, label)
                row_content << content_tag(:td, value)
                row_content.html_safe
              end
            end
            content.html_safe
          end
        end
      end

      # A hash of label to value for all the properties we want to display
      def resource_properties
        props = {}
        props['Path'] = @resource.path

        build_path = @resource.destination_path
        build_path = 'Not built' if ignored?
        props['Build Path'] = build_path if @resource.path != build_path
        props['URL'] = content_tag(:a, @resource.url, href: @resource.url) unless ignored?
        props['Source File'] = @resource.source_file ? @resource.source_file[:full_path].to_s.sub(/^#{Regexp.escape(ENV['MM_ROOT'] + '/')}/, '') : 'Dynamic'

        data = @resource.data
        props['Data'] = data.inspect unless data.empty?

        options = @resource.options
        props['Options'] = options.inspect unless options.empty?

        locals = @resource.locals.keys
        props['Locals'] = locals.join(', ') unless locals.empty?

        props
      end

      def ignored?
        @resource.ignored?
      end

      def css_classes
        ['resource'].concat(ignored? ? ['ignored'] : [])
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
middleman-core-4.0.0.beta.2 lib/middleman-core/meta_pages/sitemap_resource.rb
middleman-core-4.0.0.beta.1 lib/middleman-core/meta_pages/sitemap_resource.rb
middleman-core-4.0.0.alpha.6 lib/middleman-core/meta_pages/sitemap_resource.rb
middleman-core-4.0.0.alpha.5 lib/middleman-core/meta_pages/sitemap_resource.rb
middleman-core-4.0.0.alpha.4 lib/middleman-core/meta_pages/sitemap_resource.rb
middleman-core-4.0.0.alpha.3 lib/middleman-core/meta_pages/sitemap_resource.rb