utopia 2.23.0 → 2.24.2
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/bake/utopia/environment.rb +6 -6
- data/bake/utopia/server.rb +1 -1
- data/bake/utopia/site.rb +10 -8
- data/bake/utopia.rb +0 -2
- data/lib/utopia/content/document.rb +4 -4
- data/lib/utopia/content/link.rb +5 -5
- data/lib/utopia/content/markup.rb +12 -12
- data/lib/utopia/content.rb +4 -4
- data/lib/utopia/controller/actions.rb +1 -1
- data/lib/utopia/extensions/array_split.rb +1 -1
- data/lib/utopia/redirection.rb +1 -1
- data/lib/utopia/session.rb +2 -2
- data/lib/utopia/setup.rb +4 -4
- data/lib/utopia/version.rb +1 -1
- data/license.md +1 -1
- data/readme.md +18 -19
- data/setup/site/config/sus.rb +1 -1
- data/setup/site/fixtures/website.rb +1 -1
- data/setup/site/test/website.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +27 -111
- metadata.gz.sig +1 -5
- data/lib/utopia/logger.rb +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dd55b51b12e389b2fb847816a435d039882cfb5b839118230bd890e2616b0875
|
|
4
|
+
data.tar.gz: cf3696f520c4518daf183f7ae8eb95226173356e0ce7747b196627de3c5281e6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e91623d2795d53bfb52086ec3559d07b9903324d1b518c2f4414a8ecd0c057b074f8adffd6cc1def47d6c1c6da238cf561cdbdb13f8e39312ff50a65ac3f4300
|
|
7
|
+
data.tar.gz: 6a4fc220a1f98430ac916558fc4ad120752b758c5566c371a1e5180837f975d433046ddf04b682fb32a147c83fe39f18577682dc27c04080908e5ce27937b6e4
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/bake/utopia/environment.rb
CHANGED
|
@@ -24,7 +24,7 @@ end
|
|
|
24
24
|
# @parameter root [String] The root directory of the project.
|
|
25
25
|
def defaults(name, root: context.root)
|
|
26
26
|
update_environment(root, name) do |store|
|
|
27
|
-
Console.
|
|
27
|
+
Console.info(self) {"Setting up defaults for environment #{name}..."}
|
|
28
28
|
# Set some useful defaults for the environment.
|
|
29
29
|
store['UTOPIA_SESSION_SECRET'] ||= SecureRandom.hex(40)
|
|
30
30
|
end
|
|
@@ -40,17 +40,17 @@ def update(name, root: context.root, **variables)
|
|
|
40
40
|
key = key.to_s
|
|
41
41
|
|
|
42
42
|
if value && !value.empty?
|
|
43
|
-
Console.
|
|
43
|
+
Console.info(self) {"ENV[#{key.inspect}] will default to #{value.inspect} unless otherwise specified."}
|
|
44
44
|
store[key] = value
|
|
45
45
|
else
|
|
46
|
-
Console.
|
|
46
|
+
Console.info(self) {"ENV[#{key.inspect}] will be unset unless otherwise specified."}
|
|
47
47
|
store.delete(key)
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
yield store if block_given?
|
|
52
52
|
|
|
53
|
-
Console.
|
|
53
|
+
Console.info(self) do |buffer|
|
|
54
54
|
buffer.puts "Environment #{name} (#{path}):"
|
|
55
55
|
store.roots.each do |key|
|
|
56
56
|
value = store[key]
|
|
@@ -65,10 +65,10 @@ def read(name, root: context.root)
|
|
|
65
65
|
environment_path = self.environment_path(root, name)
|
|
66
66
|
|
|
67
67
|
if File.exist?(environment_path)
|
|
68
|
-
Console.
|
|
68
|
+
Console.debug(self) {"Loading environment #{name} from #{environment_path}..."}
|
|
69
69
|
YAML.load_file(environment_path)
|
|
70
70
|
else
|
|
71
|
-
Console.
|
|
71
|
+
Console.debug(self) {"No environment #{name} found at #{environment_path}."}
|
|
72
72
|
{}
|
|
73
73
|
end
|
|
74
74
|
end
|
data/bake/utopia/server.rb
CHANGED
data/bake/utopia/site.rb
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2023, by Samuel Williams.
|
|
4
|
+
# Copyright, 2017-2023, by Samuel Williams.
|
|
5
|
+
# Copyright, 2020, by Michael Adams.
|
|
5
6
|
|
|
6
7
|
def initialize(...)
|
|
7
8
|
super
|
|
8
9
|
|
|
9
10
|
require 'fileutils'
|
|
10
11
|
require 'find'
|
|
12
|
+
require 'console'
|
|
11
13
|
|
|
12
14
|
require_relative '../../lib/utopia/version'
|
|
13
15
|
end
|
|
@@ -29,7 +31,7 @@ SITE_ROOT = File.join(SETUP_ROOT, 'site')
|
|
|
29
31
|
|
|
30
32
|
# Create a new local Utopia website using the default template.
|
|
31
33
|
def create(root: context.root)
|
|
32
|
-
Console.
|
|
34
|
+
Console.debug(self) {"Setting up site in #{root} for Utopia v#{Utopia::VERSION}..."}
|
|
33
35
|
|
|
34
36
|
DIRECTORIES.each do |directory|
|
|
35
37
|
FileUtils.mkdir_p(File.join(root, directory))
|
|
@@ -57,7 +59,7 @@ def create(root: context.root)
|
|
|
57
59
|
buffer = File.read(destination_path).gsub('$UTOPIA_VERSION', Utopia::VERSION)
|
|
58
60
|
File.open(destination_path, "w") { |file| file.write(buffer) }
|
|
59
61
|
else
|
|
60
|
-
Console.
|
|
62
|
+
Console.warn(self) {"Could not open #{destination_path}, maybe it should be removed from CONFIGURATION_FILES?"}
|
|
61
63
|
end
|
|
62
64
|
end
|
|
63
65
|
|
|
@@ -66,7 +68,7 @@ def create(root: context.root)
|
|
|
66
68
|
context.lookup('utopia:environment:setup').call(root: root)
|
|
67
69
|
|
|
68
70
|
if !File.exist?('.git')
|
|
69
|
-
Console.
|
|
71
|
+
Console.info(self) {"Setting up git repository..."}
|
|
70
72
|
|
|
71
73
|
system("git", "init", chdir: root) or warn "could not create git repository"
|
|
72
74
|
system("git", "add", ".", chdir: root) or warn "could not add all files"
|
|
@@ -93,7 +95,7 @@ end
|
|
|
93
95
|
def upgrade(root: context.root)
|
|
94
96
|
message = "Upgrade to utopia v#{Utopia::VERSION}."
|
|
95
97
|
|
|
96
|
-
Console.
|
|
98
|
+
Console.info(self) {"Upgrading #{root}..."}
|
|
97
99
|
|
|
98
100
|
commit_changes(root, message) do
|
|
99
101
|
DIRECTORIES.each do |directory|
|
|
@@ -104,7 +106,7 @@ def upgrade(root: context.root)
|
|
|
104
106
|
path = File.join(root, path)
|
|
105
107
|
|
|
106
108
|
if File.exist?(path)
|
|
107
|
-
Console.
|
|
109
|
+
Console.info(self) {"Removing #{path}..."}
|
|
108
110
|
FileUtils.rm_rf(path)
|
|
109
111
|
end
|
|
110
112
|
end
|
|
@@ -113,7 +115,7 @@ def upgrade(root: context.root)
|
|
|
113
115
|
source_path = File.join(SITE_ROOT, configuration_file)
|
|
114
116
|
destination_path = File.join(root, configuration_file)
|
|
115
117
|
|
|
116
|
-
Console.
|
|
118
|
+
Console.info(self) {"Updating #{destination_path}..."}
|
|
117
119
|
|
|
118
120
|
FileUtils.copy_entry(source_path, destination_path)
|
|
119
121
|
buffer = File.read(destination_path).gsub('$UTOPIA_VERSION', Utopia::VERSION)
|
|
@@ -164,7 +166,7 @@ def move_static!(root)
|
|
|
164
166
|
if File.lstat(new_static_path).symlink?
|
|
165
167
|
FileUtils.rm_f new_static_path
|
|
166
168
|
else
|
|
167
|
-
Console.
|
|
169
|
+
Console.warn(self) {"Can't move pages/_static to public/_static, destination already exists."}
|
|
168
170
|
return
|
|
169
171
|
end
|
|
170
172
|
end
|
data/bake/utopia.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2015-
|
|
4
|
+
# Copyright, 2015-2024, by Samuel Williams.
|
|
5
5
|
|
|
6
6
|
require_relative 'links'
|
|
7
7
|
require_relative 'response'
|
|
@@ -216,7 +216,7 @@ module Utopia
|
|
|
216
216
|
@node = node
|
|
217
217
|
@attributes = attributes
|
|
218
218
|
|
|
219
|
-
@buffer =
|
|
219
|
+
@buffer = XRB::MarkupString.new.force_encoding(Encoding::UTF_8)
|
|
220
220
|
@content = nil
|
|
221
221
|
|
|
222
222
|
@deferred = []
|
|
@@ -246,7 +246,7 @@ module Utopia
|
|
|
246
246
|
|
|
247
247
|
def call(document)
|
|
248
248
|
@content = @buffer
|
|
249
|
-
@buffer =
|
|
249
|
+
@buffer = XRB::MarkupString.new.force_encoding(Encoding::UTF_8)
|
|
250
250
|
|
|
251
251
|
if node.respond_to? :call
|
|
252
252
|
node.call(document, self)
|
|
@@ -262,7 +262,7 @@ module Utopia
|
|
|
262
262
|
end
|
|
263
263
|
|
|
264
264
|
def text(string)
|
|
265
|
-
|
|
265
|
+
XRB::Markup.append(@buffer, string)
|
|
266
266
|
end
|
|
267
267
|
|
|
268
268
|
def tag_complete(tag)
|
data/lib/utopia/content/link.rb
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2009-
|
|
4
|
+
# Copyright, 2009-2024, by Samuel Williams.
|
|
5
5
|
# Copyright, 2017, by Huba Nagy.
|
|
6
6
|
# Copyright, 2020, by Michael Adams.
|
|
7
7
|
|
|
8
8
|
require 'yaml'
|
|
9
|
-
require '
|
|
9
|
+
require 'xrb/builder'
|
|
10
10
|
|
|
11
|
-
require '
|
|
11
|
+
require 'xrb/strings'
|
|
12
12
|
|
|
13
13
|
require_relative '../path'
|
|
14
14
|
require_relative '../locale'
|
|
@@ -24,7 +24,7 @@ module Utopia
|
|
|
24
24
|
@locale = locale
|
|
25
25
|
@path = Path.create(path)
|
|
26
26
|
@info = info || {}
|
|
27
|
-
@title =
|
|
27
|
+
@title = XRB::Strings.to_title(title || name)
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def key
|
|
@@ -89,7 +89,7 @@ module Utopia
|
|
|
89
89
|
def to_anchor(base: nil, content: self.title, builder: nil, **attributes)
|
|
90
90
|
attributes[:class] ||= 'link'
|
|
91
91
|
|
|
92
|
-
|
|
92
|
+
XRB::Builder.fragment(builder) do |inner_builder|
|
|
93
93
|
if href?
|
|
94
94
|
attributes[:href] ||= relative_href(base)
|
|
95
95
|
attributes[:target] ||= @info[:target]
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2009-
|
|
4
|
+
# Copyright, 2009-2024, by Samuel Williams.
|
|
5
5
|
|
|
6
|
-
require '
|
|
7
|
-
require '
|
|
8
|
-
require '
|
|
9
|
-
require '
|
|
6
|
+
require 'xrb/parsers'
|
|
7
|
+
require 'xrb/entities'
|
|
8
|
+
require 'xrb/strings'
|
|
9
|
+
require 'xrb/tag'
|
|
10
10
|
|
|
11
11
|
module Utopia
|
|
12
12
|
class Content
|
|
13
|
-
Tag =
|
|
13
|
+
Tag = XRB::Tag
|
|
14
14
|
|
|
15
15
|
# A hash which forces all keys to be symbols and fails with KeyError when strings are used.
|
|
16
16
|
class SymbolicHash < Hash
|
|
@@ -66,12 +66,12 @@ module Utopia
|
|
|
66
66
|
attr :closing_tag
|
|
67
67
|
|
|
68
68
|
def start_location
|
|
69
|
-
|
|
69
|
+
XRB::Location.new(@buffer.read, opening_tag.offset)
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
def end_location
|
|
73
73
|
if closing_tag and closing_tag.respond_to? :offset
|
|
74
|
-
|
|
74
|
+
XRB::Location.new(@buffer.read, closing_tag.offset)
|
|
75
75
|
end
|
|
76
76
|
end
|
|
77
77
|
|
|
@@ -84,14 +84,14 @@ module Utopia
|
|
|
84
84
|
end
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
-
def self.parse(buffer, delegate, entities =
|
|
87
|
+
def self.parse(buffer, delegate, entities = XRB::Entities::HTML5)
|
|
88
88
|
# This is for compatibility with the existing API which passes in a string:
|
|
89
|
-
buffer =
|
|
89
|
+
buffer = XRB::Buffer(buffer)
|
|
90
90
|
|
|
91
91
|
self.new(buffer, delegate, entities).parse!
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
-
def initialize(buffer, delegate, entities =
|
|
94
|
+
def initialize(buffer, delegate, entities = XRB::Entities::HTML5)
|
|
95
95
|
@buffer = buffer
|
|
96
96
|
|
|
97
97
|
@delegate = delegate
|
|
@@ -102,7 +102,7 @@ module Utopia
|
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
def parse!
|
|
105
|
-
|
|
105
|
+
XRB::Parsers.parse_markup(@buffer, self, @entities)
|
|
106
106
|
|
|
107
107
|
if tag = @stack.pop
|
|
108
108
|
raise UnbalancedTagError.new(@buffer, tag)
|
data/lib/utopia/content.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
# Released under the MIT License.
|
|
4
|
-
# Copyright, 2009-
|
|
4
|
+
# Copyright, 2009-2024, by Samuel Williams.
|
|
5
5
|
|
|
6
6
|
require_relative 'middleware'
|
|
7
7
|
require_relative 'localization'
|
|
@@ -11,7 +11,7 @@ require_relative 'content/node'
|
|
|
11
11
|
require_relative 'content/markup'
|
|
12
12
|
require_relative 'content/tags'
|
|
13
13
|
|
|
14
|
-
require '
|
|
14
|
+
require 'xrb/template'
|
|
15
15
|
|
|
16
16
|
require 'concurrent/map'
|
|
17
17
|
|
|
@@ -64,13 +64,13 @@ module Utopia
|
|
|
64
64
|
|
|
65
65
|
def fetch_template(path)
|
|
66
66
|
@template_cache.fetch_or_store(path.to_s) do
|
|
67
|
-
|
|
67
|
+
XRB::Template.load_file(path)
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
|
|
71
71
|
# Look up a named tag such as `<entry />` or `<content:page>...`
|
|
72
72
|
def lookup_tag(qualified_name, node)
|
|
73
|
-
namespace, name =
|
|
73
|
+
namespace, name = XRB::Tag.split(qualified_name)
|
|
74
74
|
|
|
75
75
|
if library = @namespaces[namespace]
|
|
76
76
|
library.call(name, node)
|
data/lib/utopia/redirection.rb
CHANGED
data/lib/utopia/session.rb
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
require 'openssl'
|
|
8
8
|
require 'digest/sha2'
|
|
9
|
-
|
|
9
|
+
require 'console'
|
|
10
10
|
require 'json'
|
|
11
11
|
|
|
12
12
|
require_relative 'session/lazy_hash'
|
|
@@ -143,7 +143,7 @@ module Utopia
|
|
|
143
143
|
return values
|
|
144
144
|
end
|
|
145
145
|
rescue => error
|
|
146
|
-
|
|
146
|
+
Console.error(self, error)
|
|
147
147
|
end
|
|
148
148
|
end
|
|
149
149
|
|
data/lib/utopia/setup.rb
CHANGED
|
@@ -8,7 +8,7 @@ require 'securerandom'
|
|
|
8
8
|
|
|
9
9
|
require 'variant'
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
require 'console'
|
|
12
12
|
|
|
13
13
|
module Utopia
|
|
14
14
|
# Used for setting up a Utopia web application, typically via `config/environment.rb`
|
|
@@ -49,7 +49,7 @@ module Utopia
|
|
|
49
49
|
if secret.nil? || secret.empty?
|
|
50
50
|
secret = SecureRandom.hex(32)
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
Console.warn(self) do
|
|
53
53
|
"Generating transient #{key} secret: #{secret.inspect}"
|
|
54
54
|
end
|
|
55
55
|
end
|
|
@@ -93,7 +93,7 @@ module Utopia
|
|
|
93
93
|
path = environment_path(variant)
|
|
94
94
|
|
|
95
95
|
if File.exist?(path)
|
|
96
|
-
|
|
96
|
+
Console.debug(self) {"Loading environment at path: #{path.inspect}"}
|
|
97
97
|
|
|
98
98
|
# Load the YAML environment file:
|
|
99
99
|
if environment = YAML.load_file(path)
|
|
@@ -105,7 +105,7 @@ module Utopia
|
|
|
105
105
|
|
|
106
106
|
return true
|
|
107
107
|
else
|
|
108
|
-
|
|
108
|
+
Console.debug(self) {"Ignoring environment at path: #{path.inspect} (file not found)"}
|
|
109
109
|
|
|
110
110
|
return false
|
|
111
111
|
end
|
data/lib/utopia/version.rb
CHANGED
data/license.md
CHANGED
data/readme.md
CHANGED
|
@@ -15,6 +15,23 @@ Utopia is a website generation framework which provides a robust set of tools to
|
|
|
15
15
|
|
|
16
16
|
Please see the [project documentation](https://socketry.github.io/utopia).
|
|
17
17
|
|
|
18
|
+
## See Also
|
|
19
|
+
|
|
20
|
+
- [XRB](https://github.com/socketry/xrb) — Template and markup parsers, markup generation.
|
|
21
|
+
- [Utopia::Gallery](https://github.com/ioquatix/utopia-gallery) — A fast photo gallery based on [libvips](https://github.com/jcupitt/libvips).
|
|
22
|
+
- [Utopia::Project](https://github.com/socketry/utopia-project) — A Ruby project documentation tool.
|
|
23
|
+
- [Utopia::Analytics](https://github.com/ioquatix/utopia-analytics) — Simple integration with Google Analytics.
|
|
24
|
+
- [HTTP::Accept](https://github.com/ioquatix/http-accept) — RFC compliant header parser.
|
|
25
|
+
- [Samovar](https://github.com/ioquatix/samovar) — Command line parser used by Utopia.
|
|
26
|
+
- [Mapping](https://github.com/ioquatix/mapping) — Provide structured conversions for web interfaces.
|
|
27
|
+
- [Rack::Test::Body](https://github.com/ioquatix/rack-test-body) — Provide convenient helpers for testing web interfaces.
|
|
28
|
+
|
|
29
|
+
### Examples
|
|
30
|
+
|
|
31
|
+
- [Financier](https://github.com/ioquatix/financier) — A small business management platform.
|
|
32
|
+
- [mail.oriontransfer.net](https://github.com/oriontransfer/mail.oriontransfer.net) - Mail server account management.
|
|
33
|
+
- [www.codeotaku.com](http://www.codeotaku.com) ([source](https://github.com/ioquatix/www.codeotaku.com)) — Personal website, blog.
|
|
34
|
+
|
|
18
35
|
## Contributing
|
|
19
36
|
|
|
20
37
|
We welcome contributions to this project.
|
|
@@ -31,22 +48,4 @@ This project uses the [Developer Certificate of Origin](https://developercertifi
|
|
|
31
48
|
|
|
32
49
|
### Contributor Covenant
|
|
33
50
|
|
|
34
|
-
This project is governed by [Contributor Covenant](https://www.contributor-covenant.org/). All contributors and participants agree to abide by its terms.
|
|
35
|
-
|
|
36
|
-
## See Also
|
|
37
|
-
|
|
38
|
-
- [Trenni](https://github.com/ioquatix/trenni) — Template and markup parsers, markup generation.
|
|
39
|
-
- [Trenni::Formatters](https://github.com/ioquatix/trenni-formatters) — Helpers for HTML generation including views and forms.
|
|
40
|
-
- [Utopia::Gallery](https://github.com/ioquatix/utopia-gallery) — A fast photo gallery based on [libvips](https://github.com/jcupitt/libvips).
|
|
41
|
-
- [Utopia::Project](https://github.com/socketry/utopia-project) — A Ruby project documentation tool.
|
|
42
|
-
- [Utopia::Analytics](https://github.com/ioquatix/utopia-analytics) — Simple integration with Google Analytics.
|
|
43
|
-
- [HTTP::Accept](https://github.com/ioquatix/http-accept) — RFC compliant header parser.
|
|
44
|
-
- [Samovar](https://github.com/ioquatix/samovar) — Command line parser used by Utopia.
|
|
45
|
-
- [Mapping](https://github.com/ioquatix/mapping) — Provide structured conversions for web interfaces.
|
|
46
|
-
- [Rack::Test::Body](https://github.com/ioquatix/rack-test-body) — Provide convenient helpers for testing web interfaces.
|
|
47
|
-
|
|
48
|
-
### Examples
|
|
49
|
-
|
|
50
|
-
- [Financier](https://github.com/ioquatix/financier) — A small business management platform.
|
|
51
|
-
- [mail.oriontransfer.net](https://github.com/oriontransfer/mail.oriontransfer.net) - Mail server account management.
|
|
52
|
-
- [www.codeotaku.com](http://www.codeotaku.com) ([source](https://github.com/ioquatix/www.codeotaku.com)) — Personal website, blog.
|
|
51
|
+
This project is governed by the [Contributor Covenant](https://www.contributor-covenant.org/). All contributors and participants agree to abide by its terms.
|
data/setup/site/config/sus.rb
CHANGED
data/setup/site/test/website.rb
CHANGED
|
@@ -16,7 +16,7 @@ describe "website" do
|
|
|
16
16
|
it "should be responsive" do
|
|
17
17
|
spider.fetch(statistics, client, endpoint.url) do |method, uri, response|
|
|
18
18
|
if response.failure?
|
|
19
|
-
Console.
|
|
19
|
+
Console.error(endpoint) {"#{method} #{uri} -> #{response.status}"}
|
|
20
20
|
end
|
|
21
21
|
end.wait
|
|
22
22
|
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: utopia
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.24.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Samuel Williams
|
|
@@ -41,8 +41,22 @@ cert_chain:
|
|
|
41
41
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
|
42
42
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
|
43
43
|
-----END CERTIFICATE-----
|
|
44
|
-
date:
|
|
44
|
+
date: 2024-05-07 00:00:00.000000000 Z
|
|
45
45
|
dependencies:
|
|
46
|
+
- !ruby/object:Gem::Dependency
|
|
47
|
+
name: bake
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
requirements:
|
|
50
|
+
- - "~>"
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '0.20'
|
|
53
|
+
type: :runtime
|
|
54
|
+
prerelease: false
|
|
55
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
56
|
+
requirements:
|
|
57
|
+
- - "~>"
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: '0.20'
|
|
46
60
|
- !ruby/object:Gem::Dependency
|
|
47
61
|
name: concurrent-ruby
|
|
48
62
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -63,14 +77,14 @@ dependencies:
|
|
|
63
77
|
requirements:
|
|
64
78
|
- - "~>"
|
|
65
79
|
- !ruby/object:Gem::Version
|
|
66
|
-
version: '1.
|
|
80
|
+
version: '1.24'
|
|
67
81
|
type: :runtime
|
|
68
82
|
prerelease: false
|
|
69
83
|
version_requirements: !ruby/object:Gem::Requirement
|
|
70
84
|
requirements:
|
|
71
85
|
- - "~>"
|
|
72
86
|
- !ruby/object:Gem::Version
|
|
73
|
-
version: '1.
|
|
87
|
+
version: '1.24'
|
|
74
88
|
- !ruby/object:Gem::Dependency
|
|
75
89
|
name: http-accept
|
|
76
90
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -183,20 +197,6 @@ dependencies:
|
|
|
183
197
|
- - "~>"
|
|
184
198
|
- !ruby/object:Gem::Version
|
|
185
199
|
version: '0.10'
|
|
186
|
-
- !ruby/object:Gem::Dependency
|
|
187
|
-
name: trenni
|
|
188
|
-
requirement: !ruby/object:Gem::Requirement
|
|
189
|
-
requirements:
|
|
190
|
-
- - "~>"
|
|
191
|
-
- !ruby/object:Gem::Version
|
|
192
|
-
version: '3.0'
|
|
193
|
-
type: :runtime
|
|
194
|
-
prerelease: false
|
|
195
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
196
|
-
requirements:
|
|
197
|
-
- - "~>"
|
|
198
|
-
- !ruby/object:Gem::Version
|
|
199
|
-
version: '3.0'
|
|
200
200
|
- !ruby/object:Gem::Dependency
|
|
201
201
|
name: variant
|
|
202
202
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -212,103 +212,19 @@ dependencies:
|
|
|
212
212
|
- !ruby/object:Gem::Version
|
|
213
213
|
version: '0.1'
|
|
214
214
|
- !ruby/object:Gem::Dependency
|
|
215
|
-
name:
|
|
215
|
+
name: xrb
|
|
216
216
|
requirement: !ruby/object:Gem::Requirement
|
|
217
217
|
requirements:
|
|
218
|
-
- - "
|
|
219
|
-
- !ruby/object:Gem::Version
|
|
220
|
-
version: '0'
|
|
221
|
-
type: :development
|
|
222
|
-
prerelease: false
|
|
223
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
224
|
-
requirements:
|
|
225
|
-
- - ">="
|
|
226
|
-
- !ruby/object:Gem::Version
|
|
227
|
-
version: '0'
|
|
228
|
-
- !ruby/object:Gem::Dependency
|
|
229
|
-
name: bake
|
|
230
|
-
requirement: !ruby/object:Gem::Requirement
|
|
231
|
-
requirements:
|
|
232
|
-
- - ">="
|
|
233
|
-
- !ruby/object:Gem::Version
|
|
234
|
-
version: '0'
|
|
235
|
-
type: :development
|
|
236
|
-
prerelease: false
|
|
237
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
238
|
-
requirements:
|
|
239
|
-
- - ">="
|
|
240
|
-
- !ruby/object:Gem::Version
|
|
241
|
-
version: '0'
|
|
242
|
-
- !ruby/object:Gem::Dependency
|
|
243
|
-
name: bundler
|
|
244
|
-
requirement: !ruby/object:Gem::Requirement
|
|
245
|
-
requirements:
|
|
246
|
-
- - ">="
|
|
247
|
-
- !ruby/object:Gem::Version
|
|
248
|
-
version: '0'
|
|
249
|
-
type: :development
|
|
250
|
-
prerelease: false
|
|
251
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
252
|
-
requirements:
|
|
253
|
-
- - ">="
|
|
254
|
-
- !ruby/object:Gem::Version
|
|
255
|
-
version: '0'
|
|
256
|
-
- !ruby/object:Gem::Dependency
|
|
257
|
-
name: covered
|
|
258
|
-
requirement: !ruby/object:Gem::Requirement
|
|
259
|
-
requirements:
|
|
260
|
-
- - ">="
|
|
261
|
-
- !ruby/object:Gem::Version
|
|
262
|
-
version: '0'
|
|
263
|
-
type: :development
|
|
264
|
-
prerelease: false
|
|
265
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
266
|
-
requirements:
|
|
267
|
-
- - ">="
|
|
268
|
-
- !ruby/object:Gem::Version
|
|
269
|
-
version: '0'
|
|
270
|
-
- !ruby/object:Gem::Dependency
|
|
271
|
-
name: falcon
|
|
272
|
-
requirement: !ruby/object:Gem::Requirement
|
|
273
|
-
requirements:
|
|
274
|
-
- - ">="
|
|
275
|
-
- !ruby/object:Gem::Version
|
|
276
|
-
version: '0'
|
|
277
|
-
type: :development
|
|
278
|
-
prerelease: false
|
|
279
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
280
|
-
requirements:
|
|
281
|
-
- - ">="
|
|
282
|
-
- !ruby/object:Gem::Version
|
|
283
|
-
version: '0'
|
|
284
|
-
- !ruby/object:Gem::Dependency
|
|
285
|
-
name: sus
|
|
286
|
-
requirement: !ruby/object:Gem::Requirement
|
|
287
|
-
requirements:
|
|
288
|
-
- - ">="
|
|
289
|
-
- !ruby/object:Gem::Version
|
|
290
|
-
version: '0'
|
|
291
|
-
type: :development
|
|
292
|
-
prerelease: false
|
|
293
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
294
|
-
requirements:
|
|
295
|
-
- - ">="
|
|
296
|
-
- !ruby/object:Gem::Version
|
|
297
|
-
version: '0'
|
|
298
|
-
- !ruby/object:Gem::Dependency
|
|
299
|
-
name: sus-fixtures-async-http
|
|
300
|
-
requirement: !ruby/object:Gem::Requirement
|
|
301
|
-
requirements:
|
|
302
|
-
- - ">="
|
|
218
|
+
- - "~>"
|
|
303
219
|
- !ruby/object:Gem::Version
|
|
304
|
-
version: '0'
|
|
305
|
-
type: :
|
|
220
|
+
version: '0.4'
|
|
221
|
+
type: :runtime
|
|
306
222
|
prerelease: false
|
|
307
223
|
version_requirements: !ruby/object:Gem::Requirement
|
|
308
224
|
requirements:
|
|
309
|
-
- - "
|
|
225
|
+
- - "~>"
|
|
310
226
|
- !ruby/object:Gem::Version
|
|
311
|
-
version: '0'
|
|
227
|
+
version: '0.4'
|
|
312
228
|
description:
|
|
313
229
|
email:
|
|
314
230
|
executables: []
|
|
@@ -349,7 +265,6 @@ files:
|
|
|
349
265
|
- lib/utopia/http.rb
|
|
350
266
|
- lib/utopia/locale.rb
|
|
351
267
|
- lib/utopia/localization.rb
|
|
352
|
-
- lib/utopia/logger.rb
|
|
353
268
|
- lib/utopia/middleware.rb
|
|
354
269
|
- lib/utopia/path.rb
|
|
355
270
|
- lib/utopia/path/matcher.rb
|
|
@@ -396,6 +311,7 @@ licenses:
|
|
|
396
311
|
- MIT
|
|
397
312
|
metadata:
|
|
398
313
|
funding_uri: https://github.com/sponsors/ioquatix/
|
|
314
|
+
source_code_uri: https://github.com/ioquatix/utopia.git
|
|
399
315
|
post_install_message:
|
|
400
316
|
rdoc_options: []
|
|
401
317
|
require_paths:
|
|
@@ -404,14 +320,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
404
320
|
requirements:
|
|
405
321
|
- - ">="
|
|
406
322
|
- !ruby/object:Gem::Version
|
|
407
|
-
version: '3.
|
|
323
|
+
version: '3.1'
|
|
408
324
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
409
325
|
requirements:
|
|
410
326
|
- - ">="
|
|
411
327
|
- !ruby/object:Gem::Version
|
|
412
328
|
version: '0'
|
|
413
329
|
requirements: []
|
|
414
|
-
rubygems_version: 3.
|
|
330
|
+
rubygems_version: 3.5.3
|
|
415
331
|
signing_key:
|
|
416
332
|
specification_version: 4
|
|
417
333
|
summary: Utopia is a framework for building dynamic content-driven websites.
|
metadata.gz.sig
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
�c
|
|
2
|
-
�y�!wʵ`l�&L?�Rp����U�tQ�i�>)|>�ňP Q�z���h���Ȑ8�V
|
|
3
|
-
�{���6�������c������L*��Y<W����t���X����|����~.zMަ��^�������"���
|
|
4
|
-
�Jn����˜>R�Q;�b/�8�7EV�+:0�'+��K�������e��)�ޣ���\��[���k��] ���H;ŋ�'9�1�ی�����^E^
|
|
5
|
-
����'�g6LR@�EhP�G��Q� ���l��Ν�������!I��khㄾ���J��#3����+��B�x}����8�Y���1PH0ܐ��ma�T`Q�6�8�����b���b��&
|
|
1
|
+
E6�d��wW@փ��a���e���{sЊ�\��vD���_������׆���PP��X5��~�A/��0F ,��m��w8�����M�o�4e�LT�g���Sn�f���"m����i��l�T��c~����K�$���j=����B�VA���o��|��8�KlEG�W��h��%��c1����LxU���1��E�[l��H�4wS淫Y<�-$��{���\���>�����0�qy�=�j��I�c{�,����p�A4p��2�f����ӱ�,�i����d����iPw��b�.(�Y�s�Jx�iN��Q)�����;���ZIe�z-``������d9< �/Z���Sɞ�+��'W@� �h�����3X� ��p�
|