paperwork 0.2.6 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 151389aa8930969de29cb2e7969505d8c52f085ffc46cf43bb3168575acbb325
4
- data.tar.gz: 8121a20fc3f36067e2273b9cf6ac92173b9ad84cf25f1579c7f20afe1e5bfaf3
3
+ metadata.gz: b2e693dd5bb169466f35243976c240df90b650c5a026b958fb2ad359362b97da
4
+ data.tar.gz: 47d925596e691ea695051d32196b20d2f1f4af1bd4cbf52c828090c7904da41e
5
5
  SHA512:
6
- metadata.gz: dd6ada05928138cb198175167a0b9cbb1148dcc875f9ccf3a12049eb759a60832dffd538de17c31d4138aa8d4bf6ef7f1cb9b26d23d863e8770e1044ebb572ef
7
- data.tar.gz: ea9028ea7f182d5d98841dc6e01ebe75c6e45e6839389c4a4247219e3efd56648ac317985209cecc2c1a25fbf3f0466cf780025648ef3d1e7498ef119cf328c1
6
+ metadata.gz: 7743a376ef7a4cbacc04d71770622c4363a503a2396ec6135522b8fe266ecd774913c10af0c46bb561c68c454138daf90e71a8f1fcd2b15c1f554f08abc8f642
7
+ data.tar.gz: 8d428a9773633ade5b13b79ed1f7d5e98cdd1f480b85a3370d22e36c48c5735155ac240c459c1f25816cf960c26708eaaf1220600021af838bdd7e8e9225df50
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- paperwork (0.2.6)
4
+ paperwork (0.3.4)
5
5
  rake (~> 12.3)
6
6
  redcarpet (~> 3.5.0)
7
+ thor (~> 1.1.0)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -51,6 +52,7 @@ GEM
51
52
  docile (~> 1.1)
52
53
  simplecov-html (~> 0.11)
53
54
  simplecov-html (0.12.2)
55
+ thor (1.1.0)
54
56
  unicode-display_width (1.7.0)
55
57
 
56
58
  PLATFORMS
data/Rakefile CHANGED
@@ -13,4 +13,4 @@ task rebuild: [:clean, :build]
13
13
  task default: :spec
14
14
  CLEAN.include(".work/coverage")
15
15
 
16
- paperwork :doc, sources: ["README.md", "nested_example/navdemo.md", "site.yml", "custom.js", "custom.css"]
16
+ paperwork :doc, sources: ["README.md", "nested_example/navdemo.md", "paperwork.yml", "custom.js", "custom.css"]
data/bin/paperwork ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "paperwork"
5
+
6
+ Paperwork::CLI.start
data/lib/paperwork.rb CHANGED
@@ -35,5 +35,7 @@ require "paperwork/tasks/root_helpers"
35
35
  require "paperwork/tasks/document"
36
36
  require "paperwork/tasks/template"
37
37
 
38
+ require "paperwork/cli"
39
+
38
40
 
