docrb-html 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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: []