utopia-project 0.42.0 → 0.44.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/context/documentation-guidelines.md +3 -3
- data/context/index.yaml +3 -1
- data/lib/utopia/project/base.md +1 -1
- data/lib/utopia/project/base.rb +3 -3
- data/lib/utopia/project/document.rb +22 -15
- data/lib/utopia/project/inheritance.rb +20 -19
- data/lib/utopia/project/renderer.rb +24 -0
- data/lib/utopia/project/version.rb +2 -2
- data/pages/_header.xnode +1 -1
- data/pages/reference/_declaration.xnode +2 -1
- data/pages/reference/_relationships.xnode +22 -16
- data/pages/reference/controller.rb +1 -1
- data/pages/reference/show.xnode +2 -2
- data/public/_static/site.css +0 -4
- data/readme.md +4 -4
- data/releases.md +4 -0
- data.tar.gz.sig +0 -0
- metadata +7 -5
- 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: 7f02594d75aca403abee0bf56e3e2ec4e398a81df172f6c62cf73cdccba11bc5
|
|
4
|
+
data.tar.gz: bc73b831e8e44df2de6759154a24d91d0d228e062e5c790d5956788ebddc5177
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3dd75a8af1c68d0b7d4b64856f569d13468e6b3296303bcad6b02f3595709821c88de4387212aad33a629caa2854b8f5e6ebfdebfe1e0b7a17975ba44f846d68
|
|
7
|
+
data.tar.gz: 0e731e759758f27e1d64a721a9e5aa9eb275e76bf7e01e3e4fe027d2baad520c3b3f249a28bd049fb392278e47a3f646322d54488648136fdba389adc4f0b5c0
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
|
@@ -16,7 +16,7 @@ Source code documentation is included adjacent to the code it describes, using s
|
|
|
16
16
|
However, in short:
|
|
17
17
|
|
|
18
18
|
- Documentation is expected to be in markdown format.
|
|
19
|
-
- You may embed links to definitions using
|
|
19
|
+
- You may embed links to definitions using ruby:`MyClass` or ruby:`my_method`.
|
|
20
20
|
- You can use tags:
|
|
21
21
|
- `@parameters name [Type] Description.`
|
|
22
22
|
- `@yields {|argument| ...} If a block is given.`
|
|
@@ -173,7 +173,7 @@ $ bundle add $project
|
|
|
173
173
|
|
|
174
174
|
`$project` has several core concepts:
|
|
175
175
|
|
|
176
|
-
- A
|
|
176
|
+
- A ruby:`MyProject::MyClass` which represents the main entry point for using the project.
|
|
177
177
|
|
|
178
178
|
## Usage
|
|
179
179
|
|
|
@@ -284,7 +284,7 @@ Following `utopia-project` guidelines, each guide should:
|
|
|
284
284
|
2. **Provide user context**: Explain why users would need this feature
|
|
285
285
|
3. **Include practical examples**: Working code samples that demonstrate real scenarios
|
|
286
286
|
4. **Follow consistent structure**: Problem → Use Cases → Implementation → Best Practices
|
|
287
|
-
5. **Cross-reference appropriately**: Use
|
|
287
|
+
5. **Cross-reference appropriately**: Use ruby:`ClassName` for internal references
|
|
288
288
|
6. **Include error handling**: Show how to handle common failure scenarios
|
|
289
289
|
7. **Provide troubleshooting**: Common issues and solutions
|
|
290
290
|
8. **Maintain currency**: Keep examples updated with latest best practices
|
data/context/index.yaml
CHANGED
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
---
|
|
4
4
|
description: A project documentation tool based on Utopia.
|
|
5
5
|
metadata:
|
|
6
|
+
bug_tracker_uri: https://github.com/socketry/utopia-project/issues
|
|
7
|
+
changelog_uri: https://github.com/socketry/utopia-project/blob/main/releases.md
|
|
6
8
|
documentation_uri: https://socketry.github.io/utopia-project/
|
|
7
9
|
funding_uri: https://github.com/sponsors/ioquatix/
|
|
8
|
-
source_code_uri: https://github.com/socketry/utopia-project
|
|
10
|
+
source_code_uri: https://github.com/socketry/utopia-project.git
|
|
9
11
|
files:
|
|
10
12
|
- path: getting-started.md
|
|
11
13
|
title: Getting Started
|
data/lib/utopia/project/base.md
CHANGED
data/lib/utopia/project/base.rb
CHANGED
|
@@ -136,12 +136,12 @@ module Utopia
|
|
|
136
136
|
end
|
|
137
137
|
|
|
138
138
|
# Format the given text in the context of the given definition and language.
|
|
139
|
-
# See
|
|
139
|
+
# See ruby:`document` for details.
|
|
140
140
|
# @returns [XRB::MarkupString]
|
|
141
141
|
#
|
|
142
142
|
# @example Format text with code links
|
|
143
143
|
# base = Utopia::Project::Base.new
|
|
144
|
-
# base.format("See
|
|
144
|
+
# base.format("See ruby:`Utopia::Project::Base#guides`.") # => XRB::MarkupString
|
|
145
145
|
def format(text, definition = nil, language: definition&.language, **options)
|
|
146
146
|
if document = self.document(text, definition, language: language)
|
|
147
147
|
return XRB::Markup.raw(
|
|
@@ -152,7 +152,7 @@ module Utopia
|
|
|
152
152
|
|
|
153
153
|
# Convert the given markdown text into HTML.
|
|
154
154
|
#
|
|
155
|
-
# Updates
|
|
155
|
+
# Updates language-prefixed inline code (e.g. `ruby:` followed by inline code) into links.
|
|
156
156
|
#
|
|
157
157
|
# @returns [Document]
|
|
158
158
|
#
|
|
@@ -29,7 +29,7 @@ module Utopia
|
|
|
29
29
|
# Parse and resolve the document root.
|
|
30
30
|
# @returns [Markly::Node] The root document node.
|
|
31
31
|
def root
|
|
32
|
-
@root ||= resolve(Markly.parse(@text, extensions: [:table]))
|
|
32
|
+
@root ||= resolve(Markly.parse(@text, flags: Markly::INLINE_CODE_INFO, extensions: [:table]))
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
# Extract the leading heading as the document title.
|
|
@@ -99,7 +99,12 @@ module Utopia
|
|
|
99
99
|
# @parameter node [Markly::Node] The node to render.
|
|
100
100
|
# @returns [XRB::MarkupString] The rendered HTML markup.
|
|
101
101
|
def to_html(node = self.root, **options)
|
|
102
|
-
renderer = Renderer.new(
|
|
102
|
+
renderer = Renderer.new(
|
|
103
|
+
inline_code_resolver: (@index ? method(:reference_node) : nil),
|
|
104
|
+
ids: true,
|
|
105
|
+
flags: Markly::UNSAFE,
|
|
106
|
+
**options
|
|
107
|
+
)
|
|
103
108
|
XRB::Markup.raw(renderer.render(node))
|
|
104
109
|
end
|
|
105
110
|
|
|
@@ -160,15 +165,9 @@ module Utopia
|
|
|
160
165
|
# @parameter language [String | Nil] The source language name.
|
|
161
166
|
# @returns [Markly::Node] The code node.
|
|
162
167
|
def code_node(content, language = nil)
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
)
|
|
167
|
-
else
|
|
168
|
-
node = Markly::Node.new(:code)
|
|
169
|
-
node.string_content = content
|
|
170
|
-
return node
|
|
171
|
-
end
|
|
168
|
+
node = Markly::Node.new(:code)
|
|
169
|
+
node.string_content = content
|
|
170
|
+
node.code_info = language if language
|
|
172
171
|
|
|
173
172
|
return node
|
|
174
173
|
end
|
|
@@ -176,9 +175,17 @@ module Utopia
|
|
|
176
175
|
private
|
|
177
176
|
|
|
178
177
|
# Replace source code references in the given text with HTML anchors.
|
|
179
|
-
#
|
|
180
|
-
|
|
181
|
-
|
|
178
|
+
# @parameter content [String] The source code reference.
|
|
179
|
+
# @parameter language [String | Nil] The explicit source language.
|
|
180
|
+
# @returns [Markly::Node] The resolved link or code node.
|
|
181
|
+
def reference_node(content, language: nil)
|
|
182
|
+
reference = if language
|
|
183
|
+
@index.languages.reference_for(language, content)
|
|
184
|
+
else
|
|
185
|
+
@index.languages.parse_reference(content, default_language: @default_language)
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
if reference
|
|
182
189
|
definition = @index.lookup(reference, relative_to: @definition)
|
|
183
190
|
end
|
|
184
191
|
|
|
@@ -189,7 +196,7 @@ module Utopia
|
|
|
189
196
|
elsif reference
|
|
190
197
|
code_node(reference.identifier, reference.language.name)
|
|
191
198
|
else
|
|
192
|
-
code_node(content)
|
|
199
|
+
code_node(content, language)
|
|
193
200
|
end
|
|
194
201
|
end
|
|
195
202
|
|
|
@@ -13,8 +13,8 @@ module Utopia
|
|
|
13
13
|
# A method inherited from another definition.
|
|
14
14
|
Method = Struct.new(:name, :definition)
|
|
15
15
|
|
|
16
|
-
#
|
|
17
|
-
Group = Struct.new(:definition, :methods)
|
|
16
|
+
# Methods inherited through a direct relationship.
|
|
17
|
+
Group = Struct.new(:kind, :definition, :methods)
|
|
18
18
|
|
|
19
19
|
# Initialize inheritance resolution for the given definition.
|
|
20
20
|
# @parameter index [Decode::Index] The index used to resolve relationships.
|
|
@@ -55,10 +55,10 @@ module Utopia
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
# Enumerate documented public and protected methods inherited by the definition.
|
|
58
|
-
# @returns [Array(Group)] Methods grouped by the
|
|
58
|
+
# @returns [Array(Group)] Methods grouped by the direct relationship which provides them.
|
|
59
59
|
def inherited_methods
|
|
60
60
|
@groups = []
|
|
61
|
-
@
|
|
61
|
+
@groups_by_relationship = {}
|
|
62
62
|
|
|
63
63
|
collect_instance_methods(@definition, false, {}, {})
|
|
64
64
|
collect_class_methods(@definition, false, {}, {})
|
|
@@ -113,46 +113,46 @@ module Utopia
|
|
|
113
113
|
end
|
|
114
114
|
end
|
|
115
115
|
|
|
116
|
-
def collect_instance_methods(definition, include_own, seen, visited, display_prefix
|
|
116
|
+
def collect_instance_methods(definition, include_own, seen, visited, display_prefix: "#", kind: nil, provider: nil)
|
|
117
117
|
key = [definition.qualified_name, display_prefix]
|
|
118
118
|
return if visited[key]
|
|
119
119
|
visited[key] = true
|
|
120
120
|
|
|
121
121
|
relationship_definitions(definition, :prepends).reverse_each do |relationship|
|
|
122
|
-
collect_instance_methods(relationship, true, seen, visited, display_prefix)
|
|
122
|
+
collect_instance_methods(relationship, true, seen, visited, display_prefix: display_prefix, kind: kind || :prepend, provider: provider || relationship)
|
|
123
123
|
end
|
|
124
124
|
|
|
125
|
-
collect_methods(definition, "#", display_prefix, include_own, seen)
|
|
125
|
+
collect_methods(definition, "#", display_prefix, include_own, seen, kind: kind, provider: provider)
|
|
126
126
|
|
|
127
127
|
relationship_definitions(definition, :includes).reverse_each do |relationship|
|
|
128
|
-
collect_instance_methods(relationship, true, seen, visited, display_prefix)
|
|
128
|
+
collect_instance_methods(relationship, true, seen, visited, display_prefix: display_prefix, kind: kind || :include, provider: provider || relationship)
|
|
129
129
|
end
|
|
130
130
|
|
|
131
131
|
if display_prefix == "#" && (super_class = super_class_for(definition))
|
|
132
|
-
collect_instance_methods(super_class, true, seen, visited, display_prefix)
|
|
132
|
+
collect_instance_methods(super_class, true, seen, visited, display_prefix: display_prefix, kind: kind || :super_class, provider: provider || super_class)
|
|
133
133
|
end
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
-
def collect_class_methods(definition, include_own, seen, visited)
|
|
136
|
+
def collect_class_methods(definition, include_own, seen, visited, kind: nil, provider: nil)
|
|
137
137
|
key = definition.qualified_name
|
|
138
138
|
return if visited[key]
|
|
139
139
|
visited[key] = true
|
|
140
140
|
|
|
141
|
-
collect_methods(definition, ".", ".", include_own, seen)
|
|
141
|
+
collect_methods(definition, ".", ".", include_own, seen, kind: kind, provider: provider)
|
|
142
142
|
if singleton = singleton_for(definition)
|
|
143
|
-
collect_methods(singleton, "#", ".", include_own, seen,
|
|
143
|
+
collect_methods(singleton, "#", ".", include_own, seen, kind: kind, provider: provider)
|
|
144
144
|
end
|
|
145
145
|
|
|
146
146
|
relationship_definitions(definition, :extends).reverse_each do |relationship|
|
|
147
|
-
collect_instance_methods(relationship, true, seen, {}, ".")
|
|
147
|
+
collect_instance_methods(relationship, true, seen, {}, display_prefix: ".", kind: kind || :extend, provider: provider || relationship)
|
|
148
148
|
end
|
|
149
149
|
|
|
150
150
|
if super_class = super_class_for(definition)
|
|
151
|
-
collect_class_methods(super_class, true, seen, visited)
|
|
151
|
+
collect_class_methods(super_class, true, seen, visited, kind: kind || :super_class, provider: provider || super_class)
|
|
152
152
|
end
|
|
153
153
|
end
|
|
154
154
|
|
|
155
|
-
def collect_methods(definition, source_prefix, display_prefix, include_own, seen,
|
|
155
|
+
def collect_methods(definition, source_prefix, display_prefix, include_own, seen, kind:, provider:)
|
|
156
156
|
methods_for(definition, source_prefix).each do |method|
|
|
157
157
|
name = "#{display_prefix}#{method.name}"
|
|
158
158
|
next if seen[name]
|
|
@@ -168,13 +168,14 @@ module Utopia
|
|
|
168
168
|
next unless method.documented?
|
|
169
169
|
next if method.respond_to?(:private?) && method.private?
|
|
170
170
|
|
|
171
|
-
add_method(
|
|
171
|
+
add_method(kind, provider, name, method)
|
|
172
172
|
end
|
|
173
173
|
end
|
|
174
174
|
|
|
175
|
-
def add_method(
|
|
176
|
-
|
|
177
|
-
|
|
175
|
+
def add_method(kind, provider, name, method)
|
|
176
|
+
key = [kind, provider.qualified_name]
|
|
177
|
+
group = @groups_by_relationship[key] ||= begin
|
|
178
|
+
group = Group.new(kind, provider, [])
|
|
178
179
|
@groups << group
|
|
179
180
|
group
|
|
180
181
|
end
|
|
@@ -10,6 +10,15 @@ module Utopia
|
|
|
10
10
|
module Project
|
|
11
11
|
# Renders project Markdown with support for Mermaid code blocks.
|
|
12
12
|
class Renderer < Markly::Renderer::HTML
|
|
13
|
+
# Initialize the project renderer.
|
|
14
|
+
# @parameter inline_code_resolver [Proc | Nil] Resolves language-prefixed inline code into a replacement node.
|
|
15
|
+
def initialize(inline_code_resolver: nil, **options)
|
|
16
|
+
@inline_code_resolver = inline_code_resolver
|
|
17
|
+
@resolving_inline_code = false
|
|
18
|
+
|
|
19
|
+
super(**options)
|
|
20
|
+
end
|
|
21
|
+
|
|
13
22
|
# Render a heading and expose its title to Pagefind for sub-results.
|
|
14
23
|
# @parameter node [Markly::Node] The heading node.
|
|
15
24
|
def header(node)
|
|
@@ -45,6 +54,21 @@ module Utopia
|
|
|
45
54
|
super
|
|
46
55
|
end
|
|
47
56
|
end
|
|
57
|
+
|
|
58
|
+
# Render inline code, resolving language-prefixed references when possible.
|
|
59
|
+
# @parameter node [Markly::Node] The inline code node.
|
|
60
|
+
def code(node)
|
|
61
|
+
if @inline_code_resolver && !@resolving_inline_code && (language = node.code_language)
|
|
62
|
+
begin
|
|
63
|
+
@resolving_inline_code = true
|
|
64
|
+
out(@inline_code_resolver.call(node.string_content, language: language))
|
|
65
|
+
ensure
|
|
66
|
+
@resolving_inline_code = false
|
|
67
|
+
end
|
|
68
|
+
else
|
|
69
|
+
super
|
|
70
|
+
end
|
|
71
|
+
end
|
|
48
72
|
end
|
|
49
73
|
end
|
|
50
74
|
end
|
data/pages/_header.xnode
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
?><a href="#{link.href}" class="#{active ? 'active' : nil}" aria-current="#{active ? 'page' : 'false'}">#{link.title}</a><?r
|
|
13
13
|
end ?>
|
|
14
14
|
<?r if github_url = base.source_code_uri ?>
|
|
15
|
-
<a href="#{github_url}" class="github" target="_blank" rel="noopener noreferrer" aria-label="View source on GitHub">GitHub
|
|
15
|
+
<a href="#{github_url}" class="github" target="_blank" rel="noopener noreferrer" aria-label="View source on GitHub">GitHub</a>
|
|
16
16
|
<?r end ?>
|
|
17
17
|
</div>
|
|
18
18
|
<div class="header-actions">
|
|
@@ -5,6 +5,9 @@ inheritance = base.inheritance_for(symbol)
|
|
|
5
5
|
|
|
6
6
|
relationships = inheritance.relationships
|
|
7
7
|
inherited_methods = inheritance.inherited_methods
|
|
8
|
+
inherited_methods_by_relationship = inherited_methods.to_h do |group|
|
|
9
|
+
[[group.kind, group.definition.qualified_name], group.methods]
|
|
10
|
+
end
|
|
8
11
|
|
|
9
12
|
relationship_labels = {
|
|
10
13
|
super_class: "Inherits from",
|
|
@@ -14,32 +17,35 @@ relationship_labels = {
|
|
|
14
17
|
}
|
|
15
18
|
?>
|
|
16
19
|
<?r if relationships.any? ?>
|
|
17
|
-
<dl class="relationships"><?r
|
|
20
|
+
<dl class="relationships" data-pagefind-ignore><?r
|
|
18
21
|
relationships.group_by(&:kind).each do |kind, entries|
|
|
19
22
|
?><dt>#{relationship_labels.fetch(kind)}</dt>
|
|
20
23
|
<dd><?r
|
|
21
24
|
entries.each_with_index do |relationship, index|
|
|
22
25
|
if index > 0
|
|
23
|
-
|
|
26
|
+
?>; <?r
|
|
24
27
|
end
|
|
25
28
|
|
|
26
29
|
?>#{base.linkify(relationship.name, symbol)}<?r
|
|
30
|
+
|
|
31
|
+
methods = if relationship.definition
|
|
32
|
+
key = [kind, relationship.definition.qualified_name]
|
|
33
|
+
inherited_methods_by_relationship[key]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
if methods&.any?
|
|
37
|
+
?><code>: <?r
|
|
38
|
+
methods.each_with_index do |method, method_index|
|
|
39
|
+
if method_index > 0
|
|
40
|
+
?>, <?r
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
?><a href="#{base.link_for(method.definition)}">#{method.name}</a><?r
|
|
44
|
+
end
|
|
45
|
+
?></code><?r
|
|
46
|
+
end
|
|
27
47
|
end
|
|
28
48
|
?></dd><?r
|
|
29
49
|
end
|
|
30
50
|
?></dl>
|
|
31
51
|
<?r end ?>
|
|
32
|
-
|
|
33
|
-
<?r if inherited_methods.any? ?>
|
|
34
|
-
<section>
|
|
35
|
-
<h2>Inherited Methods</h2><?r
|
|
36
|
-
inherited_methods.each do |group|
|
|
37
|
-
?><p>From <a href="#{base.link_for(group.definition)}"><code>#{group.definition.qualified_name}</code></a>:</p>
|
|
38
|
-
<ul class="index"><?r
|
|
39
|
-
group.methods.each do |method|
|
|
40
|
-
?><li><a href="#{base.link_for(method.definition)}"><code>#{method.name}</code></a></li><?r
|
|
41
|
-
end
|
|
42
|
-
?></ul><?r
|
|
43
|
-
end
|
|
44
|
-
?></section>
|
|
45
|
-
<?r end ?>
|
data/pages/reference/show.xnode
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
if nested.any?
|
|
31
31
|
?>
|
|
32
32
|
<section>
|
|
33
|
-
<h2>Classes and Modules</h2>
|
|
33
|
+
<h2>Nested Classes and Modules</h2>
|
|
34
34
|
|
|
35
35
|
<dl class="nested-definitions">
|
|
36
36
|
<?r nested.each do |symbol|
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
end
|
|
41
41
|
?>
|
|
42
42
|
<div>
|
|
43
|
-
<dt>#{partial 'content:declaration', symbol: symbol, link: true}</dt>
|
|
43
|
+
<dt>#{partial 'content:declaration', symbol: symbol, link: true, inheritance: false}</dt>
|
|
44
44
|
<dd><?r unless description&.empty? ?>#{base.format(description, symbol)}<?r end ?></dd>
|
|
45
45
|
</div>
|
|
46
46
|
<?r end ?>
|
data/public/_static/site.css
CHANGED
data/readme.md
CHANGED
|
@@ -33,6 +33,10 @@ Please see the [project documentation](https://socketry.github.io/utopia-project
|
|
|
33
33
|
|
|
34
34
|
Please see the [project releases](https://socketry.github.io/utopia-project/releases/index) for all releases.
|
|
35
35
|
|
|
36
|
+
### v0.44.0
|
|
37
|
+
|
|
38
|
+
- Add support for language-prefixed inline code references such as ruby:`Object.new`.
|
|
39
|
+
|
|
36
40
|
### v0.41.0
|
|
37
41
|
|
|
38
42
|
- Don't render empty signature block when there are only examples.
|
|
@@ -72,10 +76,6 @@ Please see the [project releases](https://socketry.github.io/utopia-project/rele
|
|
|
72
76
|
|
|
73
77
|
- Fix presentation of release notes on releases page.
|
|
74
78
|
|
|
75
|
-
### v0.31.0
|
|
76
|
-
|
|
77
|
-
- Support brief release notes in `releases.md` document.
|
|
78
|
-
|
|
79
79
|
## See Also
|
|
80
80
|
|
|
81
81
|
- [Utopia](https://github.com/socketry/utopia) — The website framework which powers this web application.
|
data/releases.md
CHANGED
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: utopia-project
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.44.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -75,14 +75,14 @@ dependencies:
|
|
|
75
75
|
requirements:
|
|
76
76
|
- - "~>"
|
|
77
77
|
- !ruby/object:Gem::Version
|
|
78
|
-
version: '0.
|
|
78
|
+
version: '0.17'
|
|
79
79
|
type: :runtime
|
|
80
80
|
prerelease: false
|
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
|
82
82
|
requirements:
|
|
83
83
|
- - "~>"
|
|
84
84
|
- !ruby/object:Gem::Version
|
|
85
|
-
version: '0.
|
|
85
|
+
version: '0.17'
|
|
86
86
|
- !ruby/object:Gem::Dependency
|
|
87
87
|
name: thread-local
|
|
88
88
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -378,13 +378,15 @@ files:
|
|
|
378
378
|
- template/config/serve.rb
|
|
379
379
|
- template/gems.rb
|
|
380
380
|
- template/preload.rb
|
|
381
|
-
homepage: https://
|
|
381
|
+
homepage: https://github.com/socketry/utopia-project
|
|
382
382
|
licenses:
|
|
383
383
|
- MIT
|
|
384
384
|
metadata:
|
|
385
|
+
bug_tracker_uri: https://github.com/socketry/utopia-project/issues
|
|
386
|
+
changelog_uri: https://github.com/socketry/utopia-project/blob/main/releases.md
|
|
385
387
|
documentation_uri: https://socketry.github.io/utopia-project/
|
|
386
388
|
funding_uri: https://github.com/sponsors/ioquatix/
|
|
387
|
-
source_code_uri: https://github.com/socketry/utopia-project
|
|
389
|
+
source_code_uri: https://github.com/socketry/utopia-project.git
|
|
388
390
|
rdoc_options: []
|
|
389
391
|
require_paths:
|
|
390
392
|
- lib
|
metadata.gz.sig
CHANGED
|
Binary file
|