Class: GovukPublishingComponents::ComponentGuideController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- GovukPublishingComponents::ComponentGuideController
- Defined in:
- app/controllers/govuk_publishing_components/component_guide_controller.rb
Constant Summary collapse
- MATCH_COMPONENTS =
/(?<=govuk_publishing_components\/components\/)[\/a-zA-Z_-]+(?=['"])/
Instance Method Summary collapse
- #components_in_use_js ⇒ Object
- #components_in_use_sass ⇒ Object
- #example ⇒ Object
- #index ⇒ Object
- #preview ⇒ Object
- #show ⇒ Object
Instance Method Details
#components_in_use_js ⇒ Object
76 77 78 79 80 81 82 83 84 |
# File 'app/controllers/govuk_publishing_components/component_guide_controller.rb', line 76 def components_in_use_js additional_files = "//= require govuk_publishing_components/lib\n" components = find_all_partials_in(get_used_component_names) components.map { |component| "//= require govuk_publishing_components/components/#{component.gsub('_', '-')}" if component_has_js_file(component.gsub("_", "-")) }.compact.uniq.sort.join("\n").squeeze("\n").prepend(additional_files) end |
#components_in_use_sass ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'app/controllers/govuk_publishing_components/component_guide_controller.rb', line 65 def components_in_use_sass additional_files = "@import 'govuk_publishing_components/govuk_frontend_support';\n" additional_files << "@import 'govuk_publishing_components/component_support';\n" components = find_all_partials_in(get_used_component_names) components.map { |component| "@import 'govuk_publishing_components/components/#{component.gsub('_', '-')}';" if component_has_sass_file(component.gsub("_", "-")) }.compact.uniq.sort.join("\n").squeeze("\n").prepend(additional_files) end |
#example ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/controllers/govuk_publishing_components/component_guide_controller.rb', line 23 def example @component_doc = component_docs.get(params[:component]) @component_example = @component_doc.examples.find { |f| f.id == params[:example] } @guide_breadcrumbs = [ , (@component_doc, @component_example), { title: @component_example.name, }, ] end |
#index ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'app/controllers/govuk_publishing_components/component_guide_controller.rb', line 7 def index @application_path = Rails.root @component_gem_path = Gem.loaded_specs["govuk_publishing_components"].full_gem_path @component_docs = component_docs.all @gem_component_docs = gem_component_docs.all @used_components = used_components_names.get_component_docs @unused_components = unused_components_names.get_component_docs @components_in_use_sass = components_in_use_sass @components_in_use_js = components_in_use_js end |
#preview ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'app/controllers/govuk_publishing_components/component_guide_controller.rb', line 35 def preview @component_examples = [] @component_doc = component_docs.get(params[:component]) @all_components = true if params[:all_components] == "true" @all_gem_component_docs = [] @all_app_component_docs = [] if @all_components @component_gem_path = Gem.loaded_specs["govuk_publishing_components"].full_gem_path # Remove components without CSS, and the current component. The current component is excluded as the view will handle rendering its CSS. @all_gem_component_docs = gem_component_docs.all.reject { |component| !component_has_sass_file(component.id.gsub("_", "-")) || component.id == @component_doc.id } @all_app_component_docs = component_docs.all.reject { |component| !app_component_has_sass_file(component.id.gsub("_", "-")) || component.id == @component_doc.id } @current_component_id = @component_doc.id.gsub("_", "-") @render_component_first = params[:render_component_first] == "true" unless !component_has_sass_file(@current_component_id) && !app_component_has_sass_file(@current_component_id) end @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 @percy = true if params[:percy] == "true" @preview_title = preview_title(@component_doc, @component_examples, @all_components, @render_component_first, @percy) end |
#show ⇒ Object
18 19 20 21 |
# File 'app/controllers/govuk_publishing_components/component_guide_controller.rb', line 18 def show @component_doc = component_docs.get(params[:component]) @guide_breadcrumbs = [, (@component_doc)] end |