mqrb 0.1.1
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/.gitignore +15 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +37 -0
- data/LICENSE.txt +21 -0
- data/README.md +33 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/dist/loader/mqrb.js +40 -0
- data/dist/runtime/mqrb-with-compiler/asm/mqrb-core.js +55 -0
- data/dist/runtime/mqrb-with-compiler/asm/mqrb-core.js.mem +0 -0
- data/dist/runtime/mqrb-with-compiler/template/bundle.rb +6 -0
- data/dist/runtime/mqrb-with-compiler/template/index.html.erb +12 -0
- data/dist/runtime/mqrb-with-compiler/template/main.js.erb +8 -0
- data/dist/runtime/mqrb-with-compiler/wasm/mqrb-core.js +24 -0
- data/dist/runtime/mqrb-with-compiler/wasm/mqrb-core.wasm +0 -0
- data/dist/runtime/mqrb/asm/mqrb-core.js +50 -0
- data/dist/runtime/mqrb/asm/mqrb-core.js.mem +0 -0
- data/dist/runtime/mqrb/template/bundle.mrb +0 -0
- data/dist/runtime/mqrb/template/index.html.erb +12 -0
- data/dist/runtime/mqrb/template/main.js.erb +9 -0
- data/dist/runtime/mqrb/wasm/mqrb-core.js +24 -0
- data/dist/runtime/mqrb/wasm/mqrb-core.wasm +0 -0
- data/exe/mqrb +5 -0
- data/lib/mqrb.rb +7 -0
- data/lib/mqrb/cli.rb +116 -0
- data/lib/mqrb/config.rb +10 -0
- data/lib/mqrb/version.rb +3 -0
- data/mqrb.gemspec +40 -0
- metadata +132 -0
data/lib/mqrb.rb
ADDED
data/lib/mqrb/cli.rb
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
require "mqrb"
|
|
2
|
+
require "thor"
|
|
3
|
+
require "fileutils"
|
|
4
|
+
require "erb"
|
|
5
|
+
|
|
6
|
+
module Mqrb
|
|
7
|
+
@@config = Config.new
|
|
8
|
+
|
|
9
|
+
class Cli < Thor
|
|
10
|
+
package_name "mqrb-cli"
|
|
11
|
+
|
|
12
|
+
#
|
|
13
|
+
# = create-app
|
|
14
|
+
#
|
|
15
|
+
desc "create-app [project-directory]", "Create new Monocoque-Ruby apps."
|
|
16
|
+
method_option "runtime-dir", {desc: "Set Monocoque-ruby runtime path.", default: ""}
|
|
17
|
+
method_option "runtime", {desc: "Set Monocoque-ruby runtime name.", default: "mqrb"}
|
|
18
|
+
|
|
19
|
+
def create_app(dir_pj)
|
|
20
|
+
Mqrb::create_new_app(dir_pj, options)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
#
|
|
24
|
+
# = version
|
|
25
|
+
#
|
|
26
|
+
desc "version", "Show mqrb-cli versions."
|
|
27
|
+
|
|
28
|
+
def version
|
|
29
|
+
print "mqrb-cli: "
|
|
30
|
+
puts VERSION
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
# = mkdir
|
|
37
|
+
def self.mkdir(dir)
|
|
38
|
+
puts "[MKDIR]: #{dir}"
|
|
39
|
+
Dir.mkdir dir
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# = cp
|
|
43
|
+
def self.cp(src, dst)
|
|
44
|
+
puts "[COPY]: #{File.basename(src)} => #{dst}"
|
|
45
|
+
FileUtils.cp src, dst
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# = cp_r
|
|
49
|
+
def self.cp_r(src, dst)
|
|
50
|
+
puts "[COPY]: #{File.basename(src)} => #{dst}"
|
|
51
|
+
FileUtils.cp_r src, dst
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# = cp_erb
|
|
55
|
+
def self.cp_erb(src, dst)
|
|
56
|
+
puts "[ERB]: #{File.basename(src)} => #{dst}"
|
|
57
|
+
File.open(src) do |f|
|
|
58
|
+
erb = ERB.new(f.read)
|
|
59
|
+
File.open(dst, "w") do |f|
|
|
60
|
+
begin
|
|
61
|
+
f.puts erb.result(binding)
|
|
62
|
+
rescue => e
|
|
63
|
+
STDERR.puts "ERB Parse Error"
|
|
64
|
+
raise e
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
# = create_new_app
|
|
71
|
+
def self.create_new_app(dir_pj, opt)
|
|
72
|
+
# check project name
|
|
73
|
+
if Dir.exist? dir_pj # exist?
|
|
74
|
+
puts "[ERROR] already exist #{dir_pj} directory."
|
|
75
|
+
return
|
|
76
|
+
elsif (dir_pj !~ /\A(\w|-)+\z/) # valid?
|
|
77
|
+
puts "[ERROR] invalid project name. please use charactor '[A-Z][a-z][0-9]_-'"
|
|
78
|
+
return
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# set default config
|
|
82
|
+
@@config.dir_pj = dir_pj
|
|
83
|
+
@@config.dir_dist = File.expand_path("../..", __dir__) + "/dist"
|
|
84
|
+
@@config.dir_runtime = opt["runtime-dir"].empty? ? "#{@@config.dir_dist}/runtime" : opt["runtime-dir"]
|
|
85
|
+
@@config.runtime = opt["runtime"].empty? ? "mqrb" : opt["runtime"]
|
|
86
|
+
@@config.loader = "#{@@config.dir_dist}/loader/mqrb.js"
|
|
87
|
+
|
|
88
|
+
# check params
|
|
89
|
+
raise "No such runtime directory #{@@config.dir_runtime}" unless Dir.exist?(@@config.dir_runtime)
|
|
90
|
+
raise "No such runtime directory #{@@config.dir_runtime}/#{@@config.runtime}" unless Dir.exist?(@@config.dir_runtime + "/" + @@config.runtime)
|
|
91
|
+
|
|
92
|
+
# input app name
|
|
93
|
+
print "Full App Name: (MyApp) "
|
|
94
|
+
@@config.name = STDIN.gets.chomp
|
|
95
|
+
@@config.name = "MyApp" if (@@config.name.empty?)
|
|
96
|
+
|
|
97
|
+
# === install ==
|
|
98
|
+
|
|
99
|
+
# copy template
|
|
100
|
+
cp_r "#{@@config.dir_runtime}/#{@@config.runtime}/template", @@config.dir_pj
|
|
101
|
+
Dir.glob("#{@@config.dir_pj}/**/*.erb").each do |f|
|
|
102
|
+
cp_erb f, "#{@@config.dir_pj}/#{File.basename(f, ".erb")}"
|
|
103
|
+
FileUtils.rm f
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# copy loader
|
|
107
|
+
mkdir "#{@@config.dir_pj}/mqrb"
|
|
108
|
+
cp @@config.loader, "#{@@config.dir_pj}/mqrb/mqrb.js"
|
|
109
|
+
|
|
110
|
+
# copy mqrb-library
|
|
111
|
+
cp_r "#{@@config.dir_runtime}/#{@@config.runtime}/asm", "#{@@config.dir_pj}/mqrb/"
|
|
112
|
+
cp_r "#{@@config.dir_runtime}/#{@@config.runtime}/wasm", "#{@@config.dir_pj}/mqrb/"
|
|
113
|
+
|
|
114
|
+
puts "[Success] Created #{@@config.name} Project to #{@@config.dir_pj}"
|
|
115
|
+
end
|
|
116
|
+
end
|
data/lib/mqrb/config.rb
ADDED
data/lib/mqrb/version.rb
ADDED
data/mqrb.gemspec
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
|
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require "mqrb/version"
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "mqrb"
|
|
8
|
+
spec.version = Mqrb::VERSION
|
|
9
|
+
spec.authors = ["noontage"]
|
|
10
|
+
spec.email = ["22429262+noontage@users.noreply.github.com"]
|
|
11
|
+
|
|
12
|
+
spec.summary = "Environment of running ruby on the webbrowser."
|
|
13
|
+
spec.description = "Toolchain of Quick and Easy executing Ruby code that runs on the WebBrowser."
|
|
14
|
+
spec.homepage = "https://mqrb.api.udp.xyz/demo/with-editor/"
|
|
15
|
+
spec.license = "MIT"
|
|
16
|
+
|
|
17
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
|
18
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
|
19
|
+
# if spec.respond_to?(:metadata)
|
|
20
|
+
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
|
21
|
+
# else
|
|
22
|
+
# raise "RubyGems 2.0 or newer is required to protect against " \
|
|
23
|
+
# "public gem pushes."
|
|
24
|
+
# end
|
|
25
|
+
|
|
26
|
+
# Specify which files should be added to the gem when it is released.
|
|
27
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
28
|
+
spec.files = Dir.chdir(File.expand_path("..", __FILE__)) do
|
|
29
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
30
|
+
end
|
|
31
|
+
spec.bindir = "exe"
|
|
32
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
33
|
+
spec.require_paths = ["lib"]
|
|
34
|
+
|
|
35
|
+
spec.add_development_dependency "bundler", "~> 1.16"
|
|
36
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
|
37
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
|
38
|
+
|
|
39
|
+
spec.add_dependency "thor"
|
|
40
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: mqrb
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- noontage
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2018-09-27 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: bundler
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '1.16'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '1.16'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rake
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '10.0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '10.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rspec
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '3.0'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '3.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: thor
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :runtime
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
description: Toolchain of Quick and Easy executing Ruby code that runs on the WebBrowser.
|
|
70
|
+
email:
|
|
71
|
+
- 22429262+noontage@users.noreply.github.com
|
|
72
|
+
executables:
|
|
73
|
+
- mqrb
|
|
74
|
+
extensions: []
|
|
75
|
+
extra_rdoc_files: []
|
|
76
|
+
files:
|
|
77
|
+
- ".gitignore"
|
|
78
|
+
- ".rspec"
|
|
79
|
+
- ".travis.yml"
|
|
80
|
+
- Gemfile
|
|
81
|
+
- Gemfile.lock
|
|
82
|
+
- LICENSE.txt
|
|
83
|
+
- README.md
|
|
84
|
+
- Rakefile
|
|
85
|
+
- bin/console
|
|
86
|
+
- bin/setup
|
|
87
|
+
- dist/loader/mqrb.js
|
|
88
|
+
- dist/runtime/mqrb-with-compiler/asm/mqrb-core.js
|
|
89
|
+
- dist/runtime/mqrb-with-compiler/asm/mqrb-core.js.mem
|
|
90
|
+
- dist/runtime/mqrb-with-compiler/template/bundle.rb
|
|
91
|
+
- dist/runtime/mqrb-with-compiler/template/index.html.erb
|
|
92
|
+
- dist/runtime/mqrb-with-compiler/template/main.js.erb
|
|
93
|
+
- dist/runtime/mqrb-with-compiler/wasm/mqrb-core.js
|
|
94
|
+
- dist/runtime/mqrb-with-compiler/wasm/mqrb-core.wasm
|
|
95
|
+
- dist/runtime/mqrb/asm/mqrb-core.js
|
|
96
|
+
- dist/runtime/mqrb/asm/mqrb-core.js.mem
|
|
97
|
+
- dist/runtime/mqrb/template/bundle.mrb
|
|
98
|
+
- dist/runtime/mqrb/template/index.html.erb
|
|
99
|
+
- dist/runtime/mqrb/template/main.js.erb
|
|
100
|
+
- dist/runtime/mqrb/wasm/mqrb-core.js
|
|
101
|
+
- dist/runtime/mqrb/wasm/mqrb-core.wasm
|
|
102
|
+
- exe/mqrb
|
|
103
|
+
- lib/mqrb.rb
|
|
104
|
+
- lib/mqrb/cli.rb
|
|
105
|
+
- lib/mqrb/config.rb
|
|
106
|
+
- lib/mqrb/version.rb
|
|
107
|
+
- mqrb.gemspec
|
|
108
|
+
homepage: https://mqrb.api.udp.xyz/demo/with-editor/
|
|
109
|
+
licenses:
|
|
110
|
+
- MIT
|
|
111
|
+
metadata: {}
|
|
112
|
+
post_install_message:
|
|
113
|
+
rdoc_options: []
|
|
114
|
+
require_paths:
|
|
115
|
+
- lib
|
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
117
|
+
requirements:
|
|
118
|
+
- - ">="
|
|
119
|
+
- !ruby/object:Gem::Version
|
|
120
|
+
version: '0'
|
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
122
|
+
requirements:
|
|
123
|
+
- - ">="
|
|
124
|
+
- !ruby/object:Gem::Version
|
|
125
|
+
version: '0'
|
|
126
|
+
requirements: []
|
|
127
|
+
rubyforge_project:
|
|
128
|
+
rubygems_version: 2.6.8
|
|
129
|
+
signing_key:
|
|
130
|
+
specification_version: 4
|
|
131
|
+
summary: Environment of running ruby on the webbrowser.
|
|
132
|
+
test_files: []
|