govuk_publishing_components 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENCE.md +20 -0
- data/README.md +89 -0
- data/Rakefile +35 -0
- data/app/assets/config/govuk_publishing_components_manifest.js +2 -0
- data/app/assets/javascripts/govuk_publishing_components/application.js +13 -0
- data/app/assets/stylesheets/govuk_publishing_components/application.scss +7 -0
- data/app/assets/stylesheets/govuk_publishing_components/component_guide.scss +119 -0
- data/app/controllers/govuk_publishing_components/application_controller.rb +14 -0
- data/app/controllers/govuk_publishing_components/component_guide_controller.rb +42 -0
- data/app/helpers/govuk_publishing_components/application_helper.rb +4 -0
- data/app/models/govuk_publishing_components/application_record.rb +5 -0
- data/app/models/govuk_publishing_components/component_doc.rb +34 -0
- data/app/models/govuk_publishing_components/component_fixture.rb +15 -0
- data/app/views/govuk_publishing_components/component_guide/component_doc/_call.html.erb +3 -0
- data/app/views/govuk_publishing_components/component_guide/component_doc/_preview.html.erb +3 -0
- data/app/views/govuk_publishing_components/component_guide/fixture.html.erb +12 -0
- data/app/views/govuk_publishing_components/component_guide/index.html.erb +14 -0
- data/app/views/govuk_publishing_components/component_guide/show.html.erb +32 -0
- data/app/views/layouts/govuk_publishing_components/application.html.erb +28 -0
- data/config/routes.rb +5 -0
- data/lib/govuk_publishing_components.rb +6 -0
- data/lib/govuk_publishing_components/config.rb +16 -0
- data/lib/govuk_publishing_components/engine.rb +6 -0
- data/lib/govuk_publishing_components/version.rb +3 -0
- data/lib/tasks/govuk_publishing_components_tasks.rake +4 -0
- metadata +187 -0
checksums.yaml
ADDED
@@ -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
|
data/LICENCE.md
ADDED
@@ -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.
|
data/README.md
ADDED
@@ -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)
|
data/Rakefile
ADDED
@@ -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,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,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,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,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>
|
data/config/routes.rb
ADDED
@@ -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
|
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: []
|