wasmify-rails 0.1.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 +7 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.txt +23 -0
- data/README.md +168 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/checkpoint.rb +13 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/column.rb +4 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/configuration.rb +5 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/core.rb +391 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/empty_result.rb +41 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/index_definition.rb +5 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/null_object.rb +13 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/quoting.rb +3 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/statement.rb +15 -0
- data/lib/active_record/connection_adapters/nulldb_adapter/table_definition.rb +23 -0
- data/lib/active_record/connection_adapters/nulldb_adapter.rb +67 -0
- data/lib/active_record/connection_adapters/sqlite3_wasm_adapter.rb +163 -0
- data/lib/active_storage/null_delivery.rb +15 -0
- data/lib/generators/wasmify/install/USAGE +5 -0
- data/lib/generators/wasmify/install/install_generator.rb +73 -0
- data/lib/generators/wasmify/install/templates/config/environments/wasm.rb +30 -0
- data/lib/generators/wasmify/install/templates/config/wasmify.yml +17 -0
- data/lib/generators/wasmify/pwa/USAGE +5 -0
- data/lib/generators/wasmify/pwa/pwa_generator.rb +13 -0
- data/lib/generators/wasmify/pwa/templates/pwa/README.md +40 -0
- data/lib/generators/wasmify/pwa/templates/pwa/boot.html +102 -0
- data/lib/generators/wasmify/pwa/templates/pwa/boot.js +96 -0
- data/lib/generators/wasmify/pwa/templates/pwa/database.js +18 -0
- data/lib/generators/wasmify/pwa/templates/pwa/index.html +2 -0
- data/lib/generators/wasmify/pwa/templates/pwa/package.json.tt +20 -0
- data/lib/generators/wasmify/pwa/templates/pwa/rails.sw.js +115 -0
- data/lib/generators/wasmify/pwa/templates/pwa/vite.config.js +29 -0
- data/lib/image_processing/null.rb +22 -0
- data/lib/wasmify/rails/builder.rb +45 -0
- data/lib/wasmify/rails/configuration.rb +41 -0
- data/lib/wasmify/rails/packer.rb +60 -0
- data/lib/wasmify/rails/railtie.rb +11 -0
- data/lib/wasmify/rails/shim.rb +65 -0
- data/lib/wasmify/rails/shims/io/console/size.rb +0 -0
- data/lib/wasmify/rails/shims/io/console.rb +11 -0
- data/lib/wasmify/rails/shims/io/wait.rb +0 -0
- data/lib/wasmify/rails/shims/ipaddr.rb +7 -0
- data/lib/wasmify/rails/shims/nio.rb +0 -0
- data/lib/wasmify/rails/shims/nokogiri/nokogiri.rb +0 -0
- data/lib/wasmify/rails/shims/nokogiri.rb +0 -0
- data/lib/wasmify/rails/shims/rails-html-sanitizer.rb +163 -0
- data/lib/wasmify/rails/shims/socket.rb +21 -0
- data/lib/wasmify/rails/shims/sqlite3.rb +0 -0
- data/lib/wasmify/rails/tasks.rake +120 -0
- data/lib/wasmify/rails/version.rb +7 -0
- data/lib/wasmify/rails/wasmtimer.rb +31 -0
- data/lib/wasmify-rails.rb +25 -0
- metadata +200 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
namespace :wasmify do
|
|
4
|
+
desc "Install wasmify-rails"
|
|
5
|
+
task :install do
|
|
6
|
+
Rails::Command.invoke :generate, ["wasmify:install"]
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
desc "Generate a PWA application to serve the Rails Wasm app"
|
|
10
|
+
task :pwa do
|
|
11
|
+
Rails::Command.invoke :generate, ["wasmify:pwa"]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
desc "Build ruby.wasm with all dependencies"
|
|
15
|
+
task :build do
|
|
16
|
+
unless ENV["BUNDLE_ONLY"] == "wasm"
|
|
17
|
+
next spawn("BUNDLE_ONLY=wasm bundle exec rails wasmify:build").then { Process.wait(_1) }
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
require "wasmify/rails/builder"
|
|
21
|
+
|
|
22
|
+
builder = Wasmify::Rails::Builder.new
|
|
23
|
+
builder.run(name: "ruby.wasm")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
namespace :build do
|
|
27
|
+
desc "Build ruby.wasm with all dependencies but JS shim (to use with wasmtime)"
|
|
28
|
+
task :core do
|
|
29
|
+
unless ENV["BUNDLE_ONLY"] == "wasm"
|
|
30
|
+
next spawn("BUNDLE_ONLY=wasm bundle exec rails wasmify:build:core").then { Process.wait(_1) }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
require "wasmify/rails/builder"
|
|
34
|
+
|
|
35
|
+
builder = Wasmify::Rails::Builder.new
|
|
36
|
+
builder.run(name: "ruby-core.wasm", exclude_gems: ["js"])
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
namespace :core do
|
|
40
|
+
desc "Test that compiled ruby-core.wasm works (print Rails version)"
|
|
41
|
+
task :verify do
|
|
42
|
+
require "wasmify/rails/wasmtimer"
|
|
43
|
+
|
|
44
|
+
wasm_path = File.join(Wasmify::Rails.config.tmp_dir, "ruby-core.wasm")
|
|
45
|
+
Wasmify::Rails::Wasmtimer.run(
|
|
46
|
+
wasm_path,
|
|
47
|
+
<<~'RUBY'
|
|
48
|
+
require "wasmify/rails/shim"
|
|
49
|
+
require "rails"
|
|
50
|
+
puts "Your Rails version is: #{Rails.version} [#{RUBY_PLATFORM}]"
|
|
51
|
+
RUBY
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
desc "Pack the application into to a single module"
|
|
58
|
+
task pack: :build do
|
|
59
|
+
# First, precompile assets
|
|
60
|
+
unless Wasmify::Rails.config.skip_assets_precompile
|
|
61
|
+
Bundler.with_unbundled_env do
|
|
62
|
+
spawn("SECRET_KEY_BASE_DUMMY=1 RAILS_ENV=production bundle exec rails assets:precompile").then { Process.wait(_1) }
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
require "wasmify/rails/packer"
|
|
67
|
+
|
|
68
|
+
packer = Wasmify::Rails::Packer.new
|
|
69
|
+
|
|
70
|
+
packer.run(name: "app.wasm", ruby_wasm_path: File.join(Wasmify::Rails.config.tmp_dir, "ruby.wasm"))
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
namespace :pack do
|
|
74
|
+
desc "Pack the application into to a single module without JS shim"
|
|
75
|
+
task :core do
|
|
76
|
+
# First, precompile assets
|
|
77
|
+
unless Wasmify::Rails.config.skip_assets_precompile
|
|
78
|
+
Bundler.with_unbundled_env do
|
|
79
|
+
spawn("SECRET_KEY_BASE_DUMMY=1 RAILS_ENV=production bundle exec rails assets:precompile").then { Process.wait(_1) }
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
require "wasmify/rails/packer"
|
|
84
|
+
|
|
85
|
+
# Pack core module to the tmp dir (we only use it for testing purposes right now)
|
|
86
|
+
packer = Wasmify::Rails::Packer.new(
|
|
87
|
+
output_dir: Wasmify::Rails.config.tmp_dir
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
packer.run(name: "app-core.wasm",
|
|
91
|
+
ruby_wasm_path: File.join(Wasmify::Rails.config.tmp_dir, "ruby-core.wasm"),
|
|
92
|
+
storage_dir: "storage"
|
|
93
|
+
)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
namespace :core do
|
|
97
|
+
desc "Test that the Rails application boots"
|
|
98
|
+
task :verify do
|
|
99
|
+
require "wasmify/rails/wasmtimer"
|
|
100
|
+
|
|
101
|
+
wasm_path = File.join(Wasmify::Rails.config.tmp_dir, "app-core.wasm")
|
|
102
|
+
Wasmify::Rails::Wasmtimer.run(
|
|
103
|
+
wasm_path,
|
|
104
|
+
<<~'RUBY'
|
|
105
|
+
ENV["RAILS_ENV"] = "wasm"
|
|
106
|
+
ENV["DEBUG"] = "1"
|
|
107
|
+
# ENV["ACTIVE_RECORD_ADAPTER"] = "sqlite3_wasm"
|
|
108
|
+
require "/rails/config/application"
|
|
109
|
+
puts "Initializing Rails application..."
|
|
110
|
+
Rails.application.initialize!
|
|
111
|
+
puts "Rails application initialized!\n\nLets try to make a request..."
|
|
112
|
+
|
|
113
|
+
request = Rack::MockRequest.env_for("http://localhost:3000", {"HTTP_HOST" => "localhost"})
|
|
114
|
+
puts Rails.application.call(request)
|
|
115
|
+
RUBY
|
|
116
|
+
)
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Wasmify
|
|
4
|
+
module Rails
|
|
5
|
+
# A wrapper for the wasmtime CLI used to
|
|
6
|
+
# verify compiled modules.
|
|
7
|
+
module Wasmtimer
|
|
8
|
+
class << self
|
|
9
|
+
def run(wasm_path, script)
|
|
10
|
+
return unless wasmtime_installed?
|
|
11
|
+
|
|
12
|
+
exec(%Q(wasmtime run --dir ./storage::/rails/storage #{wasm_path} -W0 -r/bundle/setup -e '#{script}'))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
private
|
|
16
|
+
|
|
17
|
+
def wasmtime_installed?
|
|
18
|
+
unless system("which wasmtime > /dev/null 2>&1")
|
|
19
|
+
$stderr.puts "Wasmtime is required to verify Wasm builds.\nPlease see installations instructions at https://wasmtime.dev."
|
|
20
|
+
if RUBY_PLATFORM =~ /darwin/
|
|
21
|
+
$stderr.puts "You can also install it via Homebrew:\n brew install wasmtime"
|
|
22
|
+
end
|
|
23
|
+
return false
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
true
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "wasmify/rails/version"
|
|
4
|
+
require "wasmify/rails/configuration"
|
|
5
|
+
require "wasmify/rails/shim"
|
|
6
|
+
require "wasmify/rails/railtie"
|
|
7
|
+
|
|
8
|
+
module Wasmify
|
|
9
|
+
module Rails
|
|
10
|
+
class << self
|
|
11
|
+
def config = @config ||= Configuration.new
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Autoloadable extensions
|
|
17
|
+
module ImageProcessing
|
|
18
|
+
autoload :Null, "image_processing/null"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# NullDB for Active Record
|
|
22
|
+
ActiveRecord::ConnectionAdapters.register("nulldb", "ActiveRecord::ConnectionAdapters::NullDBAdapter", "active_record/connection_adapters/nulldb_adapter")
|
|
23
|
+
|
|
24
|
+
# SQLite3 Wasm adapter
|
|
25
|
+
ActiveRecord::ConnectionAdapters.register("sqlite3_wasm", "ActiveRecord::ConnectionAdapters::SQLite3WasmAdapter", "active_record/connection_adapters/sqlite3_wasm_adapter")
|
metadata
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: wasmify-rails
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Vladimir Dementyev
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2024-09-21 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: railties
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '7.0'
|
|
20
|
+
- - "<"
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '9.0'
|
|
23
|
+
type: :runtime
|
|
24
|
+
prerelease: false
|
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
+
requirements:
|
|
27
|
+
- - ">="
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: '7.0'
|
|
30
|
+
- - "<"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '9.0'
|
|
33
|
+
- !ruby/object:Gem::Dependency
|
|
34
|
+
name: ruby_wasm
|
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '2.6'
|
|
40
|
+
- - "<"
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '3.0'
|
|
43
|
+
type: :runtime
|
|
44
|
+
prerelease: false
|
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
46
|
+
requirements:
|
|
47
|
+
- - ">="
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: '2.6'
|
|
50
|
+
- - "<"
|
|
51
|
+
- !ruby/object:Gem::Version
|
|
52
|
+
version: '3.0'
|
|
53
|
+
- !ruby/object:Gem::Dependency
|
|
54
|
+
name: js
|
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
|
56
|
+
requirements:
|
|
57
|
+
- - ">="
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: '2.6'
|
|
60
|
+
- - "<"
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '3.0'
|
|
63
|
+
type: :runtime
|
|
64
|
+
prerelease: false
|
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
66
|
+
requirements:
|
|
67
|
+
- - ">="
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '2.6'
|
|
70
|
+
- - "<"
|
|
71
|
+
- !ruby/object:Gem::Version
|
|
72
|
+
version: '3.0'
|
|
73
|
+
- !ruby/object:Gem::Dependency
|
|
74
|
+
name: bundler
|
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
|
76
|
+
requirements:
|
|
77
|
+
- - ">="
|
|
78
|
+
- !ruby/object:Gem::Version
|
|
79
|
+
version: '1.15'
|
|
80
|
+
type: :development
|
|
81
|
+
prerelease: false
|
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
83
|
+
requirements:
|
|
84
|
+
- - ">="
|
|
85
|
+
- !ruby/object:Gem::Version
|
|
86
|
+
version: '1.15'
|
|
87
|
+
- !ruby/object:Gem::Dependency
|
|
88
|
+
name: rake
|
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
|
90
|
+
requirements:
|
|
91
|
+
- - ">="
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '13.0'
|
|
94
|
+
type: :development
|
|
95
|
+
prerelease: false
|
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
97
|
+
requirements:
|
|
98
|
+
- - ">="
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: '13.0'
|
|
101
|
+
- !ruby/object:Gem::Dependency
|
|
102
|
+
name: minitest
|
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
|
104
|
+
requirements:
|
|
105
|
+
- - "~>"
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: '5.0'
|
|
108
|
+
type: :development
|
|
109
|
+
prerelease: false
|
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
111
|
+
requirements:
|
|
112
|
+
- - "~>"
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: '5.0'
|
|
115
|
+
description: Tools and extensions to package Rails apps as Wasm modules
|
|
116
|
+
email:
|
|
117
|
+
- Vladimir Dementyev
|
|
118
|
+
executables: []
|
|
119
|
+
extensions: []
|
|
120
|
+
extra_rdoc_files: []
|
|
121
|
+
files:
|
|
122
|
+
- CHANGELOG.md
|
|
123
|
+
- LICENSE.txt
|
|
124
|
+
- README.md
|
|
125
|
+
- lib/active_record/connection_adapters/nulldb_adapter.rb
|
|
126
|
+
- lib/active_record/connection_adapters/nulldb_adapter/checkpoint.rb
|
|
127
|
+
- lib/active_record/connection_adapters/nulldb_adapter/column.rb
|
|
128
|
+
- lib/active_record/connection_adapters/nulldb_adapter/configuration.rb
|
|
129
|
+
- lib/active_record/connection_adapters/nulldb_adapter/core.rb
|
|
130
|
+
- lib/active_record/connection_adapters/nulldb_adapter/empty_result.rb
|
|
131
|
+
- lib/active_record/connection_adapters/nulldb_adapter/index_definition.rb
|
|
132
|
+
- lib/active_record/connection_adapters/nulldb_adapter/null_object.rb
|
|
133
|
+
- lib/active_record/connection_adapters/nulldb_adapter/quoting.rb
|
|
134
|
+
- lib/active_record/connection_adapters/nulldb_adapter/statement.rb
|
|
135
|
+
- lib/active_record/connection_adapters/nulldb_adapter/table_definition.rb
|
|
136
|
+
- lib/active_record/connection_adapters/sqlite3_wasm_adapter.rb
|
|
137
|
+
- lib/active_storage/null_delivery.rb
|
|
138
|
+
- lib/generators/wasmify/install/USAGE
|
|
139
|
+
- lib/generators/wasmify/install/install_generator.rb
|
|
140
|
+
- lib/generators/wasmify/install/templates/config/environments/wasm.rb
|
|
141
|
+
- lib/generators/wasmify/install/templates/config/wasmify.yml
|
|
142
|
+
- lib/generators/wasmify/pwa/USAGE
|
|
143
|
+
- lib/generators/wasmify/pwa/pwa_generator.rb
|
|
144
|
+
- lib/generators/wasmify/pwa/templates/pwa/README.md
|
|
145
|
+
- lib/generators/wasmify/pwa/templates/pwa/boot.html
|
|
146
|
+
- lib/generators/wasmify/pwa/templates/pwa/boot.js
|
|
147
|
+
- lib/generators/wasmify/pwa/templates/pwa/database.js
|
|
148
|
+
- lib/generators/wasmify/pwa/templates/pwa/index.html
|
|
149
|
+
- lib/generators/wasmify/pwa/templates/pwa/package.json.tt
|
|
150
|
+
- lib/generators/wasmify/pwa/templates/pwa/rails.sw.js
|
|
151
|
+
- lib/generators/wasmify/pwa/templates/pwa/vite.config.js
|
|
152
|
+
- lib/image_processing/null.rb
|
|
153
|
+
- lib/wasmify-rails.rb
|
|
154
|
+
- lib/wasmify/rails/builder.rb
|
|
155
|
+
- lib/wasmify/rails/configuration.rb
|
|
156
|
+
- lib/wasmify/rails/packer.rb
|
|
157
|
+
- lib/wasmify/rails/railtie.rb
|
|
158
|
+
- lib/wasmify/rails/shim.rb
|
|
159
|
+
- lib/wasmify/rails/shims/io/console.rb
|
|
160
|
+
- lib/wasmify/rails/shims/io/console/size.rb
|
|
161
|
+
- lib/wasmify/rails/shims/io/wait.rb
|
|
162
|
+
- lib/wasmify/rails/shims/ipaddr.rb
|
|
163
|
+
- lib/wasmify/rails/shims/nio.rb
|
|
164
|
+
- lib/wasmify/rails/shims/nokogiri.rb
|
|
165
|
+
- lib/wasmify/rails/shims/nokogiri/nokogiri.rb
|
|
166
|
+
- lib/wasmify/rails/shims/rails-html-sanitizer.rb
|
|
167
|
+
- lib/wasmify/rails/shims/socket.rb
|
|
168
|
+
- lib/wasmify/rails/shims/sqlite3.rb
|
|
169
|
+
- lib/wasmify/rails/tasks.rake
|
|
170
|
+
- lib/wasmify/rails/version.rb
|
|
171
|
+
- lib/wasmify/rails/wasmtimer.rb
|
|
172
|
+
homepage: https://github.com/palkan/wasmify-rails
|
|
173
|
+
licenses:
|
|
174
|
+
- MIT
|
|
175
|
+
metadata:
|
|
176
|
+
bug_tracker_uri: https://github.com/palkan/wasmify-rails/issues
|
|
177
|
+
changelog_uri: https://github.com/palkan/wasmify-rails/blob/master/CHANGELOG.md
|
|
178
|
+
documentation_uri: https://github.com/palkan/wasmify-rails
|
|
179
|
+
homepage_uri: https://github.com/palkan/wasmify-rails
|
|
180
|
+
source_code_uri: https://github.com/palkan/wasmify-rails
|
|
181
|
+
post_install_message:
|
|
182
|
+
rdoc_options: []
|
|
183
|
+
require_paths:
|
|
184
|
+
- lib
|
|
185
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
|
+
requirements:
|
|
187
|
+
- - ">="
|
|
188
|
+
- !ruby/object:Gem::Version
|
|
189
|
+
version: '3.2'
|
|
190
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
|
+
requirements:
|
|
192
|
+
- - ">="
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: '0'
|
|
195
|
+
requirements: []
|
|
196
|
+
rubygems_version: 3.5.18
|
|
197
|
+
signing_key:
|
|
198
|
+
specification_version: 4
|
|
199
|
+
summary: Tools and extensions to package Rails apps as Wasm modules
|
|
200
|
+
test_files: []
|