39
41
  include Paperwork # rubocop:disable Style/MixinUsage
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+
3
+ ##
4
+ # globla namespace for paperwork
5
+ #
6
+ module Paperwork
7
+ require "yaml"
8
+ require "thor"
9
+ require "paperwork"
10
+
11
+ ##
12
+ # command line interface for paperwork
13
+ #
14
+ class CLI < Thor
15
+ attr_accessor :config
16
+
17
+ CONFIG_FILE = "paperwork.yml"
18
+
19
+ class_option :verbose, aliases: "-v", desc: "be verbose about the build", type: :boolean, default: false
20
+
21
+ desc "build",
22
+ <<~DESC
23
+ creates documentation as defined in
24
+ #{CONFIG_FILE} and writes it to
25
+ '#{Paperwork::Config[:build_root]}/<name>/build'
26
+ DESC
27
+ def build
28
+ build_internal "build"
29
+ end
30
+
31
+ desc "rebuild",
32
+ <<~DESC
33
+ removes previous builds and creates
34
+ documentation as defined in
35
+ #{CONFIG_FILE} and writes it to
36
+ '#{Paperwork::Config[:build_root]}/<name>/build'
37
+ DESC
38
+ def rebuild
39
+ build_internal "rebuild"
40
+ end
41
+
42
+ desc "server",
43
+ "starts a aerver that serves documentation as defined in #{CONFIG_FILE}"
44
+ def server
45
+ build_internal "server"
46
+ end
47
+
48
+ protected
49
+
50
+ def build_internal(task)
51
+ setup_config
52
+ setup_tasks
53
+ invoke_tasks task
54
+ end
55
+
56
+ def setup_config
57
+ unless File.exist?(CONFIG_FILE)
58
+ raise Exception.new(
59
+ "#{CONFIG_FILE} not found. You need to create a configuration file first."
60
+ )
61
+ end
62
+
63
+ yaml = YAML.load_file(CONFIG_FILE)
64
+ self.config = yaml["config"]
65
+ self.config["sources"] << CONFIG_FILE
66
+
67
+ return unless self.config.nil?
68
+
69
+ raise Exception.new(
70
+ "No 'config' found in #{CONFIG_FILE}. You need to describe the build setup in a 'config' section first."
71
+ )
72
+ end
73
+
74
+ def setup_tasks
75
+ paperwork self.config["name"], sources: self.config["sources"]
76
+ end
77
+
78
+ def invoke_tasks(target)
79
+ Rake::Task["paperwork:#{self.config["name"]}:set_verbose"].invoke if options[:verbose]
80
+ Rake::Task["paperwork:#{self.config["name"]}:#{target}"].invoke
81
+ end
82
+ end
83
+ end
@@ -22,9 +22,7 @@ module Paperwork
22
22
 
23
23
  def tasks
24
24
  file self.name => self.dependencies do
25
- unless File.exist?(self.name)
26
- ln self.source, self.name
27
- end
25
+ cp self.source, self.name
28
26
  end
29
27
  end
30
28
  end
@@ -68,17 +68,16 @@ module Paperwork
68
68
  task self.name => self.dependencies do
69
69
  verbose_flag = Paperwork::Config[:verbose] ? " --verbose" : ""
70
70
  Dir.chdir(self.dir) do
71
- Bundler.with_unbundled_env do
72
- Process.spawn(
73
- "bundle exec middleman build#{verbose_flag}",
74
- out: :out,
75
- in: :in,
76
- err: :err
77
- )
71
+ cmd = "bundle exec middleman build#{verbose_flag}"
72
+ if defined? Bundler
73
+ Bundler.with_unbundled_env do
74
+ Process.spawn(cmd, out: :out, in: :in, err: :err)
75
+ end
76
+ else
77
+ Process.spawn(cmd, out: :out, in: :in, err: :err)
78
78
  end
79
79
  Process.waitall
80
80
  end
81
-
82
81
  puts
83
82
  puts "...Done!"
84
83
  puts "build artifacts are located in #{File.join(self.dir, "build")}"
@@ -109,13 +108,13 @@ module Paperwork
109
108
  desc "start middleman server for editing documents and get visual feedback with live reload"
110
109
  task server: :build do
111
110
  Dir.chdir(self.dir) do
112
- Bundler.with_unbundled_env do
113
- Process.spawn(
114
- "bundle exec middleman server",
115
- out: :out,
116
- in: :in,
117
- err: :err
118
- )
111
+ cmd = "bundle exec middleman server"
112
+ if defined? Bundler
113
+ Bundler.with_unbundled_env do
114
+ Process.spawn(cmd, out: :out, in: :in, err: :err)
115
+ end
116
+ else
117
+ Process.spawn(cmd, out: :out, in: :in, err: :err)
119
118
  end
120
119
  puts
121
120
  puts "+---------------------------------------------------------------+"
@@ -35,16 +35,16 @@ module InfoHelpers
35
35
  relative + stringifyable.to_s
36
36
  end
37
37
 
38
- def site?
39
- data.respond_to?(:site)
38
+ def paperwork?
39
+ data.respond_to?(:paperwork)
40
40
  end
41
41
 
42
42
  def navbar?
43
- site? && data.site.respond_to?(:navbar)
43
+ paperwork? && data.paperwork.respond_to?(:navbar)
44
44
  end
45
45
 
46
46
  def navbar_links
47
- nav = data.site.navbar.links if navbar?
47
+ nav = data.paperwork.navbar.links if navbar?
48
48
  nav ||= {}
49
49
  mapped = {}
50
50
  nav.each do |name, link|
@@ -54,10 +54,10 @@ module InfoHelpers
54
54
  end
55
55
 
56
56
  def navbar_brand
57
- data.site.navbar.brand if navbar?
57
+ data.paperwork.navbar.brand if navbar?
58
58
  end
59
59
 
60
60
  def footer_text
61
- data.site.footer if site?
61
+ data.paperwork.footer if paperwork?
62
62
  end
63
63
  end
@@ -28,13 +28,13 @@ module Paperwork
28
28
  directory self.name => self.dependencies do
29
29
  cp_r template, self.dir
30
30
  Dir.chdir(self.dir) do
31
- Bundler.with_unbundled_env do
32
- Process.spawn(
33
- "bundle install --path=../.bundle/gems --jobs 8 --without test development",
34
- out: :out,
35
- in: :in,
36
- err: :err
37
- )
31
+ cmd = "bundle install --path=../.bundle/gems --jobs 8 --without test development"
32
+ if defined? Bundler
33
+ Bundler.with_unbundled_env do
34
+ Process.spawn(cmd, out: :out, in: :in, err: :err)
35
+ end
36
+ else
37
+ Process.spawn(cmd, out: :out, in: :in, err: :err)
38
38
  end
39
39
  Process.spawn("yarn install", out: :out, in: :in, err: :err)
40
40
  Process.waitall
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Paperwork
4
- VERSION = "0.2.6"
4
+ VERSION = "0.3.4"
5
5
  end
data/paperwork.gemspec CHANGED
@@ -35,4 +35,5 @@ Gem::Specification.new do |spec|
35
35
 
36
36
  spec.add_runtime_dependency "rake", "~> 12.3"
37
37
  spec.add_runtime_dependency "redcarpet", "~> 3.5.0"
38
+ spec.add_runtime_dependency "thor", "~> 1.1.0"
38
39
  end
@@ -5,3 +5,11 @@ navbar:
5
5
  links:
6
6
  Home: README.md
7
7
  Navbar Demo: nested_example/navdemo.md
8
+
9
+ config:
10
+ name: doc
11
+ sources:
12
+ - README.md
13
+ - nested_example/navdemo.md
14
+ - custom.js
15
+ - custom.css
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperwork
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Schmid
@@ -108,12 +108,25 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 3.5.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: thor
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 1.1.0
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.1.0
111
125
  description:
112
126
  email:
113
127
  - couchbelag@gmail.com
114
128
  executables:
115
- - console
116
- - setup
129
+ - paperwork
117
130
  extensions: []
118
131
  extra_rdoc_files: []
119
132
  files:
@@ -127,13 +140,13 @@ files:
127
140
  - LICENSE.txt
128
141
  - README.md
129
142
  - Rakefile
130
- - bin/console
131
- - bin/setup
143
+ - bin/paperwork
132
144
  - custom.css
133
145
  - custom.js
134
146
  - lib/paperwork.rb
135
147
  - lib/paperwork/assets/paperwork/presentation.css
136
148
  - lib/paperwork/assets/presentation.css
149
+ - lib/paperwork/cli.rb
137
150
  - lib/paperwork/config.rb
138
151
  - lib/paperwork/tasks.rb
139
152
  - lib/paperwork/tasks/base.rb
@@ -163,7 +176,7 @@ files:
163
176
  - lib/paperwork/version.rb
164
177
  - nested_example/navdemo.md
165
178
  - paperwork.gemspec
166
- - site.yml
179
+ - paperwork.yml
167
180
  homepage: https://gitlab.com/couchbelag/paperwork
168
181
  licenses:
169
182
  - MIT
data/bin/console DELETED
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- require "bundler/setup"
5
- require "paperwork"
6
-
7
- # You can add fixtures and/or initialization code here to make experimenting
8
- # with your gem easier. You can also use a different console, if you like.
9
-
10
- # (If you use this, don't forget to add pry to your Gemfile!)
11
- # require "pry"
12
- # Pry.start
13
-
14
- require "irb"
15
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here