hanna-nouveau 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52755db97cb250d4385d7f839ed8950910cfb1337f63ce41d2a951d91b8746d1
4
- data.tar.gz: 8f26757a43140bf3842d132c06f0d4305fdbd509136ef4b0eb091b43cc8c1514
3
+ metadata.gz: 54497bac5426465da4abdbebdf20ec3013f62fb9748cc1af78444cb534a5b48b
4
+ data.tar.gz: 509cb544f7b3795c56c7da4356794d52e2959cedb763cda6b2d31d38f6e4d33d
5
5
  SHA512:
6
- metadata.gz: 5585d843b226869da0135ab78b42a3223ff6ec6c1e406aa801591acf411caff98a6053a43da95f4d6fdc5419b57a3194b741cdc309bf26ce3b6388b7bfa1a92f
7
- data.tar.gz: b5ef4af2677a2ad9bede9317e6e78b2e13764160ccd1d7d75aeec3966a8e94f59c92c226266170c435b077ffb57d2abe5040c1278feb9957776b5f452ef17e4d
6
+ metadata.gz: 5ea89935bf112288288377a09e56e648f495877c4b49133937ae7f963204855a4774fead5b25ea9cc56f80781ec7c0fa2ed89e2fb0e37ecdb97cec4650463c16
7
+ data.tar.gz: 1cc75c4a3af790c98d84063c3956f03943d9dda0e7ebd78c3e380b1820755c964da299a0e8a1bfd1b5ed919346f01456a83cc98a93222883cfaaf0c29a86f3a2
data/lib/hanna-nouveau.rb CHANGED
@@ -1,300 +1 @@
1
- # frozen-string-literal: true
2
-
3
- # = A better RDoc HTML template
4
-
5
- require 'pathname'
6
- require 'erb'
7
- # :nocov:
8
- require 'rdoc/rdoc' unless defined?(RDoc::Markup::ToHtml)
9
- # :nocov:
10
- require 'rdoc/generator'
11
-
12
- # Hanna version of RDoc::Generator
13
- class RDoc::Generator::Hanna
14
- STYLE = 'styles.css'
15
- LAYOUT = 'layout.erb'
16
-
17
- INDEX_PAGE = 'index.erb'
18
- CLASS_PAGE = 'page.erb'
19
- METHOD_LIST_PAGE = 'method_list.erb'
20
- FILE_PAGE = CLASS_PAGE
21
- SECTIONS_PAGE = 'sections.erb'
22
-
23
- FILE_INDEX = 'file_index.erb'
24
- CLASS_INDEX = 'class_index.erb'
25
- METHOD_INDEX = 'method_index.erb'
26
-
27
- CLASS_DIR = 'classes'
28
- FILE_DIR = 'files'
29
-
30
- INDEX_OUT = 'index.html'
31
- FILE_INDEX_OUT = 'fr_file_index.html'
32
- CLASS_INDEX_OUT = 'fr_class_index.html'
33
- METHOD_INDEX_OUT = 'fr_method_index.html'
34
- STYLE_OUT = File.join('css', 'style.css')
35
-
36
- METHOD_SEARCH_JS = "method_search.js"
37
-
38
- DESCRIPTION = 'RDoc generator designed with simplicity, beauty and ease of browsing in mind'
39
-
40
- RDoc::RDoc.add_generator( self )
41
-
42
- class << self
43
- alias for new
44
- end
45
-
46
- def initialize( store, options )
47
- @options = options
48
- @store = store
49
-
50
- @templatedir = Pathname.new File.expand_path('../hanna-nouveau/template_files', __FILE__)
51
-
52
- @files = nil
53
- @classes = nil
54
- @methods = nil
55
- @attributes = nil
56
-
57
- @basedir = Pathname.pwd.expand_path
58
- end
59
-
60
- def generate
61
- @outputdir = Pathname.new( @options.op_dir ).expand_path( @basedir )
62
-
63
- @files = @store.all_files.sort
64
- @classes = @store.all_classes_and_modules.sort
65
- @methods = @classes.map {|m| m.method_list }.flatten.sort
66
- @attributes = @classes.map(&:attributes).flatten.sort
67
-
68
- # Now actually write the output
69
- write_static_files
70
- generate_indexes
71
- generate_class_files
72
- generate_file_files
73
- end
74
-
75
- def write_static_files
76
- css_dir = outjoin('css')
77
- FileUtils.mkdir_p css_dir
78
- File.binwrite(File.join(css_dir, 'style.css'), File.read(templjoin(STYLE)))
79
- end
80
-
81
- def generate_indexes
82
- @main_page_uri = @files.find { |f| f.name == @options.main_page }.path rescue ''
83
- File.binwrite(outjoin(INDEX_OUT), erb_template(templjoin(INDEX_PAGE)).to_html(binding))
84
-
85
- generate_index(FILE_INDEX_OUT, FILE_INDEX, 'File', { :files => @files})
86
- generate_index(CLASS_INDEX_OUT, CLASS_INDEX, 'Class', { :classes => @classes })
87
- generate_index(METHOD_INDEX_OUT, METHOD_INDEX, 'Method', { :methods => @methods, :attributes => @attributes })
88
-
89
- File.binwrite(outjoin(METHOD_SEARCH_JS), File.binread(templjoin(METHOD_SEARCH_JS)))
90
- end
91
-
92
- def generate_index(outfile, templfile, index_name, values)
93
- values.merge!({
94
- :stylesheet => STYLE_OUT,
95
- :list_title => "#{index_name} Index"
96
- })
97
-
98
- index = erb_template(templjoin(templfile))
99
-
100
- File.binwrite(outjoin(outfile), with_layout(values){index.to_html(binding, values)})
101
- end
102
-
103
- def generate_file_files
104
- file_page = erb_template(templjoin(FILE_PAGE))
105
- method_list_page = erb_template(templjoin(METHOD_LIST_PAGE))
106
-
107
- @files.each do |file|
108
- path = Pathname.new(file.path)
109
- stylesheet = Pathname.new(STYLE_OUT).relative_path_from(path.dirname)
110
-
111
- values = {
112
- :file => file,
113
- :entry => file,
114
- :stylesheet => stylesheet,
115
- :classmod => nil,
116
- :title => file.base_name,
117
- :list_title => nil,
118
- :description => file.description
119
- }
120
-
121
- result = with_layout(values) do
122
- file_page.to_html(binding, :values => values) do
123
- method_list_page.to_html(binding, values)
124
- end
125
- end
126
-
127
- dir = path.dirname
128
- FileUtils.mkdir_p dir
129
- File.binwrite(outjoin(file.path), result)
130
- end
131
- end
132
-
133
- def generate_class_files
134
- class_page = erb_template(templjoin(CLASS_PAGE))
135
- method_list_page = erb_template(templjoin(METHOD_LIST_PAGE))
136
- sections_page = erb_template(templjoin(SECTIONS_PAGE))
137
-
138
- @classes.each do |klass|
139
- outfile = classfile(klass)
140
- stylesheet = Pathname.new(STYLE_OUT).relative_path_from(outfile.dirname)
141
- sections = {}
142
- klass.each_section do |section, constants, attributes|
143
- method_types = []
144
- alias_types = []
145
- klass.methods_by_type(section).each do |type, visibilities|
146
- visibilities.each do |visibility, methods|
147
- aliases, methods = methods.partition{|x| x.is_alias_for}
148
- method_types << ["#{visibility.to_s.capitalize} #{type.to_s.capitalize}", methods.sort] unless methods.empty?
149
- alias_types << ["#{visibility.to_s.capitalize} #{type.to_s.capitalize}", aliases.sort] unless aliases.empty?
150
- end
151
- end
152
- sections[section] = {:constants=>constants, :attributes=>attributes, :method_types=>method_types, :alias_types=>alias_types}
153
- end
154
-
155
- values = {
156
- :file => klass.path,
157
- :entry => klass,
158
- :stylesheet => stylesheet,
159
- :classmod => klass.type,
160
- :title => klass.full_name,
161
- :list_title => nil,
162
- :description => klass.description,
163
- :sections => sections
164
- }
165
-
166
- result = with_layout(values) do
167
- h = {:values => values}
168
- class_page.to_html(binding, h) do
169
- method_list_page.to_html(binding, h) + sections_page.to_html(binding, h)
170
- end
171
- end
172
-
173
- dir = outfile.dirname
174
- FileUtils.mkdir_p dir
175
- File.binwrite(outfile, result)
176
- end
177
- end
178
-
179
- def with_layout(values)
180
- layout = erb_template(templjoin(LAYOUT))
181
- layout.to_html(binding, :values => values) { yield }
182
- end
183
-
184
- def frame_link(content)
185
- content.gsub(%r!<a[ \n]href="https?://[^>]*>!).each do |tag|
186
- a_tag, rest = tag.split(' ', 2)
187
- rest.gsub!(/target="[^"]*"/, '')
188
- a_tag + ' target="_top" ' + rest
189
- end
190
- end
191
-
192
- def class_dir
193
- CLASS_DIR
194
- end
195
-
196
- def file_dir
197
- FILE_DIR
198
- end
199
-
200
- def h(html)
201
- CGI::escapeHTML(html.to_s)
202
- end
203
-
204
- def render_class_tree(entries, prefix=nil, out=String.new)
205
- namespaces = { }
206
-
207
- entries.sort.each do |klass|
208
- full_name = klass.full_name
209
- next if namespaces[full_name]
210
-
211
- class_prefix = "#{full_name}::"
212
- subentries = @classes.select{|c| c.full_name.start_with?(class_prefix)}
213
- subentries.each { |x| namespaces[x.full_name] = true }
214
-
215
- text = prefix ? (prefix + klass.name) : klass.name
216
- link = link_to(text, classfile(klass))
217
-
218
- if subentries.empty?
219
- out << "<span class=\"class-link\">" << link << "</span>\n"
220
- else
221
- out << '<details'
222
- out << ' open' if full_name.count(':') == 0
223
- out << '><summary>' << link << "</summary>\n"
224
- render_class_tree(subentries, "<span class=\"parent\">#{full_name}::</span>", out)
225
- out << "</details>"
226
- end
227
- end
228
-
229
- out
230
- end
231
-
232
- def link_to(text, url)
233
- %[<a href="#{url}">#{text}</a>]
234
- end
235
-
236
- def link_to_method(entry, url)
237
- method_name = entry.pretty_name rescue entry.name
238
- module_name = entry.parent_name rescue entry.name
239
- link_to %Q(<span class="method_name" value="#{entry.name}">#{h method_name}</span> <span class="module_name">(#{h module_name})</span>), url
240
- end
241
-
242
- def classfile(klass)
243
- Pathname.new(File.join(CLASS_DIR, klass.full_name.split('::')) + '.html')
244
- end
245
-
246
- def outjoin(name)
247
- File.join(@outputdir, name)
248
- end
249
-
250
- def templjoin(name)
251
- File.join(@templatedir, name)
252
- end
253
-
254
- class ERB < ::ERB
255
- def to_html(binding, values = nil, &block)
256
- local_values = {}
257
- binding.local_variables.each do |lv|
258
- local_values[lv] = binding.local_variable_get(lv)
259
- end
260
- binding.local_variable_set(:values, values) if values
261
- binding.local_variable_set(:block, block) if block
262
- html = result(binding)
263
- local_values.each do |lv, val|
264
- binding.local_variable_set(lv, val)
265
- end
266
- html
267
- end
268
- end
269
-
270
- def erb_template(file)
271
- ERB.new(File.read(file))
272
- end
273
-
274
- module LabelListTable
275
- def list_item_start(list_item, list_type)
276
- case list_type
277
- when :LABEL, :NOTE
278
- "<tr><td class='label'>#{Array(list_item.label).map{|label| to_html(label)}.join("<br />")}</td><td>"
279
- else
280
- super
281
- end
282
- end
283
-
284
- def list_end_for(list_type)
285
- case list_type
286
- when :LABEL, :NOTE then
287
- "</td></tr>"
288
- else
289
- super
290
- end
291
- end
292
- end
293
- end
294
-
295
- class RDoc::Markup::ToHtml
296
- LIST_TYPE_TO_HTML[:LABEL] = ['<table class="rdoc-list label-list"><tbody>', '</tbody></table>']
297
- LIST_TYPE_TO_HTML[:NOTE] = ['<table class="rdoc-list note-list"><tbody>', '</tbody></table>']
298
-
299
- prepend RDoc::Generator::Hanna::LabelListTable
300
- end
1
+ require 'hanna'
data/lib/rdoc/discover.rb CHANGED
@@ -1 +1 @@
1
- require 'hanna-nouveau'
1
+ require 'hanna'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanna-nouveau
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Evans
@@ -11,82 +11,34 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-01-10 00:00:00.000000000 Z
14
+ date: 2023-08-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: rdoc
17
+ name: hanna
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '4'
22
+ version: '1.5'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '4'
30
- - !ruby/object:Gem::Dependency
31
- name: minitest-hooks
32
- requirement: !ruby/object:Gem::Requirement
33
- requirements:
34
- - - ">="
35
- - !ruby/object:Gem::Version
36
- version: '0'
37
- type: :development
38
- prerelease: false
39
- version_requirements: !ruby/object:Gem::Requirement
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- - !ruby/object:Gem::Dependency
45
- name: minitest-global_expectations
46
- requirement: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: '0'
51
- type: :development
52
- prerelease: false
53
- version_requirements: !ruby/object:Gem::Requirement
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: '0'
58
- description: RDoc generator designed with simplicity, beauty and ease of browsing
59
- in mind
29
+ version: '1.5'
30
+ description: Loads hanna due to gem rename
60
31
  email: code@jeremyevans.net
61
32
  executables: []
62
33
  extensions: []
63
- extra_rdoc_files:
64
- - LICENSE
65
- - README.rdoc
66
- - CHANGELOG
34
+ extra_rdoc_files: []
67
35
  files:
68
- - CHANGELOG
69
- - LICENSE
70
- - README.rdoc
71
36
  - lib/hanna-nouveau.rb
72
- - lib/hanna-nouveau/template_files/class_index.erb
73
- - lib/hanna-nouveau/template_files/file_index.erb
74
- - lib/hanna-nouveau/template_files/index.erb
75
- - lib/hanna-nouveau/template_files/layout.erb
76
- - lib/hanna-nouveau/template_files/method_index.erb
77
- - lib/hanna-nouveau/template_files/method_list.erb
78
- - lib/hanna-nouveau/template_files/method_search.js
79
- - lib/hanna-nouveau/template_files/page.erb
80
- - lib/hanna-nouveau/template_files/sections.erb
81
- - lib/hanna-nouveau/template_files/styles.css
82
37
  - lib/rdoc/discover.rb
83
- homepage: https://github.com/jeremyevans/hanna-nouveau
38
+ homepage: https://github.com/jeremyevans/hanna
84
39
  licenses:
85
40
  - MIT
86
- metadata:
87
- bug_tracker_uri: https://github.com/jeremyevans/hanna-nouveau/issues
88
- mailing_list_uri: https://github.com/jeremyevans/hanna-nouveau/discussions
89
- source_code_uri: https://github.com/jeremyevans/hanna-nouveau
41
+ metadata: {}
90
42
  post_install_message:
91
43
  rdoc_options: []
92
44
  require_paths:
@@ -102,8 +54,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
54
  - !ruby/object:Gem::Version
103
55
  version: '0'
104
56
  requirements: []
105
- rubygems_version: 3.4.1
57
+ rubygems_version: 3.4.10
106
58
  signing_key:
107
59
  specification_version: 4
108
- summary: RDoc generator designed with simplicity, beauty and ease of browsing in mind
60
+ summary: Loads hanna due to gem rename
109
61
  test_files: []
data/CHANGELOG DELETED
@@ -1,109 +0,0 @@
1
- # 1.4.0 (2023-01-10)
2
-
3
- * Improve style for mobile devices (janko) (#18, #19)
4
-
5
- # 1.3.0 (2022-06-27)
6
-
7
- * Use details/summary for class index (jeremyevans)
8
-
9
- * Optimize render_class_tree, and avoid creation of O(n^2) regexps (jeremyevans)
10
-
11
- * Use target="_top" for https links as well as http links (jeremyevans)
12
-
13
- # 1.2.0 (2021-12-23)
14
-
15
- * Remove dependency on haml, by switching to stdlib erb (jeremyevans)
16
-
17
- * Remove use of prototype.js for the method index, switching to plain javascript (jeremyevans)
18
-
19
- # 1.1.0 (2021-12-15)
20
-
21
- * Remove dependency on sass, by converting the stylesheet to CSS (jeremyevans)
22
-
23
- * Avoid Ruby verbose mode warnings (jeremyevans)
24
-
25
- # 1.0.4 (2020-06-24)
26
-
27
- * Avoid whitespace between method name and argument list (jeremyevans)
28
-
29
- # 1.0.3 (2018-02-15)
30
-
31
- * Avoid using deprecated sass color operators (jeremyevans)
32
-
33
- # 1.0.2 (2017-07-01)
34
-
35
- * Handle documenting BasicObject (jeremyevans)
36
-
37
- # 1.0.1 (2016-10-12)
38
-
39
- * Remove unneeded and harmful target="docwin" from links (jeremyevans)
40
-
41
- # 1.0.0 (2016-09-21)
42
-
43
- * Support haml 4+ and rdoc 5+ (jeremyevans)
44
-
45
- * Remove no longer needed override of parseable? in rdoc (jeremyevans)
46
-
47
- # 0.4.2 (2014-11-26)
48
-
49
- * Use ruby's built-in syntax parser instead of parser gem to check for valid syntax (jeremyevans)
50
-
51
- # 0.4.1 (2014-08-29)
52
-
53
- * Update syntax highlighting color for comments and strings (jeremyevans)
54
-
55
- # 0.4.0 (2014-08-19)
56
-
57
- * Add parser as a dependency for checking for valid Ruby syntax (jeremyevans)
58
-
59
- * Use table instead of dl for better styling of label/note lists (jeremyevans)
60
-
61
- * Syntax highlight ruby code blocks, not just method source (jeremyevans)
62
-
63
- # 0.3.0 (2014-06-18)
64
-
65
- * Show superclass instead of parent for classes (Quintus, jeremyevans)
66
-
67
- * Add support for RDoc 4 (Atsushi Nagase, jeremyevans)
68
-
69
- # 0.2.7 (2013-03-23)
70
-
71
- * Remove duplicate entries from method index (jeremyevans)
72
-
73
- * Fix attribute links (jeremyevans)
74
-
75
- # 0.2.6 (2013-03-01)
76
-
77
- * Fix homepage in gem (erikh)
78
-
79
- # 0.2.5 (2013-03-01)
80
-
81
- * Restrict rdoc version in gem to ~> 3.1, since the gem doesn't work with RDoc 4 (jeremyevans)
82
-
83
- # 0.2.4 (2011-07-24)
84
-
85
- * Respect markup in section comments (jeremyevans)
86
-
87
- * Fix class/singleton attribute anchors (jeremyevans)
88
-
89
- * Work with RDoc 3.8+ (jeremyevans)
90
-
91
- * Support RDoc sections (jeremyevans)
92
-
93
- * Automatically link classes, modules, included modules, and attributes (jeremyevans)
94
-
95
- # 0.2.3 (2011-05-12)
96
-
97
- * Sort method, aliases, and attribute lists (jeremyevans)
98
-
99
- # 0.2.2 (2010-12-28)
100
-
101
- * Work with RDoc 3.1+ (erikh)
102
-
103
- # 0.2.1 (2010-12-23)
104
-
105
- * Rename internal files to hanna-nouveau (erikh)
106
-
107
- # 0.2.0 (2010-12-23)
108
-
109
- * Initial release
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2009 Mislav Marohnić
2
- Copyright (c) 2010, 2011 Erik Hollensbe
3
- Copyright (c) 2011-2022 Jeremy Evans
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy of
6
- this software and associated documentation files (the "Software"), to deal in
7
- the Software without restriction, including without limitation the rights to
8
- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
- the Software, and to permit persons to whom the Software is furnished to do so,
10
- subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
- FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
- COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
- IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc DELETED
@@ -1,63 +0,0 @@
1
- = Hanna-nouveau
2
-
3
- Hanna-nouveau is an RDoc generator built with simplicity, beauty
4
- and ease of browsing in mind.
5
-
6
- == Installation
7
-
8
- gem install hanna-nouveau
9
-
10
- == Usage
11
-
12
- rdoc -o doc -f hanna lib
13
-
14
- An alternative is to set the `RDOCOPT` environment variable:
15
-
16
- RDOCOPT="-f hanna"
17
-
18
- This will make RDoc always use hanna-nouveau unless it is explicitly overridden.
19
-
20
- == Integrating with RubyGems
21
-
22
- If you put the following line in your .gemrc, this will make
23
- RubyGems use Hanna for all rdoc generation:
24
-
25
- rdoc: -f hanna
26
-
27
- After doing this, if you wish to have documentation for all your installed gems
28
- to be formatted in hanna:
29
-
30
- gem rdoc --all --overwrite
31
-
32
- == Rake task
33
-
34
- For repeated generation of API docs, you can set up a Rake task. Set
35
- hanna as the RDoc generator:
36
-
37
- require 'rdoc/task'
38
- RDoc::Task.new do |rdoc|
39
- rdoc.generator = 'hanna'
40
- end
41
-
42
- == Modification to RDoc
43
-
44
- Hanna makes a small modification to RDoc to generate more
45
- friendly documentation. It changes label lists to use a table
46
- instead of a description list, since it is very difficult to
47
- get visually appealing styling for description lists without
48
- cutting corners (like using fixed widths).
49
-
50
- == Contributors
51
-
52
- The Hanna template was created by {Mislav}[http://mislav.uniqpath.com/] and
53
- since then has seen contributions from:
54
-
55
- 1. {Tony Strauss}[https://github.com/DesigningPatterns], who participated from
56
- the early start and made tons of fixes and enhancements to the template.
57
- 2. {Michael Granger}[https://github.com/ged] who maintained the original RDoc template.
58
- 3. {Hongli Lai}[https://blog.phusion.nl/] with the search filter for methods.
59
- 4. {Erik Hollensbe}[https://github.com/erikh] a serious refactoring and up to
60
- date with RDoc 2.5.x and 3.x, now named 'hanna-nouveau'.
61
- 5. {James Tucker}[https://github.com/raggi] minor cleanups and RubyGems integration
62
- 6. {Jeremy Evans}[https://github.com/jeremyevans] RDoc 4+ support, switch from
63
- haml/sass to erb, maintenance since 2014.
@@ -1,4 +0,0 @@
1
- <h1><%=h values[:list_title] %></h1>
2
- <div class='classes' id='index-entries'>
3
- <%= render_class_tree(values[:classes].select{|x| x.full_name !~ /::/}) %>
4
- </div>
@@ -1,9 +0,0 @@
1
- <h1>File Index</h1><% any_hidden = false %>
2
- <ol class='files' id='index-entries'>
3
- <% values[:files].each do |file|
4
- hide = file.name =~ /\.rb$/
5
- any_hidden = true if hide %><li<%= " class='other'" if hide %>><%= link_to(file.name, file.path) %></li>
6
- <% end %><% if any_hidden %><li>
7
- <a class='show' href='#' onclick='this.parentNode.parentNode.className += &quot; expanded&quot;; this.parentNode.removeChild(this); return false'>show all</a>
8
- </li><% end %>
9
- </ol>
@@ -1,15 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
2
- <html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
3
- <head>
4
- <title><%=h @options.title %></title>
5
- <meta content='text/html; charset=<%=h @options.charset %>' http-equiv='Content-Type'>
6
- </head>
7
- <frameset border='1' bordercolor='gray' cols='20%, *' frameborder='1'>
8
- <frameset rows='15%, 35%, 50%'>
9
- <frame name='Files' src='fr_file_index.html' title='Files'>
10
- <frame name='Classes' src='fr_class_index.html'>
11
- <frame name='Methods' src='fr_method_index.html'>
12
- </frameset>
13
- <frame name='docwin' src='<%=h @main_page_uri %>'></frame>
14
- </frameset>
15
- </html>
@@ -1,35 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><% values = values[:values]; index = values[:list_title] %>
2
- <html lang='en'>
3
- <head>
4
- <title><%= h(values[:title]) if values[:title] %></title>
5
- <meta name='viewport' content='width=device-width, initial-scale=1'>
6
- <meta content='text/html; charset=<%=h @options.charset %>' http-equiv='Content-Type'>
7
- <link href='<%=h values[:stylesheet] %>' media='screen' rel='stylesheet' type='text/css'>
8
- <% if index %><base target='docwin'>
9
- <% else %><script type='text/javascript'>
10
- function popupCode(url) {
11
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
12
- }
13
-
14
- function toggleCode(id) {
15
- var code = document.getElementById(id)
16
-
17
- code.style.display = code.style.display != 'block' ? 'block' : 'none'
18
- return true
19
- }
20
-
21
- // Make codeblocks hidden by default
22
- document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
23
- </script>
24
- <% end %></head>
25
- <body class='<%= index ? 'list' : 'page' %>'>
26
- <% if index %><div id='index'><%= yield %></div>
27
- <% else %><div class='<%= values[:classmod] ? 'class' : 'file' %>' id='wrapper'>
28
- <%= yield %>
29
- <div id='footer-push'></div>
30
- </div>
31
- <div id='footer'>
32
- <a href="https://github.com/jeremyevans/hanna-nouveau"><strong>Hanna Nouveau</strong> RDoc template</a>
33
- </div>
34
- <% end %></body>
35
- </html>
@@ -1,11 +0,0 @@
1
- <h1><%=h values[:list_title] %></h1>
2
- <form id='search_form'>
3
- <input autocomplete='off' class='untouched' id='search' placeholder='Enter search terms...' type='text'>
4
- <span class='clear_button' id='clear_button'>
5
- x
6
- </span>
7
- </form>
8
- <ol class='methods' id='index-entries'>
9
- <% (values[:attributes] + values[:methods]).uniq.each do |entry| %><li><%= link_to_method(entry, [classfile(entry.parent), entry.aref].join('#')) %></li>
10
- <% end %></ol>
11
- <script src='method_search.js' type='text/javascript'></script>
@@ -1,58 +0,0 @@
1
- <%
2
- values = values[:values] if values[:values]
3
- entry = values[:entry]
4
- sections = values[:sections].keys if values.has_key?(:sections)
5
- methods = entry.method_list + entry.attributes
6
- unless methods.empty? %><div id='method-list'>
7
- <h2>Methods</h2>
8
- <% %w[attr attr_accessor attr_reader attr_writer class instance].each do |type|
9
- (RDoc::VISIBILITIES rescue RDoc::Context::VISIBILITIES).each do |vis|
10
- list = methods.reject { |x| x.respond_to?(:is_alias_for) && x.is_alias_for }.select { |x| x.visibility == vis && x.type == type.to_s }.sort
11
- next if list.empty?
12
- type_result = ""
13
- if type =~ /^attr_/
14
- type_result += type.sub(/^attr_/, '').capitalize
15
- else
16
- type_result += type.capitalize
17
- end
18
- type_result = "#{vis.to_s.capitalize} #{type_result}"
19
- %><h3><%=h type_result %></h3>
20
- <ol>
21
- <%
22
- list.each do |method|
23
- if method.respond_to?(:aref)
24
- if method.name.to_s.empty? && method.call_seq %><li><%= link_to(method.call_seq.gsub(/<br\s*\/?>/, "").split(/[\r\n]+/).map{ |s| s.split(/([({]+|\[\{|\s+(#?=>|&rarr;)\s+)/).first.sub(/^[A-Za-z0-9_:]+\./, "").sub(/\s+=\s+.*/, "=").strip }.uniq.join("<br />\n"), '#' + method.aref) %></li>
25
- <% else %><li><%= link_to(method.name, '#' + method.aref) %></li>
26
- <% end
27
- elsif method.respond_to?(:html_name) %><li><%= link_to(method.name, "#method-#{method.html_name}") %></li>
28
- <% else %><li><%=h method.name %></li>
29
- <% end
30
- end %></ol>
31
- <% end
32
- end %></div>
33
- <%
34
- end
35
- if entry.requires or sections or entry.includes %><div id='context'>
36
- <% unless entry.requires.empty? %><div id='requires'>
37
- <h2>Required files</h2>
38
- <ol>
39
- <% entry.requires.each do |req| %><li><%=h req.name %></li>
40
- <% end %></ol>
41
- </div>
42
- <% end
43
- if sections && (sections.length > 1 || sections.first.title.to_s != '')
44
- %><div id='contents'>
45
- <h2>Contents</h2>
46
- <ol>
47
- <% sections.sort_by{|s| s.title.to_s}.each do |section| %><li><%= link_to(section.title, "##{section.aref}") %></li>
48
- <% end %></ol>
49
- </div>
50
- <% end
51
- unless entry.includes.empty?
52
- %><div id='includes'>
53
- <h2>Included modules</h2>
54
- <ol>
55
- <% entry.includes.each do |inc| %><li><%= (mod = inc.module).is_a?(String) ? h(inc.name) : link_to(inc.name, entry.aref_to(mod.path)) %></li>
56
- <% end %></ol>
57
- </div>
58
- <% end %></div><% end %>
@@ -1,45 +0,0 @@
1
- var search_box = document.getElementById('search');
2
- var search_timeout;
3
- var search_value = search_box.value;
4
-
5
- function performSearch(e) {
6
- if (e) {
7
- e.preventDefault();
8
- }
9
- if (search.value === search_value) {
10
- return;
11
- }
12
- search_value = search_box.value;
13
-
14
- if (search_value == '') {
15
- document.querySelectorAll("#index-entries li.hide").forEach(elem => {
16
- elem.classList.remove('hide');
17
- });
18
- } else {
19
- document.querySelectorAll("#index-entries span.method_name").forEach(elem => {
20
- var value = elem.getAttribute('value');
21
- var li_classes = elem.parentElement.parentElement.classList;
22
- if (value && value.includes(search_value)) {
23
- li_classes.remove('hide');
24
- } else {
25
- li_classes.add('hide');
26
- }
27
- });
28
- }
29
- }
30
-
31
- document.getElementById('search_form').onsubmit = performSearch;
32
-
33
- search.oninput = function(e) {
34
- if (search_timeout) {
35
- clearTimeout(search_timeout);
36
- }
37
- search_timeout = setTimeout(performSearch, 300);
38
- };
39
-
40
- document.getElementById('clear_button').onclick = function(e) {
41
- e.stopPropagation();
42
- search_box.value = '';
43
- performSearch();
44
- search_box.focus();
45
- };
@@ -1,48 +0,0 @@
1
- <%
2
- values = values[:values] if values[:values]
3
- file_page = !values[:classmod]
4
- title_in_description = values[:entry].description && values[:entry].description =~ /^\s*<h1>/m
5
- %><div class='header'>
6
- <%
7
- title = if file_page
8
- h(values[:file].name)
9
- else
10
- "<span class='type'>#{values[:classmod]}</span>\n#{h values[:entry].full_name}"
11
- end
12
-
13
- if title_in_description %><div class='name'><%= title %></div>
14
- <% else %><h1 class='name'><%= title %>
15
- </h1>
16
- <% end
17
-
18
- if file_page %><div class='paths'>
19
- <%=h values[:file].relative_name %>
20
- </div>
21
- <% else %><ol class='paths'>
22
- <% values[:entry].in_files.each_with_index do |file, index| %><li<%= " class='other'" if index > 0 %>>
23
- <%= link_to(file.full_name, Pathname.new(file.path).relative_path_from(Pathname.new(values[:entry].path).dirname)) %>
24
- </li>
25
- <% end
26
- if values[:entry].in_files.size > 1 %><li>
27
- <a class='show' href='#' onclick='this.parentNode.parentNode.className += &quot; expanded&quot;; this.parentNode.removeChild(this); return false'>show all</a>
28
- </li>
29
- <% end %></ol>
30
- <% end
31
-
32
- if !file_page && values[:entry].type == "class" %><div class='parent'>
33
- Superclass:
34
- <strong><%= (values[:entry].superclass.kind_of?(String) || !values[:entry].superclass) ? h(values[:entry].superclass) : link_to(values[:entry].superclass.name, Pathname.new(class_dir) + Pathname.new(values[:entry].superclass.path).relative_path_from(Pathname.new values[:entry].path)) %></strong>
35
- </div>
36
- <% end
37
-
38
- if values[:entry].respond_to?(:last_modified) and values[:entry].last_modified %><div class='last-update'>
39
- Last Update:
40
- <span class='datetime'><%=h values[:entry].last_modified %></span>
41
- </div>
42
- <% end %></div>
43
- <div id='content'>
44
- <div id='text'>
45
- <% if values[:description] %><div id='description'><%= frame_link(values[:description]) %></div>
46
- <% end %><%= frame_link(block.call) %>
47
- </div>
48
- </div>
@@ -1,92 +0,0 @@
1
- <%
2
- values = values[:values] if values[:values]
3
- unless values[:entry].classes_and_modules.empty? %><div id='class-list'>
4
- <h2>Classes and Modules</h2>
5
- <ol>
6
- <% (values[:entry].modules.sort + values[:entry].classes.sort).each do |mod| %><li><%= link_to(mod.full_name, values[:entry].aref_to(mod.path)) %></li>
7
- <% end %></ol>
8
- </div>
9
- <% end
10
-
11
- values[:sections].sort_by{|s, h| s.title.to_s}.each do |section, h|
12
- constants, attributes, alias_types, method_types = h.values_at(:constants, :attributes, :alias_types, :method_types)
13
- %><div id='section'>
14
- <% if section.title.to_s != '' %><h2>
15
- <a name='<%=h section.aref %>'><%=h section.title %></a>
16
- <% if section.comment %><div class='section-comment'><%= section.description %></div>
17
- <% end %></h2>
18
- <% end
19
- unless constants.empty? %><div id='constants-list'>
20
- <h2>Constants</h2>
21
- <div class='name-list'>
22
- <table summary='Constants'>
23
- <% constants.each do |const| %><tr class='top-aligned-row context-row'>
24
- <td class='context-item-name'><%= const.name %></td>
25
- <td>=</td>
26
- <td class='context-item-value'><%= const.value %></td>
27
- <% if const.description %><td>&nbsp;</td>
28
- <td class='context-item-desc'><%= const.description %></td>
29
- <% end %></tr>
30
- <% end %></table>
31
- </div>
32
- </div>
33
- <% end
34
- unless alias_types.empty?
35
- alias_types.each do |type, aliases|
36
- %><div id='aliases-list'>
37
- <h2><%= type %> Aliases</h2>
38
- <div class='name-list'>
39
- <table summary='<%= type %> Aliases'>
40
- <% aliases.each do |alia| %><tr class='top-aligned-row context-row'>
41
- <td class='context-item-name'><%= alia.name %></td>
42
- <td>-&gt;</td>
43
- <td class='context-item-value'><%= link_to(alia.is_alias_for.name, "##{alia.is_alias_for.aref}") %></td>
44
- <% unless alia.description.empty? %><td class='context-item-desc'><%= alia.description %></td>
45
- <% end %></tr>
46
- <% end %></table>
47
- </div>
48
- </div>
49
- <% end
50
- end
51
- unless attributes.empty? %><div id='attribute-list'>
52
- <h2 class='section-bar'>Attributes</h2>
53
- <div class='name-list'>
54
- <table>
55
- <% attributes.each do |attrib| %><tr class='top-aligned-row context-row'>
56
- <td class='context-item-name'>
57
- <a name='<%=h attrib.aref %>'><%= attrib.name %></a>
58
- </td>
59
- <td class='context-item-value'><%= attrib.rw ? "[#{attrib.rw}]" : '&nbsp;' %></td>
60
- <td class='context-item-desc'><%= attrib.description %></td>
61
- </tr>
62
- <% end %></table>
63
- </div>
64
- </div>
65
- <% end
66
- unless method_types.empty? %><div id='methods'>
67
- <% method_types.each do |type, list| next if list.empty? %><h2><%= type %> methods</h2>
68
- <% list.each do |method| %><div class='method <%= "#{type.gsub(/\s+/, '-')}".downcase %>' id='method-<%= method.aref %>'>
69
- <a name='<%= method.aref %>'></a>
70
- <div class='synopsis'>
71
- <% if method.call_seq %><span class='name'>
72
- <% method.call_seq.split(/\r?\n/).each do |seq| %><div><%= seq %></div>
73
- </span>
74
- <% end
75
- else %><span class='name'><%= method.name %></span><span class='arguments'><%= method.params %></span>
76
-
77
- <% end %></div>
78
- <% if method.description %><div class='description'>
79
- <%= method.description %>
80
- </div>
81
- <% end
82
- if method.markup_code
83
- name = "#{method.aref}-source" %><div class='source'>
84
- <a class='source-toggle' href='#' onclick='toggleCode(&#39;<%= name %>&#39;); return false'>
85
- [show source]
86
- </a>
87
- <pre id='<%= name %>'><%= method.markup_code %></pre>
88
- </div>
89
- <% end %></div>
90
- <% end
91
- end %></div>
92
- <% end %></div><% end %>
@@ -1,368 +0,0 @@
1
- html, body {
2
- height: 100%; }
3
-
4
- body {
5
- font-family: Lucida Grande, Verdana, Arial, Helvetica, sans-serif;
6
- font-size: 90%;
7
- margin: 0;
8
- padding: 0;
9
- background: white;
10
- color: black; }
11
-
12
- #wrapper {
13
- min-height: 100%;
14
- height: auto !important;
15
- height: 100%;
16
- margin: 0 auto -43px; }
17
-
18
- #footer-push {
19
- height: 43px; }
20
-
21
- div.header, #footer {
22
- background: #eeeeee; }
23
-
24
- #footer {
25
- border-top: 1px solid silver;
26
- margin-top: 12px;
27
- padding: 0 2em;
28
- line-height: 30px;
29
- text-align: center;
30
- font-variant: small-caps;
31
- font-size: 95%; }
32
-
33
- .clearing:after {
34
- content: ".";
35
- visibility: hidden;
36
- height: 0;
37
- display: block;
38
- clear: both; }
39
- * html .clearing {
40
- height: 1px; }
41
- .clearing *:first-child + html {
42
- overflow: hidden; }
43
-
44
- h1, h2, h3, h4, h5, h6 {
45
- margin: 0;
46
- font-weight: normal; }
47
-
48
- a {
49
- color: #0b3e71; }
50
- a:hover {
51
- background: #336699;
52
- text-decoration: none;
53
- color: #eeeeff; }
54
-
55
- #diagram img {
56
- border: 0; }
57
-
58
- #description a, .method .description a, .header a {
59
- color: #336699; }
60
- #description a:hover, .method .description a:hover, .header a:hover {
61
- color: #eeeeee; }
62
- #description h1 a, #description h2 a, #description h3 a, #description h4 a, #description h5 a, #description h6 a, .method .description h1 a, .method .description h2 a, .method .description h3 a, .method .description h4 a, .method .description h5 a, .method .description h6 a, .header h1 a, .header h2 a, .header h3 a, .header h4 a, .header h5 a, .header h6 a {
63
- color: #0b3e71; }
64
-
65
- ol {
66
- margin: 0;
67
- padding: 0;
68
- list-style: none; }
69
- ol li {
70
- margin-left: 0;
71
- white-space: nowrap; }
72
- ol li.other {
73
- display: none; }
74
-
75
- ol.expanded li.other {
76
- display: list-item; }
77
-
78
- table {
79
- margin-bottom: 1em;
80
- font-size: 1em;
81
- border-collapse: collapse; }
82
- table td, table th {
83
- padding: 0.4em 0.8em; }
84
- table thead {
85
- background-color: #e8e8e8; }
86
- table thead th {
87
- font-variant: small-caps;
88
- color: #666666; }
89
- table tr {
90
- border-bottom: 1px solid silver; }
91
-
92
- #index a.show, div.header a.show {
93
- text-decoration: underline;
94
- font-style: italic;
95
- color: #666666; }
96
- #index a.show:after, div.header a.show:after {
97
- content: " ..."; }
98
- #index a.show:hover, div.header a.show:hover {
99
- color: black;
100
- background: #ffffee; }
101
-
102
- #index {
103
- font: 85%/1.2 Arial, Helvetica, sans-serif; }
104
- #index a {
105
- text-decoration: none; }
106
- #index h1 {
107
- padding: 0.2em 0.5em 0.1em;
108
- background: #cccccc;
109
- font: small-caps 1.2em Georgia, serif;
110
- color: #333333;
111
- border-bottom: 1px solid gray; }
112
- #index form {
113
- margin: 0;
114
- padding: 0; }
115
- #index form input {
116
- margin: 0.4em 3px 0 0.4em;
117
- width: 80%; }
118
- #index form #search.untouched {
119
- color: #777777; }
120
- #index form .clear_button {
121
- -moz-border-radius: 7px;
122
- -webkit-border-radius: 7px;
123
- background: #aaaaaa;
124
- color: white;
125
- padding: 0 5px 1px 5px;
126
- cursor: pointer; }
127
- #index ol {
128
- padding: 0.4em 0.5em; }
129
- #index ol li {
130
- white-space: nowrap; }
131
- #index #index-entries li.hide {
132
- display: none; }
133
- #index #index-entries.all li.hide {
134
- display: block; }
135
- #index #index-entries li a {
136
- padding: 1px 2px; }
137
- #index #index-entries.classes {
138
- font-size: 1.1em; }
139
- #index #index-entries.classes ol {
140
- padding: 0; }
141
- #index #index-entries.classes span.nodoc {
142
- display: none; }
143
- #index #index-entries.classes span.nodoc, #index #index-entries.classes a {
144
- font-weight: bold; }
145
- #index #index-entries.classes .parent {
146
- font-weight: normal; }
147
- #index #index-entries.methods li, #index #search-results.methods li {
148
- margin-bottom: 0.2em; }
149
- #index #index-entries.methods li a .method_name, #index #search-results.methods li a .method_name {
150
- margin-right: 0.25em; }
151
- #index #index-entries.methods li a .module_name, #index #search-results.methods li a .module_name {
152
- color: #666666; }
153
- #index #index-entries.methods li a:hover .module_name, #index #search-results.methods li a:hover .module_name {
154
- color: #dddddd; }
155
-
156
- #index div#index-entries.classes details > summary { list-style: none; white-space: nowrap; }
157
- #index div#index-entries.classes details > summary::marker { content: none; }
158
- #index div#index-entries.classes details > summary:after { content: " \25B6"; }
159
- #index div#index-entries.classes details[open] > summary:after { content: " \25BC"; }
160
- #index div#index-entries.classes span.class-link { display: block; white-space: nowrap; }
161
-
162
- #attribute-list .context-item-name {
163
- font-weight: bold; }
164
-
165
- div.header {
166
- font-size: 80%;
167
- padding: 0.5em 1rem;
168
- font-family: Arial, Helvetica, sans-serif;
169
- border-bottom: 1px solid silver; }
170
- div.header .name {
171
- font-size: 1.6em;
172
- font-family: Georgia, serif;
173
- overflow-wrap: break-word; }
174
- div.header .name .type {
175
- color: #666666;
176
- font-size: 80%;
177
- font-variant: small-caps; }
178
- div.header h1.name {
179
- font-size: 2.2em; }
180
- div.header .paths, div.header .last-update, div.header .parent {
181
- color: #666666; }
182
- div.header .last-update .datetime {
183
- color: #484848; }
184
- div.header .parent {
185
- margin-top: 0.3em; }
186
- div.header .parent strong {
187
- font-weight: normal;
188
- color: #484848; }
189
-
190
- #content {
191
- padding: 12px 1rem; }
192
- #content pre, #content .method .synopsis {
193
- font: 14px Monaco, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace;
194
- overflow-wrap: break-word; }
195
- #content pre {
196
- color: black;
197
- background: #eeeeee;
198
- border: 1px solid silver;
199
- padding: 0.5em 0.8em;
200
- overflow: auto; }
201
- #content p code, #content p tt, #content li code, #content li tt, #content dl code, #content dl tt {
202
- font: 14px Monaco, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace;
203
- background: #ffffe3;
204
- padding: 2px 3px;
205
- line-height: 1.4; }
206
- #content h1 code, #content h1 tt, #content h2 code, #content h2 tt, #content h3 code, #content h3 tt, #content h4 code, #content h4 tt, #content h5 code, #content h5 tt, #content h6 code, #content h6 tt {
207
- font-size: 1.1em; }
208
- #content #text {
209
- position: relative; }
210
- #content #description p {
211
- margin-top: 0.5em; }
212
- #content #description h1, #content #description h2, #content #description h3, #content #description h4, #content #description h5, #content #description h6 {
213
- font-family: Georgia, serif; }
214
- #content #description h1 {
215
- font-size: 2.2em;
216
- margin-bottom: 0.2em;
217
- border-bottom: 3px double #d8d8d8;
218
- padding-bottom: 0.1em; }
219
- #content #description h2 {
220
- font-size: 1.8em;
221
- color: #0e3062;
222
- margin: 0.8em 0 0.3em 0; }
223
- #content #description h3 {
224
- font-size: 1.6em;
225
- margin: 0.8em 0 0.3em 0;
226
- color: #666666; }
227
- #content #description h4 {
228
- font-size: 1.4em;
229
- margin: 0.8em 0 0.3em 0; }
230
- #content #description h5 {
231
- font-size: 1.2em;
232
- margin: 0.8em 0 0.3em 0;
233
- color: #0e3062; }
234
- #content #description h6 {
235
- font-size: 1em;
236
- margin: 0.8em 0 0.3em 0;
237
- color: #666666; }
238
- #content #description ul, #content #description ol, #content .method .description ul, #content .method .description ol {
239
- margin: 0.8em 0;
240
- padding-left: 1.5em; }
241
- #content #description ol, #content .method .description ol {
242
- list-style: decimal; }
243
- #content #description ol li, #content .method .description ol li {
244
- white-space: normal; }
245
- #content table.rdoc-list {
246
- border-collapse: collapse;
247
- border-spacing: 0;
248
- width: 100%;
249
- overflow: auto;
250
- display: block; }
251
- #content table.rdoc-list tr {
252
- background-color: white; }
253
- #content table.rdoc-list tr:nth-child(2n) {
254
- background-color: #f8f8f8; }
255
- #content table.rdoc-list td.label {
256
- font-weight: bold; }
257
- #content table.rdoc-list td {
258
- border: 1px solid #ddd;
259
- padding: 6px 13px; }
260
-
261
- #method-list {
262
- max-height: 30rem;
263
- background: #eeeeee;
264
- border: 1px solid silver;
265
- padding: 0.4em 1%;
266
- overflow-y: auto;
267
- overflow-x: hidden; }
268
- #method-list h2 {
269
- font-size: 1.3em; }
270
- #method-list h3 {
271
- font-variant: small-caps;
272
- text-transform: capitalize;
273
- font-family: Georgia, serif;
274
- color: #666666;
275
- font-size: 1.1em; }
276
- #method-list ol {
277
- padding: 0 0 0.5em 0.5em; }
278
-
279
- #context {
280
- border-top: 1px dashed silver;
281
- margin-top: 1em;
282
- margin-bottom: 1em; }
283
-
284
- #context h2, #section h2 {
285
- font: small-caps 1.2em Georgia, serif;
286
- color: #444444;
287
- margin: 1em 0 0.2em 0; }
288
-
289
- .name-list, #class-list ol, #context ol {
290
- overflow: auto; }
291
-
292
- #methods .method {
293
- border: 1px solid silver;
294
- margin-top: 0.5em;
295
- background: #eeeeee; }
296
- #methods .method .synopsis {
297
- color: black;
298
- background: silver;
299
- padding: 0.2em 1em; }
300
- #methods .method .synopsis .name {
301
- font-weight: bold; }
302
- #methods .method .synopsis a {
303
- text-decoration: none; }
304
- #methods .method .description {
305
- padding: 0 1em; }
306
- #methods .method .description pre {
307
- background: #f8f8f8; }
308
- #methods .method .source {
309
- margin: 0.5em 0; }
310
- #methods .method .source-toggle {
311
- font-size: 85%;
312
- margin-left: 1em; }
313
- #methods .public-class {
314
- background: #ffffe4; }
315
- #methods .public-instance .synopsis {
316
- color: #eeeeee;
317
- background: #336699; }
318
-
319
- #content .method .source pre, #content pre.ruby, #methods .method .description pre.ruby {
320
- background: #262626;
321
- color: #ffdead;
322
- padding: 0.5em;
323
- border: 1px dashed #999999;
324
- overflow: auto; }
325
- #content .method .source pre .ruby-constant, #content pre.ruby .ruby-constant, #methods .method .description pre.ruby .ruby-constant {
326
- color: #7fffd4;
327
- background: transparent; }
328
- #content .method .source pre .ruby-keyword, #content pre.ruby .ruby-keyword, #methods .method .description pre.ruby .ruby-keyword {
329
- color: aqua;
330
- background: transparent; }
331
- #content .method .source pre .ruby-ivar, #content pre.ruby .ruby-ivar, #methods .method .description pre.ruby .ruby-ivar {
332
- color: #eedd82;
333
- background: transparent; }
334
- #content .method .source pre .ruby-operator, #content pre.ruby .ruby-operator, #methods .method .description pre.ruby .ruby-operator {
335
- color: #00ffee;
336
- background: transparent; }
337
- #content .method .source pre .ruby-identifier, #content pre.ruby .ruby-identifier, #methods .method .description pre.ruby .ruby-identifier {
338
- color: #ffdead;
339
- background: transparent; }
340
- #content .method .source pre .ruby-string, #content pre.ruby .ruby-string, #methods .method .description pre.ruby .ruby-string {
341
- color: #faa;
342
- background: transparent; }
343
- #content .method .source pre .ruby-node, #content pre.ruby .ruby-node, #methods .method .description pre.ruby .ruby-node {
344
- color: #ffa07a;
345
- background: transparent; }
346
- #content .method .source pre .ruby-comment, #content pre.ruby .ruby-comment, #methods .method .description pre.ruby .ruby-comment {
347
- color: #fdf;
348
- font-weight: bold;
349
- background: transparent; }
350
- #content .method .source pre .ruby-regexp, #content pre.ruby .ruby-regexp, #methods .method .description pre.ruby .ruby-regexp {
351
- color: #ffa07a;
352
- background: transparent; }
353
- #content .method .source pre .ruby-value, #content pre.ruby .ruby-value, #methods .method .description pre.ruby .ruby-value {
354
- color: #7fffd4;
355
- background: transparent; }
356
-
357
- @media (min-width: 640px) {
358
- div.class #content {
359
- position: relative;
360
- width: 72%; }
361
-
362
- #method-list {
363
- position: absolute;
364
- top: 0px;
365
- right: -33%;
366
- width: 28%;
367
- }
368
- }