browser_app_base 0.1.9 → 0.2.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 +4 -4
- data/Gemfile +5 -2
- data/README.md +32 -1
- data/README_ja.md +351 -0
- data/bin/create_browser_app.rb +5 -6
- data/bin/ruby-lsp +27 -0
- data/bin/ruby-lsp-check +27 -0
- data/bin/ruby-lsp-launcher +27 -0
- data/bin/ruby-lsp-test-exec +27 -0
- data/bin/start_sample.rb +12 -11
- data/browser_app_base.gemspec +2 -1
- data/lib/browser_app_base/version.rb +1 -1
- data/lib/browser_app_base.rb +14 -9
- data/lib/template/common.rb +13 -0
- data/lib/template/config/browser.json +3 -2
- data/lib/template/config.ru +9 -8
- data/lib/template/css/index.css +1 -1
- data/lib/template/history/history.json +0 -5
- data/lib/template/js/main.js +98 -89
- data/lib/template/my_app_sample.rb +2 -2
- data/lib/template/server.rb +29 -15
- data/lib/template/server_app_base.rb +16 -18
- data/lib/template/start.rb +15 -13
- data/lib/template/wsserver.rb +32 -16
- metadata +32 -9
- data/lib/template/html/test.html +0 -0
data/lib/template/wsserver.rb
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
$LOAD_PATH << File.dirname(File.expand_path(__FILE__))
|
|
2
|
+
|
|
3
|
+
require "server_app_base"
|
|
2
4
|
require "json"
|
|
3
5
|
require "cgi"
|
|
4
6
|
require "thread"
|
|
@@ -18,6 +20,8 @@ class WsServer < Sinatra::Base
|
|
|
18
20
|
super
|
|
19
21
|
@ws_list = []
|
|
20
22
|
@ws_lock = Mutex.new
|
|
23
|
+
@json_config = nil
|
|
24
|
+
@exec_thread = nil
|
|
21
25
|
end
|
|
22
26
|
|
|
23
27
|
def ws_send(str)
|
|
@@ -28,8 +32,8 @@ class WsServer < Sinatra::Base
|
|
|
28
32
|
end
|
|
29
33
|
end
|
|
30
34
|
|
|
31
|
-
|
|
32
|
-
|
|
35
|
+
public :ws_send
|
|
36
|
+
|
|
33
37
|
get "" do
|
|
34
38
|
if !request.websocket?
|
|
35
39
|
"no supported"
|
|
@@ -47,17 +51,24 @@ class WsServer < Sinatra::Base
|
|
|
47
51
|
if $ws_exit_thread != nil
|
|
48
52
|
puts "ws_exit_thread kill"
|
|
49
53
|
Thread.kill $ws_exit_thread
|
|
54
|
+
$ws_exit_thread = nil
|
|
50
55
|
end
|
|
51
56
|
end
|
|
52
57
|
ws.onmessage do |msg|
|
|
53
58
|
puts msg
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
59
|
+
begin
|
|
60
|
+
json = JSON.parse(File.read("#{$home_dir}/config/setting.json"))
|
|
61
|
+
@json_config = config_json_hash(json)
|
|
62
|
+
$app.set_config(@json_config)
|
|
63
|
+
rescue
|
|
64
|
+
puts "Failed to load config/setting.json"
|
|
65
|
+
@json_config = {}
|
|
66
|
+
end
|
|
67
|
+
|
|
57
68
|
if msg =~ /^exec:/
|
|
58
|
-
if exec_thread == nil
|
|
69
|
+
if @exec_thread == nil
|
|
59
70
|
argv = msg.gsub(/^exec:/, "")
|
|
60
|
-
exec_thread = Thread.new {
|
|
71
|
+
@exec_thread = Thread.new {
|
|
61
72
|
begin
|
|
62
73
|
$app.start(argv.split(",")) do |out|
|
|
63
74
|
ws_send(out)
|
|
@@ -70,7 +81,7 @@ class WsServer < Sinatra::Base
|
|
|
70
81
|
ws_send("app_end:error")
|
|
71
82
|
ensure
|
|
72
83
|
puts "exit thread"
|
|
73
|
-
exec_thread = nil
|
|
84
|
+
@exec_thread = nil
|
|
74
85
|
end
|
|
75
86
|
}
|
|
76
87
|
else
|
|
@@ -79,19 +90,20 @@ class WsServer < Sinatra::Base
|
|
|
79
90
|
end
|
|
80
91
|
end
|
|
81
92
|
if msg =~ /^stop/
|
|
82
|
-
if exec_thread
|
|
83
|
-
Thread.kill exec_thread
|
|
93
|
+
if @exec_thread
|
|
94
|
+
Thread.kill @exec_thread
|
|
84
95
|
ws_send("app_end:stop")
|
|
85
96
|
$app.stop
|
|
97
|
+
@exec_thread = nil
|
|
86
98
|
end
|
|
87
99
|
end
|
|
88
100
|
if msg =~ /^suspend/
|
|
89
|
-
if exec_thread
|
|
101
|
+
if @exec_thread
|
|
90
102
|
$app.suspend
|
|
91
103
|
end
|
|
92
104
|
end
|
|
93
105
|
if msg =~ /^resume/
|
|
94
|
-
if exec_thread
|
|
106
|
+
if @exec_thread
|
|
95
107
|
$app.resume
|
|
96
108
|
end
|
|
97
109
|
end
|
|
@@ -102,8 +114,8 @@ class WsServer < Sinatra::Base
|
|
|
102
114
|
File.open("#{$home_dir}/config/setting.json", "w") do |w|
|
|
103
115
|
w.puts JSON.pretty_generate(json)
|
|
104
116
|
end
|
|
105
|
-
json_config = config_json_hash(json)
|
|
106
|
-
$app.set_config(json_config)
|
|
117
|
+
@json_config = config_json_hash(json)
|
|
118
|
+
$app.set_config(@json_config)
|
|
107
119
|
rescue
|
|
108
120
|
# jsonファイルではない
|
|
109
121
|
ws_send("app_end:error")
|
|
@@ -112,7 +124,11 @@ class WsServer < Sinatra::Base
|
|
|
112
124
|
if msg =~ /^openfile:/
|
|
113
125
|
file = msg.gsub(/^openfile:/, "")
|
|
114
126
|
Thread.new {
|
|
115
|
-
|
|
127
|
+
if @json_config && @json_config["editor"]
|
|
128
|
+
system "#{@json_config["editor"]} #{CGI.unescapeHTML(file)}"
|
|
129
|
+
else
|
|
130
|
+
puts "Editor not set in config"
|
|
131
|
+
end
|
|
116
132
|
}
|
|
117
133
|
end
|
|
118
134
|
|
metadata
CHANGED
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: browser_app_base
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- masataka kuwayama
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-03-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: rack
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - ">="
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '3.0'
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - ">="
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '3.0'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rackup
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
16
30
|
requirements:
|
|
17
31
|
- - ">="
|
|
@@ -25,7 +39,7 @@ dependencies:
|
|
|
25
39
|
- !ruby/object:Gem::Version
|
|
26
40
|
version: '0'
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: sinatra
|
|
42
|
+
name: sinatra
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
30
44
|
requirements:
|
|
31
45
|
- - ">="
|
|
@@ -39,7 +53,7 @@ dependencies:
|
|
|
39
53
|
- !ruby/object:Gem::Version
|
|
40
54
|
version: '0'
|
|
41
55
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: sinatra-
|
|
56
|
+
name: sinatra-contrib
|
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
|
44
58
|
requirements:
|
|
45
59
|
- - ">="
|
|
@@ -53,7 +67,7 @@ dependencies:
|
|
|
53
67
|
- !ruby/object:Gem::Version
|
|
54
68
|
version: '0'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
70
|
+
name: sinatra-websocket
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
58
72
|
requirements:
|
|
59
73
|
- - ">="
|
|
@@ -67,7 +81,7 @@ dependencies:
|
|
|
67
81
|
- !ruby/object:Gem::Version
|
|
68
82
|
version: '0'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
84
|
+
name: thin
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
72
86
|
requirements:
|
|
73
87
|
- - ">="
|
|
@@ -81,7 +95,7 @@ dependencies:
|
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
96
|
version: '0'
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
98
|
+
name: json
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
86
100
|
requirements:
|
|
87
101
|
- - ">="
|
|
@@ -99,6 +113,10 @@ email:
|
|
|
99
113
|
- masataka.kuwayama@gmail.com
|
|
100
114
|
executables:
|
|
101
115
|
- create_browser_app.rb
|
|
116
|
+
- ruby-lsp
|
|
117
|
+
- ruby-lsp-check
|
|
118
|
+
- ruby-lsp-launcher
|
|
119
|
+
- ruby-lsp-test-exec
|
|
102
120
|
- start_sample.rb
|
|
103
121
|
extensions: []
|
|
104
122
|
extra_rdoc_files: []
|
|
@@ -109,8 +127,13 @@ files:
|
|
|
109
127
|
- Gemfile
|
|
110
128
|
- LICENSE.txt
|
|
111
129
|
- README.md
|
|
130
|
+
- README_ja.md
|
|
112
131
|
- Rakefile
|
|
113
132
|
- bin/create_browser_app.rb
|
|
133
|
+
- bin/ruby-lsp
|
|
134
|
+
- bin/ruby-lsp-check
|
|
135
|
+
- bin/ruby-lsp-launcher
|
|
136
|
+
- bin/ruby-lsp-test-exec
|
|
114
137
|
- bin/start_sample.rb
|
|
115
138
|
- browser_app_base.gemspec
|
|
116
139
|
- img/app.png
|
|
@@ -119,13 +142,13 @@ files:
|
|
|
119
142
|
- lib/browser_app_base.rb
|
|
120
143
|
- lib/browser_app_base/version.rb
|
|
121
144
|
- lib/template/app_load.rb
|
|
145
|
+
- lib/template/common.rb
|
|
122
146
|
- lib/template/config.ru
|
|
123
147
|
- lib/template/config/browser.json
|
|
124
148
|
- lib/template/config/setting.json
|
|
125
149
|
- lib/template/css/index.css
|
|
126
150
|
- lib/template/history/history.json
|
|
127
151
|
- lib/template/html/index.html
|
|
128
|
-
- lib/template/html/test.html
|
|
129
152
|
- lib/template/js/main.js
|
|
130
153
|
- lib/template/my_app_sample.rb
|
|
131
154
|
- lib/template/server.rb
|
data/lib/template/html/test.html
DELETED
|
File without changes
|