docrb-html 0.2.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.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +21 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +52 -0
  5. data/Gemfile +7 -0
  6. data/Gemfile.lock +37 -0
  7. data/assets/breadcrumb.scss +25 -0
  8. data/assets/checkbox.scss +34 -0
  9. data/assets/class_header.scss +75 -0
  10. data/assets/class_mod_name.scss +8 -0
  11. data/assets/component_list.scss +4 -0
  12. data/assets/container.scss +9 -0
  13. data/assets/doc_box.scss +79 -0
  14. data/assets/documentation_block.scss +5 -0
  15. data/assets/favicon.ico +0 -0
  16. data/assets/fonts.scss +105 -0
  17. data/assets/footer.scss +15 -0
  18. data/assets/images/balance.svg +9 -0
  19. data/assets/images/breadcrumb_separator.svg +1 -0
  20. data/assets/images/checkbox-off.svg +1 -0
  21. data/assets/images/checkbox-on.svg +1 -0
  22. data/assets/images/chevron.svg +1 -0
  23. data/assets/images/docrb-label.svg +20 -0
  24. data/assets/images/github.svg +11 -0
  25. data/assets/images/home.svg +1 -0
  26. data/assets/images/inherited.svg +1 -0
  27. data/assets/images/override.svg +1 -0
  28. data/assets/images/questionmark.svg +1 -0
  29. data/assets/images/rubygems.svg +9 -0
  30. data/assets/images/user.svg +12 -0
  31. data/assets/js/filtering.js +66 -0
  32. data/assets/links.scss +16 -0
  33. data/assets/markdown.scss +41 -0
  34. data/assets/method_argument.scss +75 -0
  35. data/assets/method_display.scss +27 -0
  36. data/assets/method_list.scss +51 -0
  37. data/assets/project_header.scss +55 -0
  38. data/assets/reference.scss +36 -0
  39. data/assets/shared.scss +23 -0
  40. data/assets/style.scss +43 -0
  41. data/assets/symbol.scss +5 -0
  42. data/assets/tab_bar.scss +22 -0
  43. data/assets/text_block.scss +23 -0
  44. data/assets/type_definition.scss +3 -0
  45. data/assets/typedef.scss +6 -0
  46. data/bin/console +15 -0
  47. data/bin/setup +8 -0
  48. data/exe/docrb-html +12 -0
  49. data/lib/renderer/component/breadcrumb.rb +14 -0
  50. data/lib/renderer/component/checkbox.rb +9 -0
  51. data/lib/renderer/component/class_header.rb +14 -0
  52. data/lib/renderer/component/class_mod_name.rb +9 -0
  53. data/lib/renderer/component/component_list.rb +15 -0
  54. data/lib/renderer/component/doc_box.rb +38 -0
  55. data/lib/renderer/component/documentation_block.rb +9 -0
  56. data/lib/renderer/component/footer.rb +9 -0
  57. data/lib/renderer/component/markdown.rb +9 -0
  58. data/lib/renderer/component/method_argument.rb +106 -0
  59. data/lib/renderer/component/method_display.rb +9 -0
  60. data/lib/renderer/component/method_list.rb +9 -0
  61. data/lib/renderer/component/project_header.rb +9 -0
  62. data/lib/renderer/component/reference.rb +24 -0
  63. data/lib/renderer/component/symbol.rb +9 -0
  64. data/lib/renderer/component/tab_bar.rb +9 -0
  65. data/lib/renderer/component/text_block.rb +15 -0
  66. data/lib/renderer/component/type_definition.rb +9 -0
  67. data/lib/renderer/component/typedef.rb +9 -0
  68. data/lib/renderer/component.rb +50 -0
  69. data/lib/renderer/core_extensions.rb +11 -0
  70. data/lib/renderer/defs/specialized_object.rb +172 -0
  71. data/lib/renderer/defs/specialized_projection.rb +31 -0
  72. data/lib/renderer/defs.rb +180 -0
  73. data/lib/renderer/helpers.rb +82 -0
  74. data/lib/renderer/metadata.rb +44 -0
  75. data/lib/renderer/page.rb +17 -0
  76. data/lib/renderer/template.rb +38 -0
  77. data/lib/renderer/version.rb +5 -0
  78. data/lib/renderer.rb +129 -0
  79. data/renderer.gemspec +31 -0
  80. data/script/makecomponent +23 -0
  81. data/script/reload.js +14 -0
  82. data/script/serve +2 -0
  83. data/script/watch +17 -0
  84. data/templates/base.erb +25 -0
  85. data/templates/breadcrumb.erb +28 -0
  86. data/templates/checkbox.erb +8 -0
  87. data/templates/class_header.erb +53 -0
  88. data/templates/class_mod_name.erb +3 -0
  89. data/templates/component_list.erb +21 -0
  90. data/templates/doc_box.erb +82 -0
  91. data/templates/documentation_block.erb +18 -0
  92. data/templates/footer.erb +9 -0
  93. data/templates/markdown.erb +3 -0
  94. data/templates/method_argument.erb +29 -0
  95. data/templates/method_display.erb +28 -0
  96. data/templates/method_list.erb +25 -0
  97. data/templates/project_header.erb +38 -0
  98. data/templates/reference.erb +14 -0
  99. data/templates/symbol.erb +3 -0
  100. data/templates/tab_bar.erb +7 -0
  101. data/templates/text_block.erb +16 -0
  102. data/templates/type_definition.erb +4 -0
  103. data/templates/typedef.erb +3 -0
  104. metadata +178 -0
