webview 0.1.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c48d69ff8dd6f7dbf4220a5a481e4af44e8b542493a9274005378e326764b5c1
4
- data.tar.gz: cd11ae6d0ee8627ced9548fe321cf5165b2e4c37d4da096ec5a653ffb24abf7c
3
+ metadata.gz: 71067f7cf653b0246423225eedfcf954ca345d14b3d180698cdea616d7f237ae
4
+ data.tar.gz: 135bed20ebfc2cbd0710d01a0198918c68d01bdf51b630dc5415ef651569647e
5
5
  SHA512:
6
- metadata.gz: 56645c7bde105ace3fbe47187add745cd7896a99c6a1e8aa1af120f41d31b0a209770dea7dab8aee986397b876c5faed5b8e3b930581e7de3f9aa61317941627
7
- data.tar.gz: e991be01929ad140d398e6054a76af9d5017fcc75580e35210b666725080caac2fc1e1d877195cf2463ab4e7a83118879d00a7bc5d2914fa806c398a7134a533
6
+ metadata.gz: 20da9dcdd1a136e08b493407fb4311b300a1fc167c3f32b1b936385c9459e1542953a8c7487e85e65158a097d2e7f962dadfd7a287e2d134889e0a1e611beedc
7
+ data.tar.gz: 906ae1b839bb19dc1421e7f5b9b66f77ad79232a3d291373c605a6b76e3ce05b60068a8c46f54e44940e8431f9680a07585501472bdb0e13c1e49a742be1e06e
data/.travis.yml CHANGED
@@ -1,7 +1,22 @@
1
1
  ---
2
2
  sudo: false
3
3
  language: ruby
4
- cache: bundler
4
+ cache:
5
+ - bundler
6
+ - apt
5
7
  rvm:
6
8
  - 2.6.3
7
- before_install: gem install bundler -v 2.0.1
9
+ before_install:
10
+ - gem install bundler -v 2.0.1
11
+
12
+ - sudo add-apt-repository ppa:webkit-team/ppa -y
13
+ - sudo apt-get update
14
+ - sudo apt-get install libwebkit2gtk-4.0-dev -y
15
+
16
+ - cd ext
17
+ - ruby extconf.rb
18
+ - make && make install
19
+ - cd ..
20
+
21
+ script:
22
+ - bundle exec rspec
data/README.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Webview
2
2
 
3
- a webview GUI based on [zserge/webview](https://github.com/zserge/webview)
3
+ [![Build Status](https://travis-ci.org/xiejiangzhi/webview.svg?branch=master)](https://travis-ci.org/xiejiangzhi/webview)
4
+ [![Gem Version](https://badge.fury.io/rb/webview.svg)](https://badge.fury.io/rb/webview)
5
+
6
+ A webview GUI based on [zserge/webview](https://github.com/zserge/webview)
7
+
8
+ ## Require
9
+
10
+ * `golang`
4
11
 
5
12
  ## Installation
6
13
 
@@ -35,10 +42,16 @@ end
35
42
  Allow debug page
36
43
 
37
44
  ```ruby
38
- app = Webview::App.new(debug: true)
45
+ Webview::App.new(debug: true).open('http://example.com')
46
+ ```
47
+
48
+ All options
49
+
50
+ ```ruby
51
+ Webview::App.new(title: 'ttt', width: 600, height: 400, resizable: true, debug: true)
39
52
  ```
40
53
 
41
- Run with your backend
54
+ Run with your backend.
42
55
 
43
56
  ```ruby
44
57
  app = Webview::App.new
@@ -78,6 +91,19 @@ window.external.invoke('invalid_type' + ',' + 'my_data');
78
91
  * opendir: Open a dialog, and call rpc_cb('opendir', path, user_data)
79
92
  * savefile: Open a dialog, and call rpc_cb('savefile', path, user_data)
80
93
 
94
+
95
+ ## GUI Application
96
+
97
+ If we build ruby binary for different systems, then we can public our App for normal user
98
+
99
+ Some ways:
100
+
101
+ * [Traveling Ruby](https://github.com/phusion/traveling-ruby). I have made a version to support ruby 2.6.3 [here](https://github.com/xiejiangzhi/traveling-ruby) for OSX and Linux
102
+ * [Ruby Packer](https://github.com/pmq20/ruby-packer)
103
+
104
+
105
+ When I finish my application, I will make a gem of the framework.
106
+
81
107
  ## Development
82
108
 
83
109
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/ext/webview/main.go CHANGED
@@ -9,8 +9,8 @@ import "os"
9
9
  import "strings"
10
10
 
11
11
  func EvalCallback(w webview.WebView, name string, value string, userdata string) {
12
- value = strings.ReplaceAll(value, "'", "\\'")
13
- userdata = strings.ReplaceAll(userdata, "'", "\\'")
12
+ value = strings.Replace(value, "'", "\\'", -1)
13
+ userdata = strings.Replace(userdata, "'", "\\'", -1)
14
14
 
15
15
  w.Eval(fmt.Sprintf(`
16
16
  (function(){
@@ -26,7 +26,10 @@ func EvalCallback(w webview.WebView, name string, value string, userdata string)
26
26
 
27
27
  func handleRPC(w webview.WebView, data string) {
28
28
  s := strings.SplitN(data, ",", 2)
29
- action, userdata := s[0], s[1]
29
+ action, userdata := s[0], ""
30
+ if len(s) > 1 {
31
+ userdata = s[1]
32
+ }
30
33
 
31
34
  switch {
32
35
  case action == "close":
data/lib/webview/app.rb CHANGED
@@ -14,6 +14,9 @@ module Webview
14
14
  debug: debug
15
15
  }
16
16
  @options.delete_if { |k, v| v.nil? }
17
+ @app_out = nil
18
+ @app_err = nil
19
+ @app_process = nil
17
20
  end
18
21
 
19
22
  def open(url)
@@ -37,12 +40,11 @@ module Webview
37
40
  app_err.close
38
41
 
39
42
  pid = app_process.pid
40
- Process.kill('QUIT', pid)
43
+ signal('QUIT')
41
44
  begin
42
45
  Timeout.timeout(3) { Process.wait(pid) }
43
46
  rescue Timeout::Error
44
47
  kill
45
- rescue Errno::ECHILD
46
48
  end
47
49
 
48
50
  @app_process = nil
@@ -55,8 +57,15 @@ module Webview
55
57
  end
56
58
 
57
59
  def kill
58
- return unless app_process&.pid
59
- Process.kill('TERM', app_process.pid)
60
+ signal('TERM')
61
+ end
62
+
63
+ def signal(name)
64
+ return false unless app_process&.pid
65
+ Process.kill(name, app_process.pid)
66
+ true
67
+ rescue Errno::ECHILD, Errno::ESRCH
68
+ false
60
69
  end
61
70
 
62
71
  private
@@ -71,5 +80,4 @@ module Webview
71
80
  end
72
81
  end
73
82
  end
74
-
75
83
  end
@@ -1,3 +1,3 @@
1
1
  module Webview
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - jiangzhi.xie
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-09 00:00:00.000000000 Z
11
+ date: 2019-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler