prawn-dev 0.3.0 → 0.4.0
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/prawn/dev/tasks.rb +39 -1
- data/lib/prawn/dev/version.rb +1 -1
- data/lib/prawn/dev/yard_markup/code_highlight.rb +30 -0
- data/lib/prawn/dev/yard_markup/document.rb +48 -0
- data/lib/prawn/dev/yard_markup.rb +16 -0
- data/lib/rubocop/cop/prawn/style/trailing_comma_fix.rb +19 -0
- data/lib/rubocop/cop/prawn_cops.rb +18 -0
- data/rubocop.yml +475 -72
- data/templates/default/fulldoc/html/css/style.css +1021 -0
- data/templates/default/fulldoc/html/js/app.js +317 -0
- data/templates/default/fulldoc/html/setup.rb +19 -0
- data/templates/default/layout/html/setup.rb +14 -0
- data/templates/default/method_details/html/source.erb +17 -0
- data/templates/default/module/html/attribute_summary.erb +11 -0
- data/templates/default/module/html/constant_summary.erb +20 -0
- data/templates/default/module/html/item_summary.erb +46 -0
- data/templates/default/module/html/method_summary.erb +17 -0
- data/templates/default/tags/html/example.erb +11 -0
- data.tar.gz.sig +0 -0
- metadata +96 -25
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e001fdf15ba461fb80cf6bf5c552b387d35b38bfdaf1f7b452242bbcf8aa8a3
|
4
|
+
data.tar.gz: 840114726af26d000ee361e1a889abbcf29a99f4cd266ffbda04d1db6ac4ff38
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28370a98a9791b0dfa6fb7985ad97f6d9d66646863a926a64348407b2f6db2b9998ad0249ca53699fe6221d7a7028d2f99942797c62a91c837d107fd0f245627
|
7
|
+
data.tar.gz: 60276b7b8db038441c2268fdf26cc04ef5bc14bea4b21a3178f1eaacd8d0e0d3a67aabd90d286c27e0b2fa90551abecffc6d79cba1440194a052e661ff3d647f
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/prawn/dev/tasks.rb
CHANGED
@@ -35,12 +35,50 @@ RSpec::Core::RakeTask.new('spec') do |c|
|
|
35
35
|
end
|
36
36
|
|
37
37
|
require 'yard'
|
38
|
+
YARD_OPTIONS = [
|
39
|
+
'--output-dir', 'doc/html',
|
40
|
+
'--verbose', '--debug',
|
41
|
+
'--load', File.expand_path('yard_markup.rb', __dir__),
|
42
|
+
'--markup', 'markdown',
|
43
|
+
'--markup-provider', 'prawn/dev/yard_markup/document',
|
44
|
+
'--use-cache',
|
45
|
+
]
|
38
46
|
|
39
47
|
YARD::Rake::YardocTask.new do |t|
|
40
|
-
t.options =
|
48
|
+
t.options = YARD_OPTIONS + t.options
|
49
|
+
t.stats_options = ['--list-undoc', '--compact']
|
41
50
|
end
|
42
51
|
task docs: :yard
|
43
52
|
|
53
|
+
require 'fileutils'
|
54
|
+
def stash_yardopts
|
55
|
+
if File.exist?('.yardopts')
|
56
|
+
begin
|
57
|
+
original_opts = Shellwords.shellsplit File.read('.yardopts')
|
58
|
+
require('securerandom')
|
59
|
+
backup_file = ".yardopts-#{SecureRandom.alphanumeric(16)}.backup"
|
60
|
+
FileUtils.move('.yardopts', backup_file)
|
61
|
+
yield original_opts
|
62
|
+
ensure
|
63
|
+
FileUtils.move(backup_file, '.yardopts')
|
64
|
+
end
|
65
|
+
else
|
66
|
+
yield []
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
desc 'Generate YARD Documentation continuously'
|
71
|
+
task :yard_watch do
|
72
|
+
yard_server = YARD::CLI::Server.new
|
73
|
+
stash_yardopts do |original_opts|
|
74
|
+
File.open('.yardopts', 'w') do |yardopts|
|
75
|
+
yardopts.write((YARD_OPTIONS + original_opts).shelljoin)
|
76
|
+
yardopts.fsync
|
77
|
+
yard_server.run('--reload')
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
44
82
|
require 'rubocop/rake_task'
|
45
83
|
|
46
84
|
RuboCop::RakeTask.new
|
data/lib/prawn/dev/version.rb
CHANGED
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'kramdown'
|
4
|
+
require 'rouge'
|
5
|
+
|
6
|
+
module Prawn
|
7
|
+
module Dev
|
8
|
+
module YardMarkup
|
9
|
+
module CodeHighlight
|
10
|
+
def html_syntax_highlight_ruby(source)
|
11
|
+
converter =
|
12
|
+
Kramdown::Converter::Html.__send__(
|
13
|
+
:new,
|
14
|
+
nil,
|
15
|
+
Prawn::Dev::YardMarkup::Document.new('').default_options,
|
16
|
+
)
|
17
|
+
|
18
|
+
el = Kramdown::Element.new(:codeblock, source, { lang: 'ruby' })
|
19
|
+
converter.convert(el, 0)
|
20
|
+
end
|
21
|
+
alias html_markup_ruby html_syntax_highlight_ruby
|
22
|
+
|
23
|
+
# Do nothing
|
24
|
+
def parse_codeblocks(html)
|
25
|
+
html
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'kramdown'
|
4
|
+
require 'kramdown-parser-gfm'
|
5
|
+
require 'rouge'
|
6
|
+
|
7
|
+
module Prawn
|
8
|
+
module Dev
|
9
|
+
module YardMarkup
|
10
|
+
class CodeFormatter < ::Rouge::Formatter
|
11
|
+
def initialize(opts = {})
|
12
|
+
@opts = opts
|
13
|
+
@formatter =
|
14
|
+
if opts[:inline_theme]
|
15
|
+
::Rouge::Formatters::HTMLInline.new(opts[:inline_theme])
|
16
|
+
else
|
17
|
+
::Rouge::Formatters::HTML.new
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def stream(tokens, &block)
|
22
|
+
yield %(<pre><code>) unless @opts[:inline]
|
23
|
+
@formatter.stream(tokens, &block)
|
24
|
+
yield '</code></pre>' unless @opts[:inline]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
class Document < Kramdown::Document
|
29
|
+
def initialize(source, options = {})
|
30
|
+
super(source, default_options.merge(options))
|
31
|
+
end
|
32
|
+
|
33
|
+
def default_options
|
34
|
+
{
|
35
|
+
input: 'GFM',
|
36
|
+
hard_wrap: false,
|
37
|
+
syntax_highlighter: :rouge,
|
38
|
+
syntax_highlighter_opts: {
|
39
|
+
default_lang: 'ruby',
|
40
|
+
block: { formatter: CodeFormatter },
|
41
|
+
span: { formatter: CodeFormatter, inline: true },
|
42
|
+
},
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'yard_markup/code_highlight'
|
4
|
+
|
5
|
+
module Prawn
|
6
|
+
module Dev
|
7
|
+
module YardMarkup
|
8
|
+
YARD::Templates::Helpers::MarkupHelper::MARKUP_PROVIDERS[:markdown].push(
|
9
|
+
{ lib: :'prawn/dev/yard_markup/document', const: 'Prawn::Dev::YardMarkup::Document' }
|
10
|
+
)
|
11
|
+
YARD::Templates::Engine.register_template_path File.expand_path('../../../templates', __dir__)
|
12
|
+
|
13
|
+
YARD::Templates::Helpers::HtmlHelper.prepend Prawn::Dev::YardMarkup::CodeHighlight
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module Prawn
|
6
|
+
module Style
|
7
|
+
module TrailingCommaFix
|
8
|
+
def should_have_comma?(style, node)
|
9
|
+
if style == :prawn_comma
|
10
|
+
node.loc.begin.line != node.loc.end.line # parens are on different lines
|
11
|
+
else
|
12
|
+
super
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rubocop'
|
4
|
+
require_relative 'prawn/style/trailing_comma_fix'
|
5
|
+
|
6
|
+
RuboCop::Cop::Style::TrailingCommaInArguments.prepend(RuboCop::Cop::Prawn::Style::TrailingCommaFix)
|
7
|
+
RuboCop::Cop::Style::TrailingCommaInArrayLiteral.prepend(RuboCop::Cop::Prawn::Style::TrailingCommaFix)
|
8
|
+
RuboCop::Cop::Style::TrailingCommaInBlockArgs.prepend(RuboCop::Cop::Prawn::Style::TrailingCommaFix)
|
9
|
+
RuboCop::Cop::Style::TrailingCommaInHashLiteral.prepend(RuboCop::Cop::Prawn::Style::TrailingCommaFix)
|
10
|
+
|
11
|
+
%w[
|
12
|
+
Style/TrailingCommaInArguments
|
13
|
+
Style/TrailingCommaInArrayLiteral
|
14
|
+
Style/TrailingCommaInBlockArgs
|
15
|
+
Style/TrailingCommaInHashLiteral
|
16
|
+
].each do |cop_name|
|
17
|
+
RuboCop::ConfigLoader.default_configuration[cop_name]['SupportedStylesForMultiline']&.append('prawn_comma')
|
18
|
+
end
|