gtk-webkit-ruby 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+