govuk_publishing_components 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. checksums.yaml +7 -0
  2. data/LICENCE.md +20 -0
  3. data/README.md +89 -0
  4. data/Rakefile +35 -0
  5. data/app/assets/config/govuk_publishing_components_manifest.js +2 -0
  6. data/app/assets/javascripts/govuk_publishing_components/application.js +13 -0
  7. data/app/assets/stylesheets/govuk_publishing_components/application.scss +7 -0
  8. data/app/assets/stylesheets/govuk_publishing_components/component_guide.scss +119 -0
  9. data/app/controllers/govuk_publishing_components/application_controller.rb +14 -0
  10. data/app/controllers/govuk_publishing_components/component_guide_controller.rb +42 -0
  11. data/app/helpers/govuk_publishing_components/application_helper.rb +4 -0
  12. data/app/models/govuk_publishing_components/application_record.rb +5 -0
  13. data/app/models/govuk_publishing_components/component_doc.rb +34 -0
  14. data/app/models/govuk_publishing_components/component_fixture.rb +15 -0
  15. data/app/views/govuk_publishing_components/component_guide/component_doc/_call.html.erb +3 -0
  16. data/app/views/govuk_publishing_components/component_guide/component_doc/_preview.html.erb +3 -0
  17. data/app/views/govuk_publishing_components/component_guide/fixture.html.erb +12 -0
  18. data/app/views/govuk_publishing_components/component_guide/index.html.erb +14 -0
  19. data/app/views/govuk_publishing_components/component_guide/show.html.erb +32 -0
  20. data/app/views/layouts/govuk_publishing_components/application.html.erb +28 -0
  21. data/config/routes.rb +5 -0
  22. data/lib/govuk_publishing_components.rb +6 -0
  23. data/lib/govuk_publishing_components/config.rb +16 -0
  24. data/lib/govuk_publishing_components/engine.rb +6 -0
  25. data/lib/govuk_publishing_components/version.rb +3 -0
  26. data/lib/tasks/govuk_publishing_components_tasks.rake +4 -0
  27. metadata +187 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 432ddfb59f2de355daa87fff722615967a079003
