utopia 2.16.0 → 2.18.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
- data/lib/utopia/command/server.rb +2 -1
- data/lib/utopia/command/site.rb +11 -1
- data/lib/utopia/content.rb +7 -5
- data/lib/utopia/content/link.rb +3 -1
- data/lib/utopia/content/links.rb +7 -4
- data/lib/utopia/controller/base.rb +5 -1
- data/lib/utopia/path.rb +28 -18
- data/lib/utopia/version.rb +1 -1
- data/setup/server/git/hooks/post-receive +1 -1
- data/setup/site/{Gemfile → gems.rb} +0 -0
- metadata +8 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8851f81c898bf14616952ae21c9c5379bff340c112e84c422f652ceeff26a2f
|
4
|
+
data.tar.gz: e1abf3e367e371b83edfb2089371367952d6f4d23ffae441074abe3dd3daff66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e191685798e34a85a19c06828987938efc4876b50691add9dd923ab6b53d38c6a5e578cc3b94fa5fc3129dba368106dcf621f02d1a6cf0e8243238d79fac83e9
|
7
|
+
data.tar.gz: fc79ea764f46e0352ed1fa000a049d32c7c2c3ea8511ef12fd2e5270d4465873fac12468bb93fe576eeea496297dd23826bff342216493b98b54b2b36f7e0dc5
|
@@ -68,7 +68,8 @@ module Utopia
|
|
68
68
|
system("git", "config", "receive.denyCurrentBranch", "ignore") or fail "could not set configuration"
|
69
69
|
system("git", "config", "core.worktree", destination_root) or fail "could not set configuration"
|
70
70
|
|
71
|
-
|
71
|
+
# Doing this invokes a lot of behaviour that isn't always ideal...
|
72
|
+
# system("bundle", "config", "set", "--local", "deployment", "true")
|
72
73
|
system("bundle", "config", "set", "--local", "without", "development")
|
73
74
|
|
74
75
|
# In theory, to convert from non-shared to shared:
|
data/lib/utopia/command/site.rb
CHANGED
@@ -33,7 +33,7 @@ module Utopia
|
|
33
33
|
# Local site setup commands.
|
34
34
|
class Site < Samovar::Command
|
35
35
|
# Configuration files which should be installed/updated:
|
36
|
-
CONFIGURATION_FILES = ['.gitignore', 'config.ru', 'config/environment.rb', 'falcon.rb', '
|
36
|
+
CONFIGURATION_FILES = ['.gitignore', 'config.ru', 'config/environment.rb', 'falcon.rb', 'gems.rb', 'Guardfile', 'bake.rb', 'spec/spec_helper.rb', 'spec/website_context.rb', 'spec/website_spec.rb']
|
37
37
|
|
38
38
|
# Directories that should exist:
|
39
39
|
DIRECTORIES = ["config", "lib", "pages", "public", "tasks", "spec"]
|
@@ -142,6 +142,15 @@ module Utopia
|
|
142
142
|
end
|
143
143
|
end
|
144
144
|
|
145
|
+
# Move `Gemfile` to `gems.rb`.
|
146
|
+
def update_gemfile!
|
147
|
+
# If `Gemfile` doens't exist, we are done:
|
148
|
+
return unless File.exist?('Gemfile')
|
149
|
+
|
150
|
+
system("git", "mv", "Gemfile", "gems.rb")
|
151
|
+
system("git", "mv", "Gemfile.lock", "gems.locked")
|
152
|
+
end
|
153
|
+
|
145
154
|
def call
|
146
155
|
destination_root = parent.root
|
147
156
|
branch_name = "utopia-upgrade-#{Utopia::VERSION}"
|
@@ -184,6 +193,7 @@ module Utopia
|
|
184
193
|
system("git", "add", *Site::CONFIGURATION_FILES) or fail "could not add files"
|
185
194
|
|
186
195
|
move_static!
|
196
|
+
update_gemfile!
|
187
197
|
|
188
198
|
# Commit all changes:
|
189
199
|
system("git", "commit", "-m", "Upgrade to utopia #{Utopia::VERSION}.") or fail "could not commit changes"
|
data/lib/utopia/content.rb
CHANGED
@@ -177,17 +177,19 @@ module Utopia
|
|
177
177
|
end
|
178
178
|
|
179
179
|
def content_tag(name, node)
|
180
|
-
|
180
|
+
full_path = node.parent_path + name
|
181
|
+
|
182
|
+
name = full_path.pop
|
181
183
|
|
182
184
|
# If the current node is called 'foo', we can't lookup 'foo' in the current directory or we will have infinite recursion.
|
183
|
-
|
184
|
-
|
185
|
+
while full_path.last == name
|
186
|
+
full_path.pop
|
185
187
|
end
|
186
188
|
|
187
|
-
cache_key =
|
189
|
+
cache_key = full_path + name
|
188
190
|
|
189
191
|
@node_cache.fetch_or_store(cache_key) do
|
190
|
-
lookup_content(name,
|
192
|
+
lookup_content(name, full_path)
|
191
193
|
end
|
192
194
|
end
|
193
195
|
end
|
data/lib/utopia/content/link.rb
CHANGED
data/lib/utopia/content/links.rb
CHANGED
@@ -234,7 +234,7 @@ module Utopia
|
|
234
234
|
end
|
235
235
|
|
236
236
|
def load_index(name, locale, info)
|
237
|
-
info ||=
|
237
|
+
info ||= {}
|
238
238
|
|
239
239
|
if locale and defaults = @metadata[name]
|
240
240
|
info = defaults.merge(info)
|
@@ -245,17 +245,20 @@ module Utopia
|
|
245
245
|
yield Link.new(:index, name, locale, path, info, path[-2])
|
246
246
|
end
|
247
247
|
|
248
|
+
DEFAULT_INDEX_INFO = {href: nil}.freeze
|
249
|
+
|
250
|
+
# The default index for a directory which has no contents.
|
248
251
|
def load_default_index(name = INDEX, info = {})
|
249
252
|
path = @top + name
|
250
253
|
|
251
254
|
if info
|
252
|
-
info =
|
255
|
+
info = DEFAULT_INDEX_INFO.merge(info)
|
253
256
|
else
|
254
|
-
info =
|
257
|
+
info = DEFAULT_INDEX_INFO
|
255
258
|
end
|
256
259
|
|
257
260
|
# Specify a nil uri if no index could be found for the directory:
|
258
|
-
yield Link.new(:index, name, nil, @top, info, path[-2])
|
261
|
+
yield Link.new(:index, name, nil, @top.to_directory, info, path[-2])
|
259
262
|
end
|
260
263
|
|
261
264
|
def load_file(name, locale, info)
|
@@ -28,6 +28,10 @@ module Utopia
|
|
28
28
|
|
29
29
|
# The base implementation of a controller class.
|
30
30
|
class Base
|
31
|
+
URI_PATH = nil
|
32
|
+
BASE_PATH = nil
|
33
|
+
CONTROLLER = nil
|
34
|
+
|
31
35
|
# A string which is the full path to the directory which contains the controller.
|
32
36
|
def self.base_path
|
33
37
|
self.const_get(:BASE_PATH)
|
@@ -44,7 +48,7 @@ module Utopia
|
|
44
48
|
end
|
45
49
|
|
46
50
|
def self.inspect
|
47
|
-
"
|
51
|
+
"#{super}#{self.uri_path}"
|
48
52
|
end
|
49
53
|
|
50
54
|
def self.to_s
|
data/lib/utopia/path.rb
CHANGED
@@ -25,7 +25,7 @@ module Utopia
|
|
25
25
|
class Path
|
26
26
|
include Comparable
|
27
27
|
|
28
|
-
SEPARATOR = '/'
|
28
|
+
SEPARATOR = '/'
|
29
29
|
|
30
30
|
def initialize(components = [])
|
31
31
|
@components = components
|
@@ -34,6 +34,8 @@ module Utopia
|
|
34
34
|
attr_accessor :components
|
35
35
|
|
36
36
|
def freeze
|
37
|
+
return self if frozen?
|
38
|
+
|
37
39
|
@components.freeze
|
38
40
|
|
39
41
|
super
|
@@ -235,6 +237,30 @@ module Utopia
|
|
235
237
|
return self.class.new(result)
|
236
238
|
end
|
237
239
|
|
240
|
+
# Returns the first path component.
|
241
|
+
def first
|
242
|
+
if absolute?
|
243
|
+
@components[1]
|
244
|
+
else
|
245
|
+
@components[0]
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
# Returns the last path component.
|
250
|
+
def last
|
251
|
+
if @components != ['']
|
252
|
+
@components.last
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
# Pops the last path component.
|
257
|
+
def pop
|
258
|
+
# We don't want to convert an absolute path to a relative path.
|
259
|
+
if @components != ['']
|
260
|
+
@components.pop
|
261
|
+
end
|
262
|
+
end
|
263
|
+
|
238
264
|
# @return [String] the last path component without any file extension.
|
239
265
|
def basename
|
240
266
|
basename, _ = @components.last.split('.', 2)
|
@@ -284,7 +310,7 @@ module Utopia
|
|
284
310
|
end
|
285
311
|
|
286
312
|
def split(at)
|
287
|
-
if at.kind_of?
|
313
|
+
if at.kind_of?(String)
|
288
314
|
at = @components.index(at)
|
289
315
|
end
|
290
316
|
|
@@ -342,22 +368,6 @@ module Utopia
|
|
342
368
|
@components.delete_at(component_offset(index))
|
343
369
|
end
|
344
370
|
|
345
|
-
def first
|
346
|
-
if absolute?
|
347
|
-
@components[1]
|
348
|
-
else
|
349
|
-
@components[0]
|
350
|
-
end
|
351
|
-
end
|
352
|
-
|
353
|
-
def last
|
354
|
-
if directory?
|
355
|
-
@components[-2]
|
356
|
-
else
|
357
|
-
@components[-1]
|
358
|
-
end
|
359
|
-
end
|
360
|
-
|
361
371
|
private
|
362
372
|
|
363
373
|
# We adjust the index slightly so that indices reference path components rather than the directory markers at the start and end of the path components array.
|
data/lib/utopia/version.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: utopia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -192,34 +192,6 @@ dependencies:
|
|
192
192
|
- - ">="
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '0'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: bake-bundler
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ">="
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
209
|
-
- !ruby/object:Gem::Dependency
|
210
|
-
name: bake-modernize
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
212
|
-
requirements:
|
213
|
-
- - ">="
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
216
|
-
type: :development
|
217
|
-
prerelease: false
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
requirements:
|
220
|
-
- - ">="
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
223
195
|
- !ruby/object:Gem::Dependency
|
224
196
|
name: bundler
|
225
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -290,8 +262,8 @@ dependencies:
|
|
290
262
|
- - ">="
|
291
263
|
- !ruby/object:Gem::Version
|
292
264
|
version: '0'
|
293
|
-
description:
|
294
|
-
email:
|
265
|
+
description:
|
266
|
+
email:
|
295
267
|
executables:
|
296
268
|
- utopia
|
297
269
|
extensions: []
|
@@ -350,7 +322,6 @@ files:
|
|
350
322
|
- setup/server/git/hooks/post-receive
|
351
323
|
- setup/site/.gitignore
|
352
324
|
- setup/site/.rspec
|
353
|
-
- setup/site/Gemfile
|
354
325
|
- setup/site/Guardfile
|
355
326
|
- setup/site/README.md
|
356
327
|
- setup/site/bake.rb
|
@@ -358,6 +329,7 @@ files:
|
|
358
329
|
- setup/site/config/README.md
|
359
330
|
- setup/site/config/environment.rb
|
360
331
|
- setup/site/falcon.rb
|
332
|
+
- setup/site/gems.rb
|
361
333
|
- setup/site/lib/readme.txt
|
362
334
|
- setup/site/pages/_heading.xnode
|
363
335
|
- setup/site/pages/_page.xnode
|
@@ -378,7 +350,7 @@ licenses:
|
|
378
350
|
- MIT
|
379
351
|
metadata:
|
380
352
|
funding_uri: https://github.com/sponsors/ioquatix/
|
381
|
-
post_install_message:
|
353
|
+
post_install_message:
|
382
354
|
rdoc_options: []
|
383
355
|
require_paths:
|
384
356
|
- lib
|
@@ -394,7 +366,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
394
366
|
version: '0'
|
395
367
|
requirements: []
|
396
368
|
rubygems_version: 3.1.2
|
397
|
-
signing_key:
|
369
|
+
signing_key:
|
398
370
|
specification_version: 4
|
399
371
|
summary: Utopia is a framework for building dynamic content-driven websites.
|
400
372
|
test_files: []
|