gtk-webkit-ruby 0.0.3
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.
- data/README.md +33 -0
- data/Rakefile +58 -0
- data/ext/webkit/extconf.rb +74 -0
- data/ext/webkit/javascript.h +271 -0
- data/ext/webkit/webkit.c +630 -0
- data/ext/webkit/webkit.cr +160 -0
- data/ext/webkit/webkit.rd +89 -0
- metadata +102 -0
@@ -0,0 +1,160 @@
|
|
1
|
+
%pkg-config gtk+-2.0
|
2
|
+
%pkg-config webkit-1.0
|
3
|
+
%name webkit
|
4
|
+
|
5
|
+
%{
|
6
|
+
#include <intern.h>
|
7
|
+
|
8
|
+
#include "javascript.h"
|
9
|
+
|
10
|
+
static inline VALUE strOrNil(const char *str) {
|
11
|
+
if (str) {
|
12
|
+
return rb_str_new2(str);
|
13
|
+
} else {
|
14
|
+
return Qnil;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
|
18
|
+
%}
|
19
|
+
|
20
|
+
%include webkit/webkit.h
|
21
|
+
%include JavaScriptCore/JavaScript.h
|
22
|
+
|
23
|
+
%map strOrNil > VALUE : strOrNil(%%)
|
24
|
+
|
25
|
+
module WebKit
|
26
|
+
gcpool RubyFunc
|
27
|
+
|
28
|
+
class JavascriptError < StandardError
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.set_web_database_path(char *path)
|
32
|
+
webkit_set_web_database_directory_path(path);
|
33
|
+
end
|
34
|
+
def self.remove_all_web_databases()
|
35
|
+
webkit_remove_all_web_databases();
|
36
|
+
end
|
37
|
+
def self.set_default_web_database_quota(guint64 quota)
|
38
|
+
webkit_set_default_web_database_quota(quota);
|
39
|
+
end
|
40
|
+
|
41
|
+
gobject WebSettings < WEBKIT_TYPE_WEB_SETTINGS
|
42
|
+
@type WebKitWebSettings
|
43
|
+
def initialize()
|
44
|
+
G_INITIALIZE(self, webkit_web_settings_new());
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
gobject WebFrame < WEBKIT_TYPE_WEB_FRAME
|
49
|
+
@type WebKitWebFrame
|
50
|
+
def exec_js(char *js)
|
51
|
+
return javascript_exec(webkit_web_frame_get_global_context(_self), js);
|
52
|
+
end
|
53
|
+
def add_ruby_eval()
|
54
|
+
javascript_add_ruby_eval(webkit_web_frame_get_global_context(_self));
|
55
|
+
end
|
56
|
+
def add_js_api(char *name, &block)
|
57
|
+
javascript_add_ruby_fn(webkit_web_frame_get_global_context(_self), name, block);
|
58
|
+
end
|
59
|
+
def load_string(char *content, char *mime_type, char *encoding, char *base_uri)
|
60
|
+
webkit_web_frame_load_string(_self, content, mime_type, encoding, base_uri);
|
61
|
+
end
|
62
|
+
end
|
63
|
+
gobject WebView < WEBKIT_TYPE_WEB_VIEW
|
64
|
+
@type WebKitWebView
|
65
|
+
def initialize()
|
66
|
+
RBGTK_INITIALIZE(self, webkit_web_view_new());
|
67
|
+
end
|
68
|
+
def open(char *uri)
|
69
|
+
webkit_web_view_open(_self, uri);
|
70
|
+
end
|
71
|
+
def execute_script(char *script)
|
72
|
+
webkit_web_view_execute_script(_self, script);
|
73
|
+
end
|
74
|
+
def set_settings(WebKitWebSettings *settings)
|
75
|
+
webkit_web_view_set_settings(_self, settings);
|
76
|
+
end
|
77
|
+
def load_string(char *content, char *mime_type, char *encoding, char *base_uri)
|
78
|
+
webkit_web_view_load_string(_self, content, mime_type, encoding, base_uri);
|
79
|
+
end
|
80
|
+
def load_uri(char *uri)
|
81
|
+
webkit_web_view_load_uri(_self, uri);
|
82
|
+
end
|
83
|
+
def WebKitWebFrame*:main_frame
|
84
|
+
return webkit_web_view_get_main_frame(_self);
|
85
|
+
end
|
86
|
+
def WebKitWebFrame*:focused_frame
|
87
|
+
return webkit_web_view_get_focused_frame(_self);
|
88
|
+
end
|
89
|
+
def double:progress
|
90
|
+
return webkit_web_view_get_progress(_self);
|
91
|
+
end
|
92
|
+
def char*:title
|
93
|
+
return webkit_web_view_get_title(_self);
|
94
|
+
end
|
95
|
+
def char*:uri
|
96
|
+
return webkit_web_view_get_uri(_self);
|
97
|
+
end
|
98
|
+
def reload
|
99
|
+
webkit_web_view_reload(_self);
|
100
|
+
end
|
101
|
+
def reload_bypass_cache
|
102
|
+
webkit_web_view_reload_bypass_cache(_self);
|
103
|
+
end
|
104
|
+
def set_custom_encoding(char *encoding)
|
105
|
+
webkit_web_view_set_custom_encoding(_self, encoding);
|
106
|
+
end
|
107
|
+
def stop_loading
|
108
|
+
webkit_web_view_stop_loading(_self);
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
gobject WebResource < WEBKIT_TYPE_WEB_RESOURCE
|
113
|
+
@type WebKitWebResource
|
114
|
+
def strOrNil:encoding
|
115
|
+
return webkit_web_resource_get_encoding(_self);
|
116
|
+
end
|
117
|
+
def strOrNil:frame_name
|
118
|
+
return webkit_web_resource_get_frame_name(_self);
|
119
|
+
end
|
120
|
+
def strOrNil:mime_type
|
121
|
+
return webkit_web_resource_get_mime_type(_self);
|
122
|
+
end
|
123
|
+
def strOrNil:uri
|
124
|
+
return webkit_web_resource_get_mime_type(_self);
|
125
|
+
end
|
126
|
+
def data
|
127
|
+
GString *data = webkit_web_resource_get_data(_self);
|
128
|
+
return rb_str_new(data->str, data->len);
|
129
|
+
end
|
130
|
+
def data=(T_STRING data)
|
131
|
+
GString *odata = webkit_web_resource_get_data(_self);
|
132
|
+
g_free(odata->str);
|
133
|
+
odata->str = g_malloc(RSTRING_LEN(data)+1);
|
134
|
+
odata->len = odata->allocated_len = RSTRING_LEN(data);
|
135
|
+
memcpy(RSTRING_PTR(data), odata->str, RSTRING_LEN(data));
|
136
|
+
return data;
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
gobject WebNetworkRequest < WEBKIT_TYPE_NETWORK_REQUEST
|
141
|
+
@type WebKitNetworkRequest
|
142
|
+
def char*:uri
|
143
|
+
return webkit_network_request_get_uri(_self);
|
144
|
+
end
|
145
|
+
def uri=(char *uri)
|
146
|
+
webkit_network_request_set_uri(_self, uri);
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
gobject WebNetworkResponse < WEBKIT_TYPE_NETWORK_RESPONSE
|
151
|
+
@type WebKitNetworkResponse
|
152
|
+
def char*:uri
|
153
|
+
return webkit_network_response_get_uri(_self);
|
154
|
+
end
|
155
|
+
def uri=(char *uri)
|
156
|
+
webkit_network_response_set_uri(_self, uri);
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
= module WebKit
|
2
|
+
--- WebKit.set_web_database_path(String path)
|
3
|
+
|
4
|
+
|
5
|
+
--- WebKit.remove_all_web_databases()
|
6
|
+
|
7
|
+
|
8
|
+
--- WebKit.set_default_web_database_quota(guint64 quota)
|
9
|
+
|
10
|
+
|
11
|
+
== class WebKit::JavascriptError < StandardError
|
12
|
+
== class WebKit::WebSettings
|
13
|
+
--- WebKit::WebSettings.new
|
14
|
+
|
15
|
+
== class WebKit::WebFrame
|
16
|
+
--- WebKit::WebFrame#exec_js(String js)
|
17
|
+
|
18
|
+
|
19
|
+
--- WebKit::WebFrame#add_ruby_eval
|
20
|
+
|
21
|
+
--- WebKit::WebFrame#add_js_api(String name, block)
|
22
|
+
|
23
|
+
|
24
|
+
--- WebKit::WebFrame#load_string(String content, String mime_type, String encoding, String base_uri)
|
25
|
+
|
26
|
+
|
27
|
+
== class WebKit::WebView
|
28
|
+
--- WebKit::WebView.new
|
29
|
+
|
30
|
+
--- WebKit::WebView#open(String uri)
|
31
|
+
|
32
|
+
|
33
|
+
--- WebKit::WebView#execute_script(String script)
|
34
|
+
|
35
|
+
|
36
|
+
--- WebKit::WebView#set_settings(WebKitWebSettings* settings)
|
37
|
+
|
38
|
+
|
39
|
+
--- WebKit::WebView#load_string(String content, String mime_type, String encoding, String base_uri)
|
40
|
+
|
41
|
+
|
42
|
+
--- WebKit::WebView#load_uri(String uri)
|
43
|
+
|
44
|
+
|
45
|
+
--- WebKit::WebView#main_frame
|
46
|
+
|
47
|
+
--- WebKit::WebView#focused_frame
|
48
|
+
|
49
|
+
--- WebKit::WebView#progress
|
50
|
+
|
51
|
+
--- WebKit::WebView#title
|
52
|
+
|
53
|
+
--- WebKit::WebView#uri
|
54
|
+
|
55
|
+
--- WebKit::WebView#reload
|
56
|
+
|
57
|
+
--- WebKit::WebView#reload_bypass_cache
|
58
|
+
|
59
|
+
--- WebKit::WebView#set_custom_encoding(String encoding)
|
60
|
+
|
61
|
+
|
62
|
+
--- WebKit::WebView#stop_loading
|
63
|
+
|
64
|
+
== class WebKit::WebResource
|
65
|
+
--- WebKit::WebResource#encoding
|
66
|
+
|
67
|
+
--- WebKit::WebResource#frame_name
|
68
|
+
|
69
|
+
--- WebKit::WebResource#mime_type
|
70
|
+
|
71
|
+
--- WebKit::WebResource#uri
|
72
|
+
|
73
|
+
--- WebKit::WebResource#data
|
74
|
+
|
75
|
+
--- WebKit::WebResource#data=(String data)
|
76
|
+
|
77
|
+
|
78
|
+
== class WebKit::WebNetworkRequest
|
79
|
+
--- WebKit::WebNetworkRequest#uri
|
80
|
+
|
81
|
+
--- WebKit::WebNetworkRequest#uri=(String uri)
|
82
|
+
|
83
|
+
|
84
|
+
== class WebKit::WebNetworkResponse
|
85
|
+
--- WebKit::WebNetworkResponse#uri
|
86
|
+
|
87
|
+
--- WebKit::WebNetworkResponse#uri=(String uri)
|
88
|
+
|
89
|
+
|
metadata
ADDED
@@ -0,0 +1,102 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gtk-webkit-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Geoff Youngs
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-06-17 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rubber-generate
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 7
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 0
|
33
|
+
- 12
|
34
|
+
version: 0.0.12
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
description: |
|
38
|
+
Gtk Webkit bindings for ruby. Partial coverage sufficient to embed a webview in a Ruby-GNOME2 application.
|
39
|
+
|
40
|
+
Also initial/experimental support for allowing ruby code to be called by javascript & executing javascript
|
41
|
+
from ruby.
|
42
|
+
|
43
|
+
e.g
|
44
|
+
require 'gtk2'
|
45
|
+
require 'webkit'
|
46
|
+
|
47
|
+
v = WebKit::WebView.new
|
48
|
+
v.main_frame.setup_ruby
|
49
|
+
puts v.main_frame.exec_js("ruby_eval('RUBY_DESCRIPTION')")
|
50
|
+
puts v.main_frame.exec_js("document.root.innerHTML")
|
51
|
+
|
52
|
+
email: git@intersect-uk.co.uk
|
53
|
+
executables: []
|
54
|
+
|
55
|
+
extensions:
|
56
|
+
- ext/webkit/extconf.rb
|
57
|
+
extra_rdoc_files: []
|
58
|
+
|
59
|
+
files:
|
60
|
+
- ext/webkit/webkit.c
|
61
|
+
- ext/webkit/javascript.h
|
62
|
+
- ext/webkit/webkit.cr
|
63
|
+
- ext/webkit/webkit.rd
|
64
|
+
- Rakefile
|
65
|
+
- README.md
|
66
|
+
- ext/webkit/extconf.rb
|
67
|
+
has_rdoc: true
|
68
|
+
homepage: http://github.com/geoffyoungs/gtk-webkit-ruby
|
69
|
+
licenses: []
|
70
|
+
|
71
|
+
post_install_message:
|
72
|
+
rdoc_options: []
|
73
|
+
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
hash: 3
|
82
|
+
segments:
|
83
|
+
- 0
|
84
|
+
version: "0"
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
version: "0"
|
94
|
+
requirements: []
|
95
|
+
|
96
|
+
rubyforge_project:
|
97
|
+
rubygems_version: 1.3.7
|
98
|
+
signing_key:
|
99
|
+
specification_version: 3
|
100
|
+
summary: Webkit bindings using rubber-generate
|
101
|
+
test_files: []
|
102
|
+
|