4
+ data.tar.gz: 32114064077b71fdbd54f49eac7834aa2a7d30e4
5
+ SHA512:
6
+ metadata.gz: 21daca8cce1cfa9a037e0a6018e067b8567983d2b383834f42a9496d49e095b72477226b07997cad2c173cad25b73ef0063ce7e8c8f3b860128eca80609be220
7
+ data.tar.gz: 8054b5dddc794c7a5de79ca31ba855a1b6f97bd37d0187489106b7bb038d5677eb9e25d09dcf5a1702f705ee25c6a25eade34328ddf72001d3fcc4fa4d5cb687
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2017 Crown Copyright (Government Digital Service)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,89 @@
1
+ # GOV.UK Publishing Components
2
+
3
+ A gem to document components in GOV.UK frontend applications.
4
+
5
+ ## Usage
6
+
7
+ Add this line to your application's Gemfile in the [development and test groups](http://bundler.io/v1.12/groups.html#grouping-your-dependencies):
8
+
9
+ ```ruby
10
+ gem 'govuk_publishing_components'
11
+ ```
12
+
13
+ And then execute:
14
+ ```bash
15
+ $ bundle
16
+ ```
17
+
18
+ ### Mount the component guide
19
+
20
+ Mount the component guide in your application:
21
+
22
+ ```ruby
23
+ # config/routes.rb
24
+ unless Rails.env.production?
25
+ mount GovukPublishingComponents::Engine, at: "/component-guide"
26
+ end
27
+ ```
28
+
29
+ If your application was government-frontend the component guide would be at:
30
+ http://government-frontend.dev.gov.uk/component-guide
31
+
32
+ ### Write components in your application
33
+
34
+ Components are partials included by your application:
35
+ ```erb
36
+ <%= render 'components/description', { description: "A description is one or two leading sentences." } %>
37
+ ```
38
+
39
+ `govuk_publishing_components` expects the following component structure:
40
+
41
+ * a partial view in `app/views/components` - The template logic and markup, also defines the arguments expected. Filename must begin with an underscore.
42
+ * a documentation file in `app/views/components/docs` - a `.yml` per component, describing the component and containing fixture data.
43
+ * a SCSS module in `app/assets/stylesheets/components` - The styling of the component
44
+ * [a Javascript module](https://github.com/alphagov/govuk_frontend_toolkit/blob/master/docs/javascript.md#modules) in `app/assets/javascripts/components` - JS behaviour of the component
45
+ * a unit test in `test/components` - testing the component renders correctly based on parameters passed in
46
+
47
+ For a "print link" component you would have:
48
+ * app/views/components/_print-link.html.erb
49
+ * app/views/components/docs/print-link.yml
50
+ * app/assets/stylesheets/components/_print-link.scss
51
+ * test/components/print_link_test.rb
52
+
53
+ The component guide will include your application’s styles and scripts. It will include `application.scss` and `application.js` by default but this is [configurable](#configuration).
54
+
55
+ ### Write documentation
56
+
57
+ The `.yml` file must have:
58
+ * a name
59
+ * a description
60
+ * a default fixture (this can be `{}` if the component takes no parameters)
61
+
62
+ #### Example documentation
63
+
64
+ ```yaml
65
+ name: Withdrawal notice
66
+ description: A banner that displays when content is withdrawn
67
+ fixtures:
68
+ default:
69
+ title: 'This consultation was withdrawn on 20 April 2017'
70
+ explanation_html: '<p>A supporting paragraph</p>'
71
+ ```
72
+
73
+ ### Configuration
74
+
75
+ Configure the gem with a config block in an initializer:
76
+
77
+ ```ruby
78
+ # config/initializers/govuk_publishing_components.rb
79
+ GovukPublishingComponents.configure do |c|
80
+ c.component_guide_title = "My component guide"
81
+
82
+ c.application_stylesheet = "custom_stylesheet" # defaults to "application"
83
+ c.application_javascript = "custom_javascript" # default to "application"
84
+ end
85
+ ```
86
+
87
+ ## Licence
88
+
89
+ [MIT Licence](LICENCE.md)
@@ -0,0 +1,35 @@
1
+ require 'rspec/core/rake_task'
2
+ RSpec::Core::RakeTask.new(:spec)
3
+
4
+ APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
5
+ load 'rails/tasks/engine.rake'
6
+
7
+
8
+ load 'rails/tasks/statistics.rake'
9
+
10
+
11
+
12
+ require 'bundler/gem_tasks'
13
+
14
+ require 'rake/testtask'
15
+
16
+ Rake::TestTask.new(:test) do |t|
17
+ t.libs << 'lib'
18
+ t.libs << 'test'
19
+ t.pattern = 'test/**/*_test.rb'
20
+ t.verbose = false
21
+ end
22
+
23
+ namespace :assets do
24
+ desc "Test precompiling assets through dummy application"
25
+
26
+ task :precompile do |t|
27
+ Rake::Task['app:assets:precompile'].invoke
28
+ end
29
+
30
+ task :clean do |t|
31
+ Rake::Task['app:assets:clean'].invoke
32
+ end
33
+ end
34
+
35
+ task default: :spec
@@ -0,0 +1,2 @@
1
+ //= link_directory ../javascripts/govuk_publishing_components .js
2
+ //= link_directory ../stylesheets/govuk_publishing_components .css
@@ -0,0 +1,13 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require_tree .
@@ -0,0 +1,7 @@
1
+ // `govuk_frontend_toolkit`
2
+ @import "measurements";
3
+ @import "grid_layout";
4
+ @import "typography";
5
+ @import "colours";
6
+
7
+ @import "component_guide";
@@ -0,0 +1,119 @@
1
+ $prism-background: #f5f2f0;
2
+ $border-color: #ccc;
3
+
4
+ .govuk-component-guide-wrapper {
5
+ padding-bottom: $gutter * 2;
6
+ }
7
+
8
+ .component-list {
9
+ li {
10
+ @include core-19;
11
+ margin-bottom: $gutter-half;
12
+ }
13
+ }
14
+
15
+ .component-description {
16
+ @include core-24;
17
+ max-width: 30em;
18
+ }
19
+
20
+ .component-doc {
21
+ @include core-16;
22
+
23
+ p {
24
+ margin: $gutter-half 0;
25
+ }
26
+
27
+ ol,
28
+ ul {
29
+ margin: 0 0 0 $gutter;
30
+ }
31
+
32
+ h3 {
33
+ margin: $gutter 0 $gutter-half;
34
+ @include bold-19;
35
+ }
36
+ }
37
+
38
+ .component-guide-preview {
39
+ padding: 30px 0;
40
+
41
+ .preview-title {
42
+ margin-bottom: 1em;
43
+ @include bold-16;
44
+
45
+ a {
46
+ color: $black;
47
+ }
48
+ }
49
+ }
50
+
51
+ .code-block {
52
+ margin: 30px 0;
53
+ padding: $gutter;
54
+ @extend %outdent-to-full-width;
55
+ overflow: scroll;
56
+ max-height: 300px;
57
+
58
+ // Match Prism styles to avoid a flash as it renders
59
+ background: $prism-background;
60
+ font-family: Consolas, Monaco, 'Andale Mono', monospace;
61
+
62
+ &[contenteditable]:hover {
63
+ cursor: text;
64
+ }
65
+
66
+ code {
67
+ display: block;
68
+ }
69
+ }
70
+
71
+ .component-guide-preview {
72
+ padding: ($gutter * 1.5) $gutter $gutter;
73
+ border: 1px solid $border-colour;
74
+ position: relative;
75
+
76
+ &:before {
77
+ @include core-14;
78
+ content: "EXAMPLE";
79
+ position: absolute;
80
+ top: 0;
81
+ left: 0;
82
+ padding: 0.21053em 0.78947em;
83
+ background: $border-colour;
84
+ color: $white;
85
+ }
86
+
87
+ div[class^="govuk-"] {
88
+ &:hover {
89
+ outline: 1px solid $border-color;
90
+ box-shadow: 0 0 10px $border-color;
91
+ }
92
+ }
93
+ }
94
+
95
+ .fixtures {
96
+ margin-top: $gutter * 2;
97
+
98
+ .fixtures-title {
99
+ @include bold-27;
100
+ margin: $gutter 0;
101
+
102
+ small {
103
+ @include bold-16;
104
+ }
105
+ }
106
+
107
+ .component-fixture {
108
+ margin: 0 0 $gutter * 2;
109
+
110
+ .fixture-title {
111
+ @include bold-24;
112
+ margin: $gutter-half 0;
113
+
114
+ small {
115
+ @include bold-16;
116
+ }
117
+ }
118
+ }
119
+ }
@@ -0,0 +1,14 @@
1
+ module GovukPublishingComponents
2
+ class ApplicationController < ActionController::Base
3
+ include Slimmer::GovukComponents
4
+ include Slimmer::Headers
5
+ protect_from_forgery with: :exception
6
+ before_action :set_custom_slimmer_headers
7
+
8
+ private
9
+
10
+ def set_custom_slimmer_headers
11
+ set_slimmer_headers(report_a_problem: 'false', remove_search: true)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,42 @@
1
+ module GovukPublishingComponents
2
+ class ComponentGuideController < ApplicationController
3
+ append_view_path File.join(Rails.root, "app", "views", "components")
4
+
5
+ def index
6
+ @component_docs = ComponentDoc.all
7
+ end
8
+
9
+ def show
10
+ @component_doc = ComponentDoc.get(params[:component])
11
+ @guide_breadcrumbs = [index_breadcrumb, component_breadcrumb(@component_doc)]
12
+ end
13
+
14
+ def fixture
15
+ @component_doc = ComponentDoc.get(params[:component])
16
+ @component_fixture = @component_doc.fixtures.find { |f| f.id == params[:fixture] }
17
+ @guide_breadcrumbs = [
18
+ index_breadcrumb,
19
+ component_breadcrumb(@component_doc, @component_fixture),
20
+ {
21
+ title: @component_fixture.name
22
+ }
23
+ ]
24
+ end
25
+
26
+ private
27
+
28
+ def index_breadcrumb
29
+ {
30
+ title: GovukPublishingComponents::Config.component_guide_title,
31
+ url: component_guide_path
32
+ }
33
+ end
34
+
35
+ def component_breadcrumb(component_doc, component_fixture = nil)
36
+ Hash.new.tap do |h|
37
+ h[:title] = component_doc.name
38
+ h[:url] = component_doc_path(component_doc.id) if component_fixture
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,4 @@
1
+ module GovukPublishingComponents
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module GovukPublishingComponents
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ end
5
+ end
@@ -0,0 +1,34 @@
1
+ module GovukPublishingComponents
2
+ ComponentDoc = Struct.new(:id, :name, :description, :body, :fixtures) do
3
+ def self.get(id)
4
+ all.find { |component| component.id == id }
5
+ end
6
+
7
+ def self.all
8
+ fetch_component_docs.map { |component| build(component) }
9
+ end
10
+
11
+ def self.build(component)
12
+ fixtures = component[:fixtures].map { |id, data|
13
+ GovukPublishingComponents::ComponentFixture.new(id.to_s, data)
14
+ }
15
+
16
+ self.new(component[:id], component[:name], component[:description], component[:body], fixtures)
17
+ end
18
+
19
+ def fixture
20
+ fixtures.first
21
+ end
22
+
23
+ def other_fixtures
24
+ fixtures.slice(1..-1)
25
+ end
26
+
27
+ def self.fetch_component_docs
28
+ doc_files = Rails.root.join("app", "views", "components", "docs", "*.yml")
29
+ Dir[doc_files].sort.map do |file|
30
+ { id: File.basename(file, ".yml") }.merge(YAML::load_file(file)).with_indifferent_access
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,15 @@
1
+ module GovukPublishingComponents
2
+ ComponentFixture = Struct.new(:id, :data) do
3
+ def name
4
+ id.humanize
5
+ end
6
+
7
+ def pretty_data
8
+ JSON.pretty_generate(data).gsub('\\n', "\n ").gsub(/"(\w*)":/, '\1:').strip
9
+ end
10
+
11
+ def data?
12
+ data.any?
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ <div class="component-call code-block" contenteditable>
2
+ <code class="language-ruby">&lt;%= render 'components/<%= component_doc.id %>'<% if fixture.data? %>, <%= fixture.pretty_data %><% end %> %&gt;</code>
3
+ </div>
@@ -0,0 +1,3 @@
1
+ <div class="component-guide-preview">
2
+ <%= render "components/#{@component_doc[:id]}", fixture.data %>
3
+ </div>
@@ -0,0 +1,12 @@
1
+ <% content_for :title, "#{@component_fixture.name} example - #{@component_doc.name} component" %>
2
+ <%= render 'govuk_component/title', title: @component_fixture.name, context: "#{@component_doc.name} example" %>
3
+
4
+ <div class="component-show">
5
+ <div class="component-doc">
6
+ <h3>How to call this example</h3>
7
+ <%= render partial: "govuk_publishing_components/component_guide/component_doc/call", locals: { component_doc: @component_doc, fixture: @component_fixture } %>
8
+
9
+ <h3>How it looks</h3>
10
+ <%= render partial: "govuk_publishing_components/component_guide/component_doc/preview", locals: { component_doc: @component_doc, fixture: @component_fixture } %>
11
+ </div>
12
+ </div>
@@ -0,0 +1,14 @@
1
+ <%= render 'govuk_component/title', title: GovukPublishingComponents::Config.component_guide_title %>
2
+
3
+ <ul class="component-list">
4
+ <% @component_docs.each do |component_doc| %>
5
+ <li>
6
+ <h2>
7
+ <%= link_to component_doc.name, component_doc_path(component_doc.id) %>
8
+ </h2>
9
+ <p>
10
+ <%= component_doc.description %>
11
+ </p>
12
+ </li>
13
+ <% end %>
14
+ </ul>
@@ -0,0 +1,32 @@
1
+ <% content_for :title, "#{@component_doc.name} component" %>
2
+ <%= render 'govuk_component/title', title: @component_doc.name, context: 'Component' %>
3
+
4
+ <p class="component-description">
5
+ <%= @component_doc.description %>
6
+ </p>
7
+
8
+ <div class="component-show">
9
+ <div class="component-doc">
10
+ <h3>How to call this component</h3>
11
+ <%= render partial: "govuk_publishing_components/component_guide/component_doc/call", locals: { component_doc: @component_doc, fixture: @component_doc.fixture } %>
12
+
13
+ <h3>How it looks</h3>
14
+ </div>
15
+
16
+ <%= render partial: "govuk_publishing_components/component_guide/component_doc/preview", locals: { component_doc: @component_doc, fixture: @component_doc.fixture } %>
17
+
18
+ <% if @component_doc.other_fixtures.any? %>
19
+ <div class="fixtures">
20
+ <h2 class="fixtures-title">Other examples</h2>
21
+ <% @component_doc.other_fixtures.each do |fixture| %>
22
+ <div class="component-fixture">
23
+ <h3 class="fixture-title">
24
+ <a href="<%= component_fixture_path(@component_doc.id, fixture.id) %>"><%= fixture.name %></a>
25
+ </h3>
26
+ <%= render partial: "govuk_publishing_components/component_guide/component_doc/call", locals: { component_doc: @component_doc, fixture: fixture } %>
27
+ <%= render partial: "govuk_publishing_components/component_guide/component_doc/preview", locals: { component_doc: @component_doc, fixture: fixture } %>
28
+ </div>
29
+ <% end %>
30
+ </div>
31
+ <% end %>
32
+ </div>
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>
5
+ <%= yield :title %><% if content_for(:title) %> - <% end %><%= GovukPublishingComponents::Config.component_guide_title %>
6
+ </title>
7
+ <%= stylesheet_link_tag "govuk_publishing_components/application", media: "all" %>
8
+ <%= stylesheet_link_tag "#{GovukPublishingComponents::Config.application_stylesheet}" %>
9
+
10
+ <%= javascript_include_tag "govuk_publishing_components/application" %>
11
+ <%= javascript_include_tag "#{GovukPublishingComponents::Config.application_javascript}" %>
12
+ <%= csrf_meta_tags %>
13
+ </head>
14
+ <body>
15
+ <div class="header-proposition">
16
+ <div class="content">
17
+ <nav id="proposition-menu" role="navigation">
18
+ <%= link_to GovukPublishingComponents::Config.component_guide_title, component_guide_path, id: 'proposition-name' %>
19
+ </nav>
20
+ </div>
21
+ </div>
22
+
23
+ <main id="wrapper" class="govuk-component-guide-wrapper">
24
+ <%= render 'govuk_component/breadcrumbs', breadcrumbs: @guide_breadcrumbs %>
25
+ <%= yield %>
26
+ </main>
27
+ </body>
28
+ </html>
@@ -0,0 +1,5 @@
1
+ GovukPublishingComponents::Engine.routes.draw do
2
+ root :to => 'component_guide#index', as: :component_guide
3
+ get ':component' => 'component_guide#show', as: :component_doc
4
+ get ':component/:fixture' => 'component_guide#fixture', as: :component_fixture
5
+ end
@@ -0,0 +1,6 @@
1
+ require "govuk_publishing_components/engine"
2
+ require "govuk_publishing_components/config"
3
+
4
+ module GovukPublishingComponents
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,16 @@
1
+ module GovukPublishingComponents
2
+ def self.configure
3
+ yield(Config)
4
+ end
5
+
6
+ module Config
7
+ mattr_accessor :component_guide_title
8
+ self.component_guide_title = "GOV.UK Component Guide"
9
+
10
+ mattr_accessor :application_stylesheet
11
+ self.application_stylesheet = "application"
12
+
13
+ mattr_accessor :application_javascript
14
+ self.application_javascript = "application"
15
+ end
16
+ end
@@ -0,0 +1,6 @@
1
+ module GovukPublishingComponents
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace GovukPublishingComponents
4
+ require 'govuk_frontend_toolkit'
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module GovukPublishingComponents
2
+ VERSION = '0.1.0'.freeze
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :govuk_publishing_components do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,187 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: govuk_publishing_components
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - GOV.UK Dev
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-07-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 5.0.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 5.0.0.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 5.0.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 5.0.0.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: slimmer
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 10.1.3
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 10.1.3
47
+ - !ruby/object:Gem::Dependency
48
+ name: sass-rails
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 5.0.4
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 5.0.4
61
+ - !ruby/object:Gem::Dependency
62
+ name: govuk_frontend_toolkit
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: govuk-lint
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 2.1.0
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 2.1.0
89
+ - !ruby/object:Gem::Dependency
90
+ name: rspec
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.6'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.6'
103
+ - !ruby/object:Gem::Dependency
104
+ name: capybara
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 2.14.4
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 2.14.4
117
+ - !ruby/object:Gem::Dependency
118
+ name: webmock
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 1.18.0
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 1.18.0
131
+ description: A gem to document components in GOV.UK frontend applications
132
+ email:
133
+ - govuk-dev@digital.cabinet-office.gov.uk
134
+ executables: []
135
+ extensions: []
136
+ extra_rdoc_files: []
137
+ files:
138
+ - LICENCE.md
139
+ - README.md
140
+ - Rakefile
141
+ - app/assets/config/govuk_publishing_components_manifest.js
142
+ - app/assets/javascripts/govuk_publishing_components/application.js
143
+ - app/assets/stylesheets/govuk_publishing_components/application.scss
144
+ - app/assets/stylesheets/govuk_publishing_components/component_guide.scss
145
+ - app/controllers/govuk_publishing_components/application_controller.rb
146
+ - app/controllers/govuk_publishing_components/component_guide_controller.rb
147
+ - app/helpers/govuk_publishing_components/application_helper.rb
148
+ - app/models/govuk_publishing_components/application_record.rb
149
+ - app/models/govuk_publishing_components/component_doc.rb
150
+ - app/models/govuk_publishing_components/component_fixture.rb
151
+ - app/views/govuk_publishing_components/component_guide/component_doc/_call.html.erb
152
+ - app/views/govuk_publishing_components/component_guide/component_doc/_preview.html.erb
153
+ - app/views/govuk_publishing_components/component_guide/fixture.html.erb
154
+ - app/views/govuk_publishing_components/component_guide/index.html.erb
155
+ - app/views/govuk_publishing_components/component_guide/show.html.erb
156
+ - app/views/layouts/govuk_publishing_components/application.html.erb
157
+ - config/routes.rb
158
+ - lib/govuk_publishing_components.rb
159
+ - lib/govuk_publishing_components/config.rb
160
+ - lib/govuk_publishing_components/engine.rb
161
+ - lib/govuk_publishing_components/version.rb
162
+ - lib/tasks/govuk_publishing_components_tasks.rake
163
+ homepage: https://github.com/alphagov/govuk_publishing_components
164
+ licenses:
165
+ - MIT
166
+ metadata: {}
167
+ post_install_message:
168
+ rdoc_options: []
169
+ require_paths:
170
+ - lib
171
+ required_ruby_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ requirements: []
182
+ rubyforge_project:
183
+ rubygems_version: 2.6.8
184
+ signing_key:
185
+ specification_version: 4
186
+ summary: A gem to document components in GOV.UK frontend applications
187
+ test_files: []