mayu-live 0.0.4 → 0.0.6
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/exe/mayu +0 -4
- data/lib/mayu/commands.rb +4 -0
- data/lib/mayu/resources/generators/image.rb +7 -67
- data/lib/mayu/resources/transformers/__test__/haml/css.rb +1 -1
- data/lib/mayu/resources/transformers/css.rb +15 -14
- data/lib/mayu/resources/transformers/haml.rb +1 -0
- data/lib/mayu/version.rb +1 -1
- data/mayu-live.gemspec +7 -5
- metadata +40 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d60c146397cbe38cfc7e659f0681d90e6bbac5e278ba95a60527ff8f66ba1280
|
|
4
|
+
data.tar.gz: d4f35ae4cdfa457b9ac1bca877626b8e045a870cfb723699bae500a54293938a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dbf52fb2fe61b49ffef476d8ce75edc96904d7f0a9372f3ee2949137068f1932db51b502e254de932cb06dbdd6f2057152057b780d2774a2ce4c53743be5624c
|
|
7
|
+
data.tar.gz: a33c40fb0f20f7643979e5486ad2c83c1798d2ce042511bb3d143cf127f8a822b3ab7da3f8ac94df968a2c0de559e20cd28680299c9410d3d113d4aea032c179
|
data/exe/mayu
CHANGED
data/lib/mayu/commands.rb
CHANGED
|
@@ -16,6 +16,10 @@ module Mayu
|
|
|
16
16
|
|
|
17
17
|
case argv
|
|
18
18
|
in ["dev", *rest]
|
|
19
|
+
# Initialize RMagick on start to avoid the following error:
|
|
20
|
+
# objc[88493]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
|
|
21
|
+
# We cannot safely call it or ignore it in the fork() child process. Crashing instead.
|
|
22
|
+
require "rmagick"
|
|
19
23
|
require_relative "server"
|
|
20
24
|
Server.start(load_config(:dev))
|
|
21
25
|
in ["devbundle", *rest]
|
|
@@ -27,78 +27,18 @@ module Mayu
|
|
|
27
27
|
def process(target_path)
|
|
28
28
|
return if File.exist?(target_path)
|
|
29
29
|
|
|
30
|
+
require "rmagick"
|
|
31
|
+
|
|
30
32
|
Console.logger.info(
|
|
31
33
|
self,
|
|
32
34
|
"Generating #{target_path} from #{@source_path}"
|
|
33
35
|
)
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
width: @version.width,
|
|
41
|
-
target_path: target_path
|
|
42
|
-
)
|
|
43
|
-
else
|
|
44
|
-
convert_generic(
|
|
45
|
-
source_path: @source_path,
|
|
46
|
-
quality: 80, # typical quality,
|
|
47
|
-
width: @version.width,
|
|
48
|
-
target_path: target_path
|
|
49
|
-
)
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
private
|
|
54
|
-
|
|
55
|
-
sig do
|
|
56
|
-
params(
|
|
57
|
-
source_path: String,
|
|
58
|
-
quality: Integer,
|
|
59
|
-
width: Integer,
|
|
60
|
-
target_path: String
|
|
61
|
-
).void
|
|
62
|
-
end
|
|
63
|
-
def convert_webp(source_path:, quality:, width:, target_path:)
|
|
64
|
-
system(
|
|
65
|
-
Shellwords.shelljoin(
|
|
66
|
-
[
|
|
67
|
-
"cwebp",
|
|
68
|
-
"-q",
|
|
69
|
-
"#{quality}",
|
|
70
|
-
"-resize",
|
|
71
|
-
"#{width}",
|
|
72
|
-
"0",
|
|
73
|
-
source_path,
|
|
74
|
-
"-o",
|
|
75
|
-
target_path
|
|
76
|
-
]
|
|
77
|
-
) + " 2> /dev/null"
|
|
78
|
-
) or raise "Could not generate #{target_path} from #{source_path}"
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
sig do
|
|
82
|
-
params(
|
|
83
|
-
source_path: String,
|
|
84
|
-
quality: Integer,
|
|
85
|
-
width: Integer,
|
|
86
|
-
target_path: String
|
|
87
|
-
).void
|
|
88
|
-
end
|
|
89
|
-
def convert_generic(source_path:, quality:, width:, target_path:)
|
|
90
|
-
system(
|
|
91
|
-
Shellwords.shelljoin(
|
|
92
|
-
[
|
|
93
|
-
"convert",
|
|
94
|
-
source_path,
|
|
95
|
-
"-adaptive-resize",
|
|
96
|
-
"#{width}",
|
|
97
|
-
"-strip",
|
|
98
|
-
target_path
|
|
99
|
-
]
|
|
100
|
-
) + " 2> /dev/null"
|
|
101
|
-
) or raise "Could not generate #{target_path} from #{source_path}"
|
|
37
|
+
Magick::Image
|
|
38
|
+
.read(@source_path)
|
|
39
|
+
.first
|
|
40
|
+
.resize_to_fit(@version.width)
|
|
41
|
+
.write(target_path) { |options| options.quality = 80 }
|
|
102
42
|
end
|
|
103
43
|
end
|
|
104
44
|
end
|
|
@@ -41,10 +41,11 @@ module Mayu
|
|
|
41
41
|
params(
|
|
42
42
|
source: String,
|
|
43
43
|
source_path: String,
|
|
44
|
-
source_line: Integer
|
|
44
|
+
source_line: Integer,
|
|
45
|
+
minify: T::Boolean
|
|
45
46
|
).returns(TransformResult)
|
|
46
47
|
end
|
|
47
|
-
def self.transform(source:, source_path:, source_line: 1)
|
|
48
|
+
def self.transform(source:, source_path:, source_line: 1, minify: true)
|
|
48
49
|
# Required here because it's not necessary in production..
|
|
49
50
|
# kinda messy. need to rewrite the entire "resources" thing...
|
|
50
51
|
require "mayu/css"
|
|
@@ -55,7 +56,8 @@ module Mayu
|
|
|
55
56
|
File.basename(source_path, ".*")
|
|
56
57
|
).delete_prefix("./")
|
|
57
58
|
|
|
58
|
-
result =
|
|
59
|
+
result =
|
|
60
|
+
Mayu::CSS.transform(source_path_without_extension, source, minify:)
|
|
59
61
|
|
|
60
62
|
output = result.code.encode("utf-8")
|
|
61
63
|
|
|
@@ -94,9 +96,9 @@ module Mayu
|
|
|
94
96
|
|
|
95
97
|
sig do
|
|
96
98
|
params(
|
|
97
|
-
classes: T::Hash[
|
|
98
|
-
elements: T::Hash[
|
|
99
|
-
exports: T::Hash[
|
|
99
|
+
classes: T::Hash[Symbol, String],
|
|
100
|
+
elements: T::Hash[Symbol, String],
|
|
101
|
+
exports: T::Hash[String, T.untyped]
|
|
100
102
|
).returns(T::Hash[Symbol, String])
|
|
101
103
|
end
|
|
102
104
|
def self.join_classes(classes, elements, exports)
|
|
@@ -113,19 +115,18 @@ module Mayu
|
|
|
113
115
|
sig do
|
|
114
116
|
params(
|
|
115
117
|
klass: String,
|
|
116
|
-
exports: T::Hash[
|
|
117
|
-
classes: T::Hash[
|
|
118
|
+
exports: T::Hash[String, T.untyped],
|
|
119
|
+
classes: T::Hash[Symbol, String]
|
|
118
120
|
).returns(String)
|
|
119
121
|
end
|
|
120
122
|
def self.join_class(klass, exports, classes)
|
|
121
|
-
|
|
122
|
-
in composes:
|
|
123
|
+
if composes = exports[klass]&.composes
|
|
123
124
|
[
|
|
124
125
|
klass,
|
|
125
|
-
*composes.map do
|
|
126
|
-
case
|
|
127
|
-
in
|
|
128
|
-
classes[name]
|
|
126
|
+
*composes.map do |compose|
|
|
127
|
+
case compose
|
|
128
|
+
in Mayu::CSS::ComposeLocal
|
|
129
|
+
classes[compose.name.to_sym]
|
|
129
130
|
end
|
|
130
131
|
end
|
|
131
132
|
].join(" ")
|
data/lib/mayu/version.rb
CHANGED
data/mayu-live.gemspec
CHANGED
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
|
17
17
|
|
|
18
18
|
spec.homepage = "https://mayu.live/"
|
|
19
19
|
spec.license = "AGPL-3.0"
|
|
20
|
-
spec.required_ruby_version = ">= 3.
|
|
20
|
+
spec.required_ruby_version = ">= 3.3.0"
|
|
21
21
|
|
|
22
22
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
23
23
|
spec.metadata["source_code_uri"] = "https://github.com/mayu-live/framework"
|
|
@@ -43,15 +43,15 @@ Gem::Specification.new do |spec|
|
|
|
43
43
|
spec.require_paths = ["lib"]
|
|
44
44
|
|
|
45
45
|
# Core dependencies
|
|
46
|
-
spec.add_dependency "async", "~> 2.
|
|
46
|
+
spec.add_dependency "async", "~> 2.8.0"
|
|
47
47
|
spec.add_dependency "async-container", "~> 0.16.12"
|
|
48
|
-
spec.add_dependency "async-http", "~> 0.
|
|
48
|
+
spec.add_dependency "async-http", "~> 0.61.0"
|
|
49
49
|
spec.add_dependency "brotli", "~> 0.4.0"
|
|
50
50
|
spec.add_dependency "mime-types", "~> 3.4.1"
|
|
51
51
|
spec.add_dependency "msgpack", "~> 1.6.0"
|
|
52
52
|
spec.add_dependency "nanoid", "~> 2.0.0"
|
|
53
53
|
spec.add_dependency "prometheus-client", "~> 4.0.0"
|
|
54
|
-
spec.add_dependency "protocol-http", "~> 0.
|
|
54
|
+
spec.add_dependency "protocol-http", "~> 0.25.0"
|
|
55
55
|
spec.add_dependency "pry", "~> 0.14.2"
|
|
56
56
|
spec.add_dependency "rack", ">= 3.0.4.1", "< 3.0.9.0"
|
|
57
57
|
spec.add_dependency "rake", "~> 13.0.6"
|
|
@@ -68,9 +68,11 @@ Gem::Specification.new do |spec|
|
|
|
68
68
|
spec.add_dependency "image_size", "~> 3.2.0"
|
|
69
69
|
spec.add_dependency "kramdown", "~> 2.4.0"
|
|
70
70
|
spec.add_dependency "rouge", "~> 4.0.0"
|
|
71
|
-
spec.add_dependency "mayu-css", "~> 0.
|
|
71
|
+
spec.add_dependency "mayu-css", "~> 0.1.2"
|
|
72
|
+
spec.add_dependency "rmagick", "~> 5.3.0"
|
|
72
73
|
spec.add_dependency "source_map", "~> 3.0.1"
|
|
73
74
|
spec.add_dependency "syntax_tree", "~> 5.3.0"
|
|
74
75
|
spec.add_dependency "syntax_tree-haml", "~> 3.0.0"
|
|
75
76
|
spec.add_dependency "syntax_tree-xml", "~> 0.1.0"
|
|
77
|
+
spec.add_dependency "base64", "~> 0.2.0"
|
|
76
78
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mayu-live
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andreas Alin
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-01-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: async
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 2.
|
|
19
|
+
version: 2.8.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 2.
|
|
26
|
+
version: 2.8.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: async-container
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -44,14 +44,14 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0.
|
|
47
|
+
version: 0.61.0
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 0.
|
|
54
|
+
version: 0.61.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: brotli
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -128,14 +128,14 @@ dependencies:
|
|
|
128
128
|
requirements:
|
|
129
129
|
- - "~>"
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.
|
|
131
|
+
version: 0.25.0
|
|
132
132
|
type: :runtime
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - "~>"
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.
|
|
138
|
+
version: 0.25.0
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
140
|
name: pry
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -316,14 +316,28 @@ dependencies:
|
|
|
316
316
|
requirements:
|
|
317
317
|
- - "~>"
|
|
318
318
|
- !ruby/object:Gem::Version
|
|
319
|
-
version: 0.
|
|
319
|
+
version: 0.1.2
|
|
320
320
|
type: :runtime
|
|
321
321
|
prerelease: false
|
|
322
322
|
version_requirements: !ruby/object:Gem::Requirement
|
|
323
323
|
requirements:
|
|
324
324
|
- - "~>"
|
|
325
325
|
- !ruby/object:Gem::Version
|
|
326
|
-
version: 0.
|
|
326
|
+
version: 0.1.2
|
|
327
|
+
- !ruby/object:Gem::Dependency
|
|
328
|
+
name: rmagick
|
|
329
|
+
requirement: !ruby/object:Gem::Requirement
|
|
330
|
+
requirements:
|
|
331
|
+
- - "~>"
|
|
332
|
+
- !ruby/object:Gem::Version
|
|
333
|
+
version: 5.3.0
|
|
334
|
+
type: :runtime
|
|
335
|
+
prerelease: false
|
|
336
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
337
|
+
requirements:
|
|
338
|
+
- - "~>"
|
|
339
|
+
- !ruby/object:Gem::Version
|
|
340
|
+
version: 5.3.0
|
|
327
341
|
- !ruby/object:Gem::Dependency
|
|
328
342
|
name: source_map
|
|
329
343
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -380,6 +394,20 @@ dependencies:
|
|
|
380
394
|
- - "~>"
|
|
381
395
|
- !ruby/object:Gem::Version
|
|
382
396
|
version: 0.1.0
|
|
397
|
+
- !ruby/object:Gem::Dependency
|
|
398
|
+
name: base64
|
|
399
|
+
requirement: !ruby/object:Gem::Requirement
|
|
400
|
+
requirements:
|
|
401
|
+
- - "~>"
|
|
402
|
+
- !ruby/object:Gem::Version
|
|
403
|
+
version: 0.2.0
|
|
404
|
+
type: :runtime
|
|
405
|
+
prerelease: false
|
|
406
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
407
|
+
requirements:
|
|
408
|
+
- - "~>"
|
|
409
|
+
- !ruby/object:Gem::Version
|
|
410
|
+
version: 0.2.0
|
|
383
411
|
description: |
|
|
384
412
|
Mayu Live is a live updating server side VirtualDOM framework for Ruby,
|
|
385
413
|
inspired by modern frontend tools that exist in the JavaScript ecosystem.
|
|
@@ -597,14 +625,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
597
625
|
requirements:
|
|
598
626
|
- - ">="
|
|
599
627
|
- !ruby/object:Gem::Version
|
|
600
|
-
version: 3.
|
|
628
|
+
version: 3.3.0
|
|
601
629
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
602
630
|
requirements:
|
|
603
631
|
- - ">="
|
|
604
632
|
- !ruby/object:Gem::Version
|
|
605
633
|
version: '0'
|
|
606
634
|
requirements: []
|
|
607
|
-
rubygems_version: 3.
|
|
635
|
+
rubygems_version: 3.5.3
|
|
608
636
|
signing_key:
|
|
609
637
|
specification_version: 4
|
|
610
638
|
summary: Server side VDOM framework
|