bormashino 0.1.8 → 0.1.9
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/bormashino/ext/js.rb +1 -0
- data/lib/bormashino/fetch.rb +1 -0
- data/lib/bormashino/local_storage.rb +4 -0
- data/lib/bormashino/mock/local_storage.rb +1 -0
- data/lib/bormashino/server.rb +1 -0
- data/lib/bormashino/stub/openssl.rb +2 -0
- data/lib/bormashino/stub/zlib.rb +2 -0
- data/lib/bormashino/tasks/bormashino.rake +42 -21
- data/lib/bormashino/version.rb +1 -1
- data/lib/bormashino.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 758d3b4d4b1e008ab0ccc373358c72d394c0bd0e02fad5b6015046fe3bd62c0f
|
4
|
+
data.tar.gz: 420598c5d55d678c42fe820b7391952652ab13b42fac6f5f4eb434a93c06d1b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0b73626e6b23da56e56967302c05dad382063a5ef12f09fb6f2e9631cb4f91b87402f6cf4ff677a1fa7ae532a4a7cae939f11625d9b019ca25de573bf16a785
|
7
|
+
data.tar.gz: 62792d8ef1d4e85abdd0598447ce5b6edb0f41785867f2006a4ef88fd3ed2ea3930a73bf968fd3219092d9626462d2ece325395b3fc7bc5af41abf147c610395
|
data/lib/bormashino/ext/js.rb
CHANGED
data/lib/bormashino/fetch.rb
CHANGED
@@ -3,6 +3,8 @@ require 'singleton'
|
|
3
3
|
require_relative 'ext/js'
|
4
4
|
|
5
5
|
module Bormashino
|
6
|
+
# wrapper of LocalStorage API
|
7
|
+
# see https://developer.mozilla.org/ja/docs/Web/API/Window/localStorage
|
6
8
|
class LocalStorage
|
7
9
|
include Singleton
|
8
10
|
|
@@ -35,6 +37,8 @@ module Bormashino
|
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
40
|
+
# wrapper of SessionStorage API
|
41
|
+
# see https://developer.mozilla.org/ja/docs/Web/API/Window/sessionStorage
|
38
42
|
class SessionStorage < LocalStorage
|
39
43
|
def initialize
|
40
44
|
super
|
data/lib/bormashino/server.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
require 'digest/sha2'
|
2
2
|
|
3
3
|
module OpenSSL
|
4
|
+
# stub module which won't work on ruby.wasm
|
4
5
|
module Digest
|
5
6
|
class SHA1; end
|
6
7
|
class SHA256; end
|
7
8
|
end
|
8
9
|
|
10
|
+
# stub module which won't work on ruby.wasm
|
9
11
|
module HMAC
|
10
12
|
def self.hexdigest(_, secret, data)
|
11
13
|
Digest::SHA2.hexdigest("#{secret}#{data}")
|
data/lib/bormashino/stub/zlib.rb
CHANGED
@@ -3,48 +3,69 @@ require 'uri'
|
|
3
3
|
require 'os'
|
4
4
|
require 'digest/md5'
|
5
5
|
|
6
|
-
|
6
|
+
RELEASE_DATE = ENV['RELEASE_DATE'] || '2022-10-06-a'.freeze
|
7
|
+
RUBY_RELEASE = "https://github.com/ruby/ruby.wasm/releases/download/#{RELEASE_DATE}/ruby-head-wasm32-unknown-wasi-full-js.tar.gz".freeze
|
8
|
+
|
7
9
|
WASI_VFS_RELEASE = 'https://github.com/kateinoigakukun/wasi-vfs/releases/download/v0.1.1/wasi-vfs-cli-x86_64-unknown-linux-gnu.zip'.freeze
|
8
10
|
WASI_VFS_RELEASE_MAC_X86_64 = 'https://github.com/kateinoigakukun/wasi-vfs/releases/download/v0.1.1/wasi-vfs-cli-x86_64-apple-darwin.zip'.freeze
|
9
11
|
WASI_VFS_RELEASE_MAC_ARM64 = 'https://github.com/kateinoigakukun/wasi-vfs/releases/download/v0.1.1/wasi-vfs-cli-aarch64-apple-darwin.zip'.freeze
|
10
12
|
|
11
|
-
|
13
|
+
RUBIES = 'rubies'.freeze
|
14
|
+
RUBY_ROOT = 'head-wasm32-unknown-wasi-full-js'.freeze
|
12
15
|
WASI_VFS = './wasi-vfs'.freeze
|
13
16
|
TMP = 'tmp'.freeze
|
14
17
|
DIGEST = 'js/ruby-digest.js'.freeze
|
15
18
|
|
16
19
|
namespace :bormashino do
|
17
|
-
desc 'download ruby.wasm
|
18
|
-
task :
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
system "curl -L -o wasi-vfs.zip '#{WASI_VFS_RELEASE_MAC_X86_64}'"
|
29
|
-
else
|
30
|
-
system "curl -L -o wasi-vfs.zip '#{WASI_VFS_RELEASE_MAC_ARM64}'"
|
20
|
+
desc 'download ruby.wasm'
|
21
|
+
task :download_rubywasm do
|
22
|
+
FileUtils.mkdir_p(RUBIES)
|
23
|
+
Dir.chdir(RUBIES) do
|
24
|
+
unless File.exist?(RELEASE_DATE)
|
25
|
+
FileUtils.mkdir_p(RELEASE_DATE)
|
26
|
+
Dir.chdir(RELEASE_DATE) do
|
27
|
+
system "curl -L #{RUBY_RELEASE} | tar xz"
|
28
|
+
FileUtils.rm(File.join(RUBY_ROOT, '/usr/local/lib/libruby-static.a'))
|
29
|
+
FileUtils.rm_rf(File.join(RUBY_ROOT, '/usr/local/include'))
|
30
|
+
end
|
31
31
|
end
|
32
|
-
system 'unzip wasi-vfs.zip'
|
33
|
-
system 'rm wasi-vfs.zip'
|
34
32
|
end
|
33
|
+
end
|
34
|
+
|
35
|
+
desc 'download wasi-vfs'
|
36
|
+
task :download_wasivfs do
|
37
|
+
unless File.exist?(WASI_VFS)
|
38
|
+
case
|
39
|
+
when OS.linux?
|
40
|
+
system "curl -L '#{WASI_VFS_RELEASE}' | gzip -d > wasi-vfs"
|
41
|
+
when OS.mac?
|
42
|
+
if OS.host_cpu == 'x86_64'
|
43
|
+
system "curl -L -o wasi-vfs.zip '#{WASI_VFS_RELEASE_MAC_X86_64}'"
|
44
|
+
else
|
45
|
+
system "curl -L -o wasi-vfs.zip '#{WASI_VFS_RELEASE_MAC_ARM64}'"
|
46
|
+
end
|
47
|
+
system 'unzip wasi-vfs.zip'
|
48
|
+
system 'rm wasi-vfs.zip'
|
49
|
+
end
|
35
50
|
|
36
|
-
|
51
|
+
system 'chmod u+x wasi-vfs'
|
52
|
+
end
|
37
53
|
end
|
38
54
|
|
55
|
+
desc 'download ruby.wasm and wasi-vfs'
|
56
|
+
task download: %i[download_wasivfs download_rubywasm]
|
57
|
+
|
39
58
|
desc 'embed ruby scripts with wasi-vfs'
|
40
59
|
task :pack, [:additional_args] do |_, args|
|
60
|
+
Rake::Task['bormashino:download'].invoke
|
61
|
+
|
41
62
|
gem_dir = Gem::Specification.find_by_name('bormashino').gem_dir
|
42
63
|
|
43
64
|
FileUtils.mkdir_p('tmp')
|
44
65
|
system([
|
45
66
|
"#{WASI_VFS} pack",
|
46
|
-
"#{RUBY_ROOT}/usr/local/bin/ruby",
|
47
|
-
"--mapdir /usr::#{RUBY_ROOT}/usr",
|
67
|
+
"#{RUBIES}/#{RELEASE_DATE}/#{RUBY_ROOT}/usr/local/bin/ruby",
|
68
|
+
"--mapdir /usr::#{RUBIES}/#{RELEASE_DATE}/#{RUBY_ROOT}/usr",
|
48
69
|
'--mapdir /src::./src',
|
49
70
|
"--mapdir /stub::'#{gem_dir}/lib/bormashino/stub'",
|
50
71
|
args[:additional_args],
|
data/lib/bormashino/version.rb
CHANGED
data/lib/bormashino.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bormashino
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kenichiro Yasuda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json_pure
|