Sha256: 22b749170874feb61bcaa724ac1bdc85801e00701a6ebc9ac4fd4da1abc32fb8

Contents?: true

Size: 1.9 KB

Versions: 232

Compression:

Stored size: 1.9 KB

Contents

module GovukPublishingComponents
  class ComponentGuideController < GovukPublishingComponents::ApplicationController
    append_view_path File.join(Rails.root, "app", "views", GovukPublishingComponents::Config.component_directory_name)

    def index
      @component_docs = component_docs.all
      @gem_component_docs = gem_component_docs.all
    end

    def show
      @component_doc = component_docs.get(params[:component])
      @guide_breadcrumbs = [index_breadcrumb, component_breadcrumb(@component_doc)]
    end

    def example
      @component_doc = component_docs.get(params[:component])
      @component_example = @component_doc.examples.find { |f| f.id == params[:example] }
      @guide_breadcrumbs = [
                             index_breadcrumb,
                             component_breadcrumb(@component_doc, @component_example),
                             {
                               title: @component_example.name
                             }
                           ]
    end

    def preview
      @component_examples = []
      @component_doc = component_docs.get(params[:component])
      @preview = true

      if params[:example].present?
        @component_examples.push(@component_doc.examples.find { |f| f.id == params[:example] })
      else
        @component_examples = @component_doc.examples
      end
    end

  private

    def component_docs
      @component_docs ||= ComponentDocs.new
    end

    def gem_component_docs
      @gem_component_docs ||= ComponentDocs.new(gem_components: true)
    end

    def index_breadcrumb
      {
        title: GovukPublishingComponents::Config.component_guide_title,
        url: component_guide_path
      }
    end

    def component_breadcrumb(component_doc, component_example = nil)
      Hash.new.tap do |h|
        h[:title] = component_doc.name
        h[:url] = component_doc_path(component_doc.id) if component_example
      end
    end
  end
end

Version data entries

232 entries across 232 versions & 1 rubygems

Version Path
govuk_publishing_components-21.25.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.24.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.23.1 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.23.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.22.2 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.22.1 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.22.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.21.3 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.21.2 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.21.1 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.21.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.20.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.19.1 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.19.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.18.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.17.0 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.16.3 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.16.2 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.16.1 app/controllers/govuk_publishing_components/component_guide_controller.rb
govuk_publishing_components-21.16.0 app/controllers/govuk_publishing_components/component_guide_controller.rb