@@ -0,0 +1,3 @@
1
+ <% div("markdown-base", id:) do %>
2
+ <%= source %>
3
+ <% end %>
@@ -0,0 +1,29 @@
1
+ <% div("method-argument-base", id:) do %>
2
+ <% if computed[:rest] %>
3
+ <span class="rest-arg <%= computed[:rest] %>"></span>
4
+ <% end %>
5
+
6
+ <%= computed[:name] %>
7
+
8
+ <% if computed[:continuation] %>
9
+ <span class="continuation <%= computed[:continuation] %>"></span>
10
+ <% end %>
11
+
12
+ <% if computed.dig(:value, :kind) == :method_call_argument %>
13
+ <% elsif computed.dig(:value, :kind) == :const
14
+ last = computed.dig(:value, :value).pop
15
+ %>
16
+ <% computed.dig(:value, :value).each do |val| %>
17
+ <% if val[:kind] == :continuation %>
18
+ <span class="continuation colon double"></span>
19
+ <% elsif val[:kind] == :class_or_module %>
20
+ <span class="class_or_module">
21
+ <%= val[:value] %>
22
+ </span>
23
+ <% end %>
24
+ <% end %>
25
+ <span class="simple-argument plain"><%= last[:value] %></span>
26
+ <% elsif computed.dig(:value, :kind) %>
27
+ <span class="simple-argument <%= computed[:value][:kind] %>"><%= computed[:value][:value] %></span>
28
+ <% end %>
29
+ <% end %>
@@ -0,0 +1,28 @@
1
+ <% div("method-display-base", id:) do %>
2
+ <%= decoration && !decoration.empty? && svg(decoration, class_name: "decoration", title: decoration == "inherited" ? "Inherited" : "Override") || "" %>
3
+ <%= type && typedef(name: type) %>
4
+ <% base = capture do %>
5
+ <div class="container">
6
+ <div class="method-name"><%= name %></div>
7
+ <% if args %>
8
+ <div class="argument-container<%= args.empty? ? "" : " not-empty" %>">
9
+ <% args.map do |i| %>
10
+ <%= method_argument(**i) %>
11
+ <% end %>
12
+ </div>
13
+ <% end %>
14
+ </div>
15
+ <% end %>
16
+ <% if href && !href.empty? %>
17
+ <a class="dashed" href="<%= href %>">
18
+ <%= base %>
19
+ </a>
20
+ <% else %>
21
+ <%= base %>
22
+ <% end %>
23
+ <% if visibility&.downcase != 'public' %>
24
+ <div class="label"><%= visibility %></div>
25
+ <% elsif ![nil, 'public'].include? doc&.dig(:doc_visibility_annotation) %>
26
+ <div class="label"><%= doc.dig(:doc_visibility_annotation) %></div>
27
+ <% end %>
28
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <% div("method-list-base", id:) do %>
2
+ <% list && list.length > 0 && list.each do |i| %>
3
+ <div class="method-definition"
4
+ id="<%= i[:type] %>-<%= i[:name] %>"
5
+ data-visibility="<%= i.dig(:doc, :doc_visibility_annotation) || '' %>"
6
+ data-origin="<%= i.dig(:origin) %>">
7
+ <div class="method-block">
8
+ <%= method_display(**i.merge(type: nil).slice(*Renderer::Component::MethodDisplay.instance_variable_get(:@props))) %>
9
+ </div>
10
+ <div class="doc-block">
11
+ <%= documentation_block(doc: i[:doc]) %>
12
+ </div>
13
+ <details class="source-block">
14
+ <summary>
15
+ <span class="expanded">Hide Source</span>
16
+ <span class="collapsed">Show Source</span>
17
+ </summary>
18
+ <%= markdown(source: i[:defined_by][:markdown_source]) %>
19
+ <div class="from">
20
+ Defined in <a href="<%= git_url(i[:defined_by]) %>" class="dotted"><%= clean_file_path(i[:defined_by]) %>, <%= line_range(i[:defined_by]) %></a>
21
+ </div>
22
+ </details>
23
+ </div>
24
+ <% end %>
25
+ <% end %>
@@ -0,0 +1,38 @@
1
+ <% div("project-header-base", id:) do %>
2
+ <div class="project">
3
+ <h1><%= name %></h1>
4
+ <h3><%= description %></h3>
5
+ </div>
6
+ <div class="right">
7
+ <div class="label">
8
+ <a href="https://github.com/heyvito/docrb" rel="noreferrer" target="_blank">
9
+ <%= svg('docrb-label') %>
10
+ </a>
11
+ </div>
12
+ <div class="link-panel">
13
+ <% if owner %>
14
+ <div class="link-row">
15
+ <span><%= owner %></span>
16
+ <%= svg('user') %>
17
+ </div>
18
+ <% end %>
19
+ <% if license %>
20
+ <div class="link-row">
21
+ <span><%= license %></span>
22
+ <%= svg('balance') %>
23
+ </div>
24
+ <% end %>
25
+ <% links.each do |link| %>
26
+ <div class="link-row">
27
+ <span><a href="<%= link[:href] %>"
28
+ class="dashed"
29
+ rel="noreferrer"
30
+ target="_blank">
31
+ <%= link[:href].gsub(/^https?:\/\//, '') %>
32
+ </a></span>
33
+ <%= svg(link[:kind]) %>
34
+ </div>
35
+ <% end %>
36
+ </div>
37
+ </div>
38
+ <% end %>
@@ -0,0 +1,14 @@
1
+ <% div("reference-base", id:) do %>
2
+ <% if unresolved %>
3
+ <span class="unresolved" title="Docrb could not resolve this reference. It may be from an external library or dynamically-generated method.">
4
+ <%= svg('questionmark') %>
5
+ <span><%= ref[:contents] %></span>
6
+ </span>
7
+ <% else %>
8
+ <a href="<%= path.join('/') %>">
9
+ <span class="resolved <%= ref[:ref_type] %>">
10
+ <span><%= ref[:contents] %></span>
11
+ </span>
12
+ </a>
13
+ <% end %>
14
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <% div("symbol-base", id:) do %>
2
+ <%= name %>
3
+ <% end %>
@@ -0,0 +1,7 @@
1
+ <% div("tab-bar-base", id:) do %>
2
+ <% items.each.with_index do |i, idx| %>
3
+ <a href="<%= i[:href] %>" class="<%= idx == selected_index ? "selected" : "" %>">
4
+ <%= i[:name] %>
5
+ </a>
6
+ <% end %>
7
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <% div("text-block-base", id:) do %>
2
+ <% list.each do |i| %>
3
+ <% if i[:type] == 'span' %>
4
+ <div class="html inline"><%= i[:contents] %></div>
5
+ <% elsif i[:type] == 'ref' %>
6
+ <%= reference(ref: i) %>
7
+ <% elsif i[:type] == 'html' %>
8
+ <div class="html"><%= i[:contents] %></div>
9
+ <% elsif i[:type] == 'sym_ref' %>
10
+ <%= symbol(name: i[:contents]) %>
11
+ <% else %>
12
+ Unknown textblock item <%= i[:kind] %><br/>
13
+ <%= i.to_json %>
14
+ <% end %>
15
+ <% end %>
16
+ <% end %>
@@ -0,0 +1,4 @@
1
+ <% div("type-definition-base", id:) do %>
2
+ <%= typedef(name: type) %>
3
+ <%= class_mod_name(href: href, name: name) %>
4
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <% div("typedef-base", id:) do %>
2
+ <%= name %>
3
+ <% end %>
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: docrb-html
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Victor Gama
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2023-02-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.14'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.14'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sassc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.4'
41
+ description: Docrb's HTML Generator
42
+ email:
43
+ - hey@vito.io
44
+ executables:
45
+ - docrb-html
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - ".editorconfig"
50
+ - ".gitignore"
51
+ - ".rubocop.yml"
52
+ - Gemfile
53
+ - Gemfile.lock
54
+ - assets/breadcrumb.scss
55
+ - assets/checkbox.scss
56
+ - assets/class_header.scss
57
+ - assets/class_mod_name.scss
58
+ - assets/component_list.scss
59
+ - assets/container.scss
60
+ - assets/doc_box.scss
61
+ - assets/documentation_block.scss
62
+ - assets/favicon.ico
63
+ - assets/fonts.scss
64
+ - assets/footer.scss
65
+ - assets/images/balance.svg
66
+ - assets/images/breadcrumb_separator.svg
67
+ - assets/images/checkbox-off.svg
68
+ - assets/images/checkbox-on.svg
69
+ - assets/images/chevron.svg
70
+ - assets/images/docrb-label.svg
71
+ - assets/images/github.svg
72
+ - assets/images/home.svg
73
+ - assets/images/inherited.svg
74
+ - assets/images/override.svg
75
+ - assets/images/questionmark.svg
76
+ - assets/images/rubygems.svg
77
+ - assets/images/user.svg
78
+ - assets/js/filtering.js
79
+ - assets/links.scss
80
+ - assets/markdown.scss
81
+ - assets/method_argument.scss
82
+ - assets/method_display.scss
83
+ - assets/method_list.scss
84
+ - assets/project_header.scss
85
+ - assets/reference.scss
86
+ - assets/shared.scss
87
+ - assets/style.scss
88
+ - assets/symbol.scss
89
+ - assets/tab_bar.scss
90
+ - assets/text_block.scss
91
+ - assets/type_definition.scss
92
+ - assets/typedef.scss
93
+ - bin/console
94
+ - bin/setup
95
+ - exe/docrb-html
96
+ - lib/renderer.rb
97
+ - lib/renderer/component.rb
98
+ - lib/renderer/component/breadcrumb.rb
99
+ - lib/renderer/component/checkbox.rb
100
+ - lib/renderer/component/class_header.rb
101
+ - lib/renderer/component/class_mod_name.rb
102
+ - lib/renderer/component/component_list.rb
103
+ - lib/renderer/component/doc_box.rb
104
+ - lib/renderer/component/documentation_block.rb
105
+ - lib/renderer/component/footer.rb
106
+ - lib/renderer/component/markdown.rb
107
+ - lib/renderer/component/method_argument.rb
108
+ - lib/renderer/component/method_display.rb
109
+ - lib/renderer/component/method_list.rb
110
+ - lib/renderer/component/project_header.rb
111
+ - lib/renderer/component/reference.rb
112
+ - lib/renderer/component/symbol.rb
113
+ - lib/renderer/component/tab_bar.rb
114
+ - lib/renderer/component/text_block.rb
115
+ - lib/renderer/component/type_definition.rb
116
+ - lib/renderer/component/typedef.rb
117
+ - lib/renderer/core_extensions.rb
118
+ - lib/renderer/defs.rb
119
+ - lib/renderer/defs/specialized_object.rb
120
+ - lib/renderer/defs/specialized_projection.rb
121
+ - lib/renderer/helpers.rb
122
+ - lib/renderer/metadata.rb
123
+ - lib/renderer/page.rb
124
+ - lib/renderer/template.rb
125
+ - lib/renderer/version.rb
126
+ - renderer.gemspec
127
+ - script/makecomponent
128
+ - script/reload.js
129
+ - script/serve
130
+ - script/watch
131
+ - templates/base.erb
132
+ - templates/breadcrumb.erb
133
+ - templates/checkbox.erb
134
+ - templates/class_header.erb
135
+ - templates/class_mod_name.erb
136
+ - templates/component_list.erb
137
+ - templates/doc_box.erb
138
+ - templates/documentation_block.erb
139
+ - templates/footer.erb
140
+ - templates/markdown.erb
141
+ - templates/method_argument.erb
142
+ - templates/method_display.erb
143
+ - templates/method_list.erb
144
+ - templates/project_header.erb
145
+ - templates/reference.erb
146
+ - templates/symbol.erb
147
+ - templates/tab_bar.erb
148
+ - templates/text_block.erb
149
+ - templates/type_definition.erb
150
+ - templates/typedef.erb
151
+ homepage: https://github.com/heyvito/docrb
152
+ licenses:
153
+ - MIT
154
+ metadata:
155
+ homepage_uri: https://github.com/heyvito/docrb
156
+ source_code_uri: https://github.com/heyvito/docrb/tree/trunk/lib/docrb-html
157
+ changelog_uri: https://github.com/heyvito/docrb
158
+ rubygems_mfa_required: 'true'
159
+ post_install_message:
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '3.2'
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubygems_version: 3.4.2
175
+ signing_key:
176
+ specification_version: 4
177
+ summary: Docrb's HTML Generator
178
+ test_files: []