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.
@@ -0,0 +1,7 @@
1
+ require "mqrb/version"
2
+ require "mqrb/config"
3
+ require "mqrb/cli"
4
+
5
+ module Mqrb
6
+ # Your code goes here...
7
+ end
@@ -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
@@ -0,0 +1,10 @@
1
+ module Mqrb
2
+ class Config
3
+ attr_accessor :name
4
+ attr_accessor :dir_pj
5
+ attr_accessor :dir_dist
6
+ attr_accessor :dir_runtime
7
+ attr_accessor :runtime
8
+ attr_accessor :loader
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ module Mqrb
2
+ VERSION = "0.1.1"
3
+ end
@@ -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: []