rubyjs-vite 1.0.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/app/arguments.rb +49 -0
- data/app/main.rb +48 -0
- data/app/signals.rb +4 -0
- data/bin/rjsv +5 -0
- data/lib/json_parser.rb +96 -0
- data/lib/option_parser.rb +91 -0
- data/lib/ruby_js/constants.rb +6 -0
- data/lib/ruby_js/helper.rb +46 -0
- data/lib/ruby_js/scaffold.rb +31 -0
- data/lib/ruby_js/version.rb +3 -0
- data/lib/ruby_js.rb +46 -0
- data/share/template/bin/server +4 -0
- data/share/template/index.html +13 -0
- data/share/template/package.json +11 -0
- data/share/template/public/vite.svg +1 -0
- data/share/template/src/css/style.css +0 -0
- data/share/template/src/rjs/main.rjs +3 -0
- metadata +61 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: f15333a2010c7a42765b915656d0040c0d120408eb3f7ce6ea0c498ac39cc000
|
|
4
|
+
data.tar.gz: 07dd8234ee0d93c7f6fd6f1fa40d5e29eb2ef7097b29ad6e483472e5db680fd9
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 62f535fbaa1312c1e81e695e8ec7a638b0e8e65ce1da78a908d4530697cf86345034af65da8f1ac25dad9cb8994365c84c29405331925147f61e272292cbc797
|
|
7
|
+
data.tar.gz: 31e34aee73407d887d66f2fe7667e72f1b22be80f1d1b25a363eed4b44ed6683cb527e0225ee04d02a02330bbd84e50bae080c51583b6469fdacd9bfa8998b56
|
data/app/arguments.rb
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require "option_parser"
|
|
2
|
+
|
|
3
|
+
@options = {
|
|
4
|
+
compile: false,
|
|
5
|
+
watch: false,
|
|
6
|
+
output: Dir.pwd,
|
|
7
|
+
source: Dir.pwd,
|
|
8
|
+
eslevel: "2021".to_i
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
OptionParser.parse do |parser|
|
|
12
|
+
parser.banner(
|
|
13
|
+
"Converts the syntax of ruby into javascript.\n" +
|
|
14
|
+
"Usage: #{RubyJS::Constants::APP_NAME} [options]\n" +
|
|
15
|
+
"\nOptions:"
|
|
16
|
+
)
|
|
17
|
+
parser.on( "-h", "--help", "Show help" ) do
|
|
18
|
+
puts parser
|
|
19
|
+
exit
|
|
20
|
+
end
|
|
21
|
+
parser.on( "-v", "--version", "Show version" ) do
|
|
22
|
+
puts "Version is #{RubyJS::VERSION}"
|
|
23
|
+
exit
|
|
24
|
+
end
|
|
25
|
+
parser.on( "-c", "--compile", "Compile to JavaScript and save as .js files." ) do
|
|
26
|
+
@options[:compile] = true
|
|
27
|
+
end
|
|
28
|
+
parser.on( "-w", "--watch", "Watch scripts for changes and rerun commands." ) do
|
|
29
|
+
@options[:watch] = true
|
|
30
|
+
end
|
|
31
|
+
parser.on("-o DIR", "--output DIR", "Set the output path or path/filename\n" +
|
|
32
|
+
"for compiled JavaScript." ) do |dir|
|
|
33
|
+
@options[:output] = dir
|
|
34
|
+
end
|
|
35
|
+
parser.on("-s DIR", "--source DIR", "Set the source path or path/filename\n" +
|
|
36
|
+
"for RubyJS." ) do |dir|
|
|
37
|
+
@options[:source] = dir
|
|
38
|
+
end
|
|
39
|
+
parser.on("-es LEVEL", "--eslevel LEVEL", "ECMAScript versions for compilation.\n" +
|
|
40
|
+
"The default: #{@options[:eslevel]}\n" +
|
|
41
|
+
"(Accepted level ranges 2015...2022.)") do |level|
|
|
42
|
+
|
|
43
|
+
@options[:eslevel] = level.to_i
|
|
44
|
+
end
|
|
45
|
+
parser.on("--create PROJECT", nil, "Creates a new project using scaffolding." ) do |project|
|
|
46
|
+
RubyJS::Scaffold.create project
|
|
47
|
+
exit
|
|
48
|
+
end
|
|
49
|
+
end
|
data/app/main.rb
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require "ruby_js"
|
|
2
|
+
require_relative "arguments"
|
|
3
|
+
require_relative "signals"
|
|
4
|
+
|
|
5
|
+
def compile_fun path_f
|
|
6
|
+
RubyJS.compile path_f, {
|
|
7
|
+
eslevel: @options[:eslevel],
|
|
8
|
+
path_s: @options[:source],
|
|
9
|
+
path_o: @options[:output]
|
|
10
|
+
}
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def compile path_f
|
|
14
|
+
if @options[:compile]
|
|
15
|
+
compile_fun(path_f)
|
|
16
|
+
else
|
|
17
|
+
puts "This '#{path_f}' file was edited, but it wasn't made into a js file."
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
if @options[:compile]
|
|
22
|
+
RubyJS.get_files(@options[:source]).each do |path_f|
|
|
23
|
+
compile_fun(path_f)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
if @options[:watch]
|
|
28
|
+
puts "There is now a watch for edited files."
|
|
29
|
+
path_s = @options[:source]
|
|
30
|
+
|
|
31
|
+
RubyJS::Helper.create_dir(path_s)
|
|
32
|
+
RubyJS.watch path_s do |modified, added, removed|
|
|
33
|
+
unless added.empty?
|
|
34
|
+
compile(added.last)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
unless modified.empty?
|
|
38
|
+
compile(modified.last)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
unless removed.empty?
|
|
42
|
+
RubyJS.free removed.last, {
|
|
43
|
+
path_s: @options[:source],
|
|
44
|
+
path_o: @options[:output]
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
data/app/signals.rb
ADDED
data/bin/rjsv
ADDED
data/lib/json_parser.rb
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
require 'fileutils'
|
|
3
|
+
|
|
4
|
+
class JsonParser
|
|
5
|
+
attr_reader :db
|
|
6
|
+
|
|
7
|
+
def initialize path, auto_write = true
|
|
8
|
+
@path = path
|
|
9
|
+
@db = open @path
|
|
10
|
+
@auto_write = auto_write
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def on symbol, value
|
|
14
|
+
if exist?
|
|
15
|
+
parse symbol, value
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def parse symbols, value = nil, delete = nil
|
|
20
|
+
symbols_join = ""
|
|
21
|
+
if symbols.class.name == "Array"
|
|
22
|
+
symbols_join = symbols.join("\"][\"")
|
|
23
|
+
else
|
|
24
|
+
symbols_join = symbols.to_s
|
|
25
|
+
end
|
|
26
|
+
symbols_join = "[\"#{symbols_join}\"]"
|
|
27
|
+
|
|
28
|
+
unless delete
|
|
29
|
+
unless value
|
|
30
|
+
eval "@db#{ symbols_join }"
|
|
31
|
+
else
|
|
32
|
+
eval "@db#{ symbols_join } = value"
|
|
33
|
+
|
|
34
|
+
if @auto_write
|
|
35
|
+
write @path, @db
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
else
|
|
39
|
+
if symbols
|
|
40
|
+
eval "@db#{ symbols_join }.delete('#{delete}')"
|
|
41
|
+
else
|
|
42
|
+
eval "@db.delete('#{delete}')"
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
if @auto_write
|
|
46
|
+
write @path, @db
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def exist?
|
|
52
|
+
@db.empty?
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def delete key, symbols = nil
|
|
56
|
+
parse(symbols, nil, key)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
def open path
|
|
61
|
+
begin
|
|
62
|
+
result = String.new
|
|
63
|
+
File.open path do |f|
|
|
64
|
+
result = JSON.parse f.read
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
return result
|
|
68
|
+
rescue
|
|
69
|
+
return Hash.new
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def write path, db
|
|
74
|
+
begin
|
|
75
|
+
create_dir path do
|
|
76
|
+
|
|
77
|
+
f = File.new path, "w"
|
|
78
|
+
f.write JSON.pretty_generate db
|
|
79
|
+
f.close
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def create_dir path, &callback
|
|
85
|
+
begin
|
|
86
|
+
dir_path = File.dirname path
|
|
87
|
+
unless Dir.exist? dir_path
|
|
88
|
+
FileUtils.mkpath dir_path
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
callback.call
|
|
92
|
+
rescue
|
|
93
|
+
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
class OptionParser
|
|
2
|
+
|
|
3
|
+
LEFT = 2
|
|
4
|
+
MIDDLE = 28
|
|
5
|
+
|
|
6
|
+
attr_reader :args
|
|
7
|
+
|
|
8
|
+
def self.parse(args = ARGV)
|
|
9
|
+
parser = OptionParser.new
|
|
10
|
+
yield parser
|
|
11
|
+
parser.process args
|
|
12
|
+
parser
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.last_arg(args = ARGV)
|
|
16
|
+
args.length >= 1 ? args[args.length - 1] : nil
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def initialize(args = ARGV)
|
|
20
|
+
@args = args
|
|
21
|
+
@banner = nil
|
|
22
|
+
@flags = Array.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def banner(banner)
|
|
26
|
+
@banner = banner
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def on(short_flag, long_flag, description, &block)
|
|
30
|
+
@flags << { short_flag: short_flag || '', long_flag: long_flag || '',
|
|
31
|
+
description: description || '', block: block }
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def process( args = ARGV )
|
|
35
|
+
unless args.length == 0
|
|
36
|
+
args.each_with_index do |arg, i|
|
|
37
|
+
@flags.each do |flag|
|
|
38
|
+
name = -> (type_flag) do
|
|
39
|
+
flag[type_flag].gsub( /[a-z -]/, '' )
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
flag_strip = -> (type_flag) do
|
|
43
|
+
flag[type_flag].sub( name.(type_flag), '' ).strip()
|
|
44
|
+
end
|
|
45
|
+
has_flag = -> (type_flag) { arg == flag_strip.(type_flag) }
|
|
46
|
+
|
|
47
|
+
if has_flag.(:short_flag) or
|
|
48
|
+
has_flag.(:long_flag)
|
|
49
|
+
|
|
50
|
+
has_name = -> (type_flag) do
|
|
51
|
+
name.(type_flag) != ""
|
|
52
|
+
end
|
|
53
|
+
value = nil
|
|
54
|
+
|
|
55
|
+
if has_name.(:short_flag) or
|
|
56
|
+
has_name.(:long_flag)
|
|
57
|
+
value = args[i + 1]
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
flag[:block].call( value )
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
else
|
|
65
|
+
flag = @flags[0]
|
|
66
|
+
flag[:block].call
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def self.get_empty_spaces
|
|
71
|
+
" " * (MIDDLE + LEFT)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def to_s()
|
|
75
|
+
io = Array.new
|
|
76
|
+
if banner = @banner
|
|
77
|
+
io << banner
|
|
78
|
+
io << "\n"
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
@flags.each do |flag|
|
|
82
|
+
l_flag = !flag[:long_flag].empty? ? ", #{flag[:long_flag]}" : ""
|
|
83
|
+
flags = "#{flag[:short_flag]}#{l_flag}".ljust(MIDDLE)
|
|
84
|
+
desc = flag[:description].gsub("\n", "\n#{OptionParser.get_empty_spaces}")
|
|
85
|
+
io << "".ljust(LEFT) + flags + desc
|
|
86
|
+
io << "\n"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
io.join
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module RubyJS
|
|
2
|
+
module Helper
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
|
|
5
|
+
def self.open path
|
|
6
|
+
result = ""
|
|
7
|
+
|
|
8
|
+
if File.exist? path
|
|
9
|
+
File.open path do |f|
|
|
10
|
+
result = f.read
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
result
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def self.write path_o, content
|
|
18
|
+
path_od = File.dirname(path_o)
|
|
19
|
+
create_dir(path_od)
|
|
20
|
+
|
|
21
|
+
file = File.new(path_o, "w+")
|
|
22
|
+
file.write content
|
|
23
|
+
file.close
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.free path_o
|
|
27
|
+
File.delete(path_o) if File.exists? path_o
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.event_p event, path_f
|
|
31
|
+
"#{Time.now.strftime("%l:%M:%S %p").lstrip} [#{Constants::APP_NAME}] #{event} #{path_f}"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.absolute_path path_f, path_options, prefix = "js"
|
|
35
|
+
path_ffr = path_f.sub("#{Dir.pwd}/", '').sub(path_options[:path_s], '').sub(Constants::FILE_TYPE, prefix)
|
|
36
|
+
path_ffa = File.join(path_options[:path_o], path_ffr)
|
|
37
|
+
path_ffa
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def self.create_dir path
|
|
41
|
+
unless Dir.exist? path
|
|
42
|
+
FileUtils.mkdir_p path
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module RubyJS
|
|
2
|
+
module Scaffold
|
|
3
|
+
require "json_parser"
|
|
4
|
+
|
|
5
|
+
def self.create project
|
|
6
|
+
path_as = File.expand_path("./share/template", ROOT)
|
|
7
|
+
path_ao = File.join(Dir.pwd, project)
|
|
8
|
+
|
|
9
|
+
puts "Scaffolding project in #{path_ao}..."
|
|
10
|
+
FileUtils.copy_entry path_as, path_ao
|
|
11
|
+
|
|
12
|
+
json_oc = JsonParser.new File.join(path_ao, "package.json")
|
|
13
|
+
json_oc.parse :name, project.downcase
|
|
14
|
+
|
|
15
|
+
change_server_f(path_ao)
|
|
16
|
+
install_vite(project, path_ao)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.change_server_f path_ao
|
|
20
|
+
path_bin_ao = "#{path_ao}/bin/server"
|
|
21
|
+
content = Helper.open(path_bin_ao)
|
|
22
|
+
content_ch = content.sub("APP_NAME", Constants::APP_NAME)
|
|
23
|
+
Helper.write(path_bin_ao, content_ch)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.install_vite project, path_ao
|
|
27
|
+
%x(cd #{path_ao} && npm install -D vite)
|
|
28
|
+
puts "\nDone. Now run:\n\n cd #{project}\n bin/server\n\n"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
data/lib/ruby_js.rb
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require 'ruby2js'
|
|
2
|
+
require "ruby2js/filter/esm"
|
|
3
|
+
require "listen"
|
|
4
|
+
require "option_parser"
|
|
5
|
+
|
|
6
|
+
module RubyJS
|
|
7
|
+
require "ruby_js/version"
|
|
8
|
+
require "ruby_js/helper"
|
|
9
|
+
require "ruby_js/constants"
|
|
10
|
+
require "ruby_js/scaffold"
|
|
11
|
+
|
|
12
|
+
def self.watch path
|
|
13
|
+
listener = Listen.to(path, only: /\.#{Constants::FILE_TYPE}$/) do |modified, added, removed|
|
|
14
|
+
yield modified, added, removed
|
|
15
|
+
end
|
|
16
|
+
listener.start
|
|
17
|
+
sleep
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def self.compile path_f, options
|
|
21
|
+
path_o = Helper.absolute_path path_f, { path_s: options[:path_s], path_o: options[:path_o] }
|
|
22
|
+
|
|
23
|
+
begin
|
|
24
|
+
content_rb = Helper.open(path_f)
|
|
25
|
+
content_js = Ruby2JS.convert(content_rb, eslevel: options[:eslevel]) unless content_rb.empty?
|
|
26
|
+
|
|
27
|
+
path_write = Helper.write(path_o, content_js)
|
|
28
|
+
puts Helper.event_p("compiled", path_o)
|
|
29
|
+
rescue => exception
|
|
30
|
+
# p exception.inspect
|
|
31
|
+
puts Helper.event_p("error", "#{path_o} #{exception}")
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def self.free path_f, options
|
|
36
|
+
path_o = Helper.absolute_path path_f, options
|
|
37
|
+
Helper.free path_o
|
|
38
|
+
|
|
39
|
+
puts Helper.event_p("deleted", path_o)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def self.get_files(path_s)
|
|
43
|
+
path = "#{path_s}/**/*.#{Constants::FILE_TYPE}"
|
|
44
|
+
Dir.glob(path)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
+
<title>Vite App</title>
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div id="app"></div>
|
|
11
|
+
<script type="module" src="/src/.js/main.js"></script>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
|
File without changes
|
metadata
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rubyjs-vite
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Filip Vrba
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2022-11-02 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: ''
|
|
14
|
+
email: filipvrbaxi@gmail.com
|
|
15
|
+
executables:
|
|
16
|
+
- rjsv
|
|
17
|
+
extensions: []
|
|
18
|
+
extra_rdoc_files: []
|
|
19
|
+
files:
|
|
20
|
+
- app/arguments.rb
|
|
21
|
+
- app/main.rb
|
|
22
|
+
- app/signals.rb
|
|
23
|
+
- bin/rjsv
|
|
24
|
+
- lib/json_parser.rb
|
|
25
|
+
- lib/option_parser.rb
|
|
26
|
+
- lib/ruby_js.rb
|
|
27
|
+
- lib/ruby_js/constants.rb
|
|
28
|
+
- lib/ruby_js/helper.rb
|
|
29
|
+
- lib/ruby_js/scaffold.rb
|
|
30
|
+
- lib/ruby_js/version.rb
|
|
31
|
+
- share/template/bin/server
|
|
32
|
+
- share/template/index.html
|
|
33
|
+
- share/template/package.json
|
|
34
|
+
- share/template/public/vite.svg
|
|
35
|
+
- share/template/src/css/style.css
|
|
36
|
+
- share/template/src/rjs/main.rjs
|
|
37
|
+
homepage: https://rubygems.org/gems/rubyjs-vite
|
|
38
|
+
licenses:
|
|
39
|
+
- MIT
|
|
40
|
+
metadata:
|
|
41
|
+
source_code_uri: https://github.com/filipvrba/ruby-js
|
|
42
|
+
post_install_message:
|
|
43
|
+
rdoc_options: []
|
|
44
|
+
require_paths:
|
|
45
|
+
- lib
|
|
46
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
47
|
+
requirements:
|
|
48
|
+
- - ">="
|
|
49
|
+
- !ruby/object:Gem::Version
|
|
50
|
+
version: '0'
|
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - ">="
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
56
|
+
requirements: []
|
|
57
|
+
rubygems_version: 3.3.7
|
|
58
|
+
signing_key:
|
|
59
|
+
specification_version: 4
|
|
60
|
+
summary: Converts the syntax of ruby into javascript.
|
|
61
|
+
test_files: []
|