Sha256: bc79f8a84fc8a7330ed9ec9a9404731c5aa0e119217ba0d4c93c075909f3bd21

Contents?: true

Size: 1.48 KB

Versions: 35

Compression:

Stored size: 1.48 KB

Contents

module GovukPublishingComponents
  class ComponentDoc
    attr_reader :id,
                :name,
                :description,
                :body,
                :accessibility_criteria,
                :accessibility_excluded_rules,
                :examples,
                :source

    def initialize(
      id,
      name,
      description,
      body,
      accessibility_criteria,
      accessibility_excluded_rules,
      examples,
      source
    )
      @id = id
      @name = name
      @description = description
      @body = body
      @accessibility_criteria = accessibility_criteria
      @accessibility_excluded_rules = accessibility_excluded_rules
      @examples = examples
      @source = source
    end

    def example
      examples.first
    end

    def other_examples
      examples.slice(1..-1)
    end

    def html_body
      govspeak_to_html(body) if body.present?
    end

    def html_accessibility_criteria
      govspeak_to_html(accessibility_criteria) if accessibility_criteria.present?
    end

    def partial_path
      if source == 'gem'
        "govuk_publishing_components/components/#{id}"
      else
        "#{GovukPublishingComponents::Config.component_directory_name}/#{id}"
      end
    end

    def github_search_url
      params = { q: "org:alphagov #{partial_path}", type: "Code" }
      "https://github.com/search?#{params.to_query}"
    end

  private

    def govspeak_to_html(govspeak)
      Govspeak::Document.new(govspeak).to_html
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
govuk_publishing_components-8.1.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-8.0.1 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-8.0.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-7.3.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-7.2.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-7.1.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-7.0.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-6.7.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-6.6.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-6.5.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-6.4.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-6.3.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-6.2.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-6.1.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-6.0.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-5.7.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-5.6.0 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-5.5.6 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-5.5.5 app/models/govuk_publishing_components/component_doc.rb
govuk_publishing_components-5.5.4 app/models/govuk_publishing_components/component_doc.rb