-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathgovuk_tech_docs.gemspec
More file actions
72 lines (61 loc) · 3.3 KB
/
govuk_tech_docs.gemspec
File metadata and controls
72 lines (61 loc) · 3.3 KB
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
71
72
require "English"
lib = File.expand_path("lib", __dir__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require "govuk_tech_docs/version"
# npm is not necessarily expected in a gemspec, this makes a big assumption about the environment
# Additionally, for actions such as evaluating the gemspec (e.g. for vulnerability patching) we do not actaully want npm packages
# We will move these sections into specific rake tasks when we get a chance
if system("which npm > /dev/null 2>&1")
`npm ci`
abort "npm ci failed to run" unless $CHILD_STATUS.success?
unless File.exist?("node_modules/govuk-frontend/dist/govuk/_base.scss")
abort "govuk-frontend and other npm packages not installed"
end
else
warn "npm is not available, no assets will be generated. If you did not expect this please confirm your environment settings."
end
Gem::Specification.new do |spec|
spec.name = "govuk_tech_docs"
spec.version = GovukTechDocs::VERSION
spec.authors = ["Government Digital Service"]
spec.email = ["govuk-dev@digital.cabinet-office.gov.uk"]
spec.summary = "Gem to distribute the GOV.UK Tech Docs Template"
spec.description = "Gem to distribute the GOV.UK Tech Docs Template. See https://github.com/alphagov/tech-docs-gem for the project."
spec.homepage = "https://github.com/alphagov/tech-docs-gem"
spec.license = "MIT"
files_in_git = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
# Include assets from GOV.UK Frontend library in the distributed gem
govuk_frontend_assets = Dir["node_modules/govuk-frontend/**/*.{scss,js,mjs,woff,woff2,png,svg,ico}", "node_modules/govuk-frontend/dist/govuk/assets/**/*.json"]
spec.files = files_in_git + govuk_frontend_assets
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = %w[lib]
spec.required_ruby_version = ">= 3.3.0"
spec.add_dependency "autoprefixer-rails"
spec.add_dependency "chronic"
spec.add_dependency "concurrent-ruby"
spec.add_dependency "csv" # TODO: remove once tilt declares this itself.
spec.add_dependency "haml", ">= 6", "< 8" # middleman-core (4.6.3) depends on haml (>= 4.0.5, < 7)
spec.add_dependency "middleman"
spec.add_dependency "middleman-autoprefixer"
spec.add_dependency "middleman-compass"
spec.add_dependency "middleman-livereload"
spec.add_dependency "middleman-search-gds"
# middleman-sprockets is very old and out of date. V4.1.0 has a breaking change. Will look to replace with gem "dartsass-sprockets" or uses sass in the package.json
spec.add_dependency "middleman-sprockets", "4.1.1"
spec.add_dependency "middleman-syntax"
spec.add_dependency "mutex_m" # TODO: remove once activesupport declares this itself.
spec.add_dependency "nokogiri"
spec.add_dependency "openapi3_parser"
spec.add_dependency "redcarpet"
spec.add_dependency "sassc-embedded"
spec.add_dependency "schmooze", "~> 0.2.0"
spec.add_dependency "terser", "~> 1.2.3"
spec.add_development_dependency "benchmark"
spec.add_development_dependency "byebug"
spec.add_development_dependency "capybara"
spec.add_development_dependency "ostruct"
spec.add_development_dependency "rake"
spec.add_development_dependency "rspec"
spec.add_development_dependency "rubocop-govuk"
end