-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
70 lines (57 loc) · 1.87 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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
64
65
66
67
68
69
70
# frozen_string_literal: true
require "bundler/gem_tasks"
require "defra_ruby_template/version"
task default: :assets
task "assets" do
%w[
minified_css
fonts
images
stylesheets
javascripts
].each do |task_name|
Rake::Task[task_name].execute
end
end
def copy_assets(source_pattern, target_replacement)
Rake::FileList[source_pattern].each do |source|
target = source.sub("node_modules/govuk-frontend/dist/govuk", target_replacement)
mkdir_p(File.dirname(target))
copy_file source, target
end
end
task "minified_css" do
copy_assets("node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css", "vendor/assets/stylesheets")
end
task "stylesheets" do
copy_assets("node_modules/govuk-frontend/dist/govuk/**/*.scss", "vendor/assets/stylesheets")
create_scss_file
end
task "fonts" do
copy_assets("node_modules/govuk-frontend/dist/govuk/assets/fonts/*.{eot,woff,woff2,ico,svg}", "vendor")
end
task "images" do
copy_assets("node_modules/govuk-frontend/dist/govuk/assets/images/*.{png,gif,jpg,ico,svg}", "vendor")
end
task "javascripts" do
Rake::FileList["node_modules/govuk-frontend/dist/govuk/all.bundle.js"].each do |source|
target = source.sub("node_modules/govuk-frontend/dist/govuk", "vendor/assets/javascripts")
target = target.sub("all.bundle.js", "defra_ruby_template.js")
mkdir_p(File.dirname(target))
copy_file source, target
end
end
def create_scss_file
content = <<~SCSS
// Using Rails with the asset pipeline so set the helper methods
$govuk-font-url-function: 'image-url';
$govuk-image-url-function: 'font-url';
SCSS
source_file = "node_modules/govuk-frontend/dist/govuk/all.scss"
target_file = "vendor/assets/stylesheets/defra_ruby_template.scss"
mkdir_p(File.dirname(target_file))
File.open(target_file, "w") do |file|
file.write(content)
file.write(File.read(source_file))
end
end