Orbjson 0.0.3 → 0.0.4

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.
@@ -1,21 +0,0 @@
1
- class Details
2
-
3
- def initialize( )
4
- @detail_set = Hash.new( "Nothing is known about your selection" )
5
- data = { 'JSON' => "A serialization format for transmitting native JavaScript objects as plain text.",
6
- 'JSON-RPC' => "Like XML-RPC, but use JSON as the wire format.",
7
- 'Ruby' => "It's got soul, and it's super bad!" }
8
-
9
- @detail_set.merge!( data )
10
- end
11
-
12
-
13
- def fetch item
14
- @detail_set[ item ]
15
- end
16
-
17
-
18
- end
19
-
20
-
21
-
@@ -1,49 +0,0 @@
1
- # Logfile created on Mon Feb 28 22:59:12 US Mountain Standard Time 2005 by logger.rb/1.5.2.4
2
- D, [2005-02-28T22:59:12.571000 #1752] DEBUG -- : Regist now has
3
- [:System, :pipeline_elements, :logging_interceptor, :logs, :system, :definition_context_factory, :log_for, :namespace_impl_factory, :service_models, :Details, :interceptor_impl_factory]
4
- D, [2005-02-28T22:59:53.530000 #1752] DEBUG -- : klass, method = system, listMethods
5
- D, [2005-02-28T22:59:53.530000 #1752] DEBUG -- : 146
6
- E, [2005-02-28T22:59:53.590000 #1752] ERROR -- : System#list_methods error (eval):1:in `list_methods': uninitialized constant Orbjson::System::Pipeline_elements
7
- E, [2005-02-28T22:59:53.630000 #1752] ERROR -- : System#list_methods error (eval):1:in `list_methods': uninitialized constant Orbjson::System::Logging_interceptor
8
- E, [2005-02-28T22:59:53.660000 #1752] ERROR -- : System#list_methods error (eval):1:in `list_methods': uninitialized constant Orbjson::System::Logs
9
- E, [2005-02-28T22:59:53.700000 #1752] ERROR -- : System#list_methods error (eval):1:in `list_methods': uninitialized constant Orbjson::System::Definition_context_factory
10
- E, [2005-02-28T22:59:53.700000 #1752] ERROR -- : System#list_methods error (eval):1:in `list_methods': uninitialized constant Orbjson::System::Log_for
11
- E, [2005-02-28T22:59:53.730000 #1752] ERROR -- : System#list_methods error (eval):1:in `list_methods': uninitialized constant Orbjson::System::Namespace_impl_factory
12
- E, [2005-02-28T22:59:53.750000 #1752] ERROR -- : System#list_methods error (eval):1:in `list_methods': uninitialized constant Orbjson::System::Service_models
13
- E, [2005-02-28T22:59:53.770000 #1752] ERROR -- : System#list_methods error (eval):1:in `list_methods': uninitialized constant Orbjson::System::Interceptor_impl_factory
14
- D, [2005-02-28T23:00:00.460000 #1752] DEBUG -- : klass, method = details, fetch
15
- D, [2005-02-28T23:00:00.470000 #1752] DEBUG -- : 137
16
- D, [2005-02-28T23:00:00.490000 #1752] DEBUG -- : 142
17
- D, [2005-02-28T23:00:03.244000 #1752] DEBUG -- : klass, method = details, fetch
18
- D, [2005-02-28T23:00:03.244000 #1752] DEBUG -- : 137
19
- D, [2005-02-28T23:00:03.264000 #1752] DEBUG -- : 142
20
- D, [2005-02-28T23:00:04.736000 #1752] DEBUG -- : klass, method = details, fetch
21
- D, [2005-02-28T23:00:04.736000 #1752] DEBUG -- : 137
22
- D, [2005-02-28T23:00:04.756000 #1752] DEBUG -- : 142
23
- D, [2005-02-28T23:00:06.058000 #1752] DEBUG -- : klass, method = details, fetch
24
- D, [2005-02-28T23:00:06.058000 #1752] DEBUG -- : 137
25
- D, [2005-02-28T23:00:06.078000 #1752] DEBUG -- : 142
26
- D, [2005-02-28T23:00:07.530000 #1752] DEBUG -- : klass, method = details, fetch
27
- D, [2005-02-28T23:00:07.540000 #1752] DEBUG -- : 137
28
- D, [2005-02-28T23:00:07.560000 #1752] DEBUG -- : 142
29
- D, [2005-02-28T23:00:08.882000 #1752] DEBUG -- : klass, method = details, fetch
30
- D, [2005-02-28T23:00:08.892000 #1752] DEBUG -- : 137
31
- D, [2005-02-28T23:00:08.912000 #1752] DEBUG -- : 142
32
- D, [2005-02-28T23:00:10.714000 #1752] DEBUG -- : klass, method = details, fetch
33
- D, [2005-02-28T23:00:10.714000 #1752] DEBUG -- : 137
34
- D, [2005-02-28T23:00:10.734000 #1752] DEBUG -- : 142
35
- D, [2005-02-28T23:00:11.766000 #1752] DEBUG -- : klass, method = details, fetch
36
- D, [2005-02-28T23:00:11.766000 #1752] DEBUG -- : 137
37
- D, [2005-02-28T23:00:11.766000 #1752] DEBUG -- : 142
38
- D, [2005-02-28T23:00:12.447000 #1752] DEBUG -- : klass, method = details, fetch
39
- D, [2005-02-28T23:00:12.457000 #1752] DEBUG -- : 137
40
- D, [2005-02-28T23:00:12.477000 #1752] DEBUG -- : 142
41
- D, [2005-02-28T23:00:15.231000 #1752] DEBUG -- : klass, method = details, fetch
42
- D, [2005-02-28T23:00:15.231000 #1752] DEBUG -- : 137
43
- D, [2005-02-28T23:00:15.261000 #1752] DEBUG -- : 142
44
- D, [2005-02-28T23:00:19.267000 #1752] DEBUG -- : klass, method = details, fetch
45
- D, [2005-02-28T23:00:19.277000 #1752] DEBUG -- : 137
46
- D, [2005-02-28T23:00:19.297000 #1752] DEBUG -- : 142
47
- D, [2005-02-28T23:00:20.258000 #1752] DEBUG -- : klass, method = details, fetch
48
- D, [2005-02-28T23:00:20.268000 #1752] DEBUG -- : 137
49
- D, [2005-02-28T23:00:20.288000 #1752] DEBUG -- : 142
@@ -1,187 +0,0 @@
1
- /*
2
- * JSON-RPC JavaScript client
3
- *
4
- * $Id: jsonrpc.js,v 1.1.1.1 2005/02/28 03:06:29 jamesgbritt Exp $
5
- *
6
- * Copyright (c) 2003-2004 Jan-Klaas Kollhof
7
- * Copyright (c) 2005 Michael Clark, Metaparadigm Pte Ltd
8
- *
9
- * This code is based on Jan-Klaas' JavaScript o lait library (jsolait).
10
- *
11
- * This library is free software; you can redistribute it and/or
12
- * modify it under the terms of the GNU Lesser General Public (LGPL)
13
- * License as published by the Free Software Foundation; either
14
- * version 2.1 of the License, or (at your option) any later version.
15
- *
16
- * This library is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
- * Lesser General Public License for more details: http://www.gnu.org/
20
- *
21
- */
22
-
23
- // TODO: Add async
24
- // TODO: Add HTTP auth (user, password)
25
-
26
- Object.prototype.toJSON = function Object_toJSON() {
27
- var v = [];
28
- for(attr in this) {
29
- if(this[attr] == null) v.push("\"" + attr + "\": null");
30
- else if(typeof this[attr] == "function"); // skip
31
- else v.push("\"" + attr + "\": " + this[attr].toJSON());
32
- }
33
- return "{" + v.join(", ") + "}";
34
- }
35
-
36
- String.prototype.toJSON = function String_toJSON() {
37
- return "\"" + this.replace(/([\"\\])/g, "\\$1") + "\"";
38
- }
39
-
40
- Number.prototype.toJSON = function Number_toJSON() {
41
- return this.toString();
42
- }
43
-
44
- Boolean.prototype.toJSON = function Boolean_toJSON() {
45
- return this.toString();
46
- }
47
-
48
- Date.prototype.toJSON = function Date_toJSON() {
49
- this.valueOf().toString();
50
- }
51
-
52
- Array.prototype.toJSON = function Array_toJSON() {
53
- var v = [];
54
- for(var i=0; i<this.length; i++) {
55
- if(this[i] == null) v.push("null");
56
- else v.push(this[i].toJSON());
57
- }
58
- return "[" + v.join(", ") + "]";
59
- }
60
-
61
- JSONRpcClient = function JSONRpcClient_ctor(serverURL, objectID) {
62
- this.serverURL = serverURL;
63
- this.objectID = objectID;
64
-
65
- // Lazy initialization of the XMLHttpRequest singleton
66
- if(!JSONRpcClient.http)
67
- JSONRpcClient.http = JSONRpcClient.getHTTPRequest();
68
-
69
- // Add standard methods
70
- this.addMethods(["system.listMethods"]);
71
-
72
- // Query the methods on the server and add them to this object
73
- var m = this.sendRequest("system.listMethods", []);
74
- this.addMethods(m);
75
- }
76
-
77
- JSONRpcClient.Exception = function JSONRpcClient_Exception_ctor(code, msg) {
78
- this.code = code;
79
- this.msg = msg;
80
- }
81
-
82
- JSONRpcClient.Exception.prototype.toString =
83
- function JSONRpcClient_Exception_toString(code, msg) {
84
- return "JSONRpcClientException: " + this.msg;
85
- }
86
-
87
- JSONRpcClient.Method =
88
- function JSONRpcClient_Method_ctor(client, methodName) {
89
- var fn=function() {
90
- var args = [];
91
- for(var i=0;i<arguments.length;i++) {
92
- args.push(arguments[i]);
93
- }
94
- return fn.client.sendRequest.call(fn.client, fn.methodName, args);
95
- }
96
- fn.client = client;
97
- fn.methodName = methodName;
98
- return fn;
99
- }
100
-
101
- JSONRpcClient.prototype.addMethods =
102
- function JSONRpcClient_addMethods(methodNames) {
103
- for(var i=0; i<methodNames.length; i++) {
104
- var obj = this;
105
- var names = methodNames[i].split(".");
106
- for(var n=0; n<names.length-1; n++){
107
- var name = names[n];
108
- if(obj[name]){
109
- obj = obj[name];
110
- }
111
- else {
112
- obj[name] = new Object();
113
- obj = obj[name];
114
- }
115
- }
116
- var name = names[names.length-1];
117
- if(!obj[name]){
118
- var method = new JSONRpcClient.Method(this, methodNames[i]);
119
- obj[name] = method;
120
- }
121
- }
122
- }
123
-
124
- JSONRpcClient.prototype.sendRequest =
125
- function JSONRpcClient_sendRequest(methodName, args) {
126
- // Make request object
127
- var obj = {"method" : methodName, "params" : args};
128
- if (this.objectID) obj.objectID = this.objectID;
129
-
130
- // Marshall the request object to a JSON string
131
- var req_data = obj.toJSON();
132
-
133
- // Send the request
134
- JSONRpcClient.http.open("POST", this.serverURL, false); // no async
135
- // setRequestHeader is missing in Opera 8 Beta
136
- try {
137
- JSONRpcClient.http.setRequestHeader("Content-type", "text/plain");
138
- }
139
- catch(e) {}
140
- JSONRpcClient.http.send(req_data);
141
-
142
- // Unmarshall the response
143
- // DEBUG
144
- try {
145
- eval("var obj = " + JSONRpcClient.http.responseText);
146
- }
147
- catch(e) {
148
- alert( e )
149
- alert( JSONRpcClient.http.responseText )
150
- obj.err = e.toString()
151
- }
152
- if( obj.error) {
153
- alert( JSONRpcClient.http.responseText )
154
- throw new JSONRpcClient.Exception(obj.error.code, obj.error.msg);
155
- }
156
- var res = obj.result;
157
-
158
- // Handle CallableProxy
159
- if(res && res.objectID && res.JSONRPCType == "CallableReference")
160
- return new JSONRpcClient(this.serverURL, res.objectID);
161
-
162
- return res;
163
- }
164
-
165
- JSONRpcClient.getHTTPRequest = function JSONRpcClient_getHTTPRequest() {
166
- try { // to get the mozilla httprequest object
167
- return new XMLHttpRequest();
168
- }
169
- catch(e) {}
170
-
171
- try { // to get MS HTTP request object
172
- return new ActiveXObject("Msxml2.XMLHTTP.4.0");
173
- }
174
- catch(e) {}
175
-
176
- try { // to get MS HTTP request object
177
- return new ActiveXObject("Msxml2.XMLHTTP");
178
- }
179
- catch(e) {}
180
-
181
- try {// to get the old MS HTTP request object
182
- return new ActiveXObject("microsoft.XMLHTTP");
183
- }
184
- catch(e) {}
185
-
186
- throw new JSONRpcClient.Exception(0, "Can't create XMLHttpRequest object");
187
- }
@@ -1,28 +0,0 @@
1
- #!/usr/local/bin/ruby
2
- require 'webrick'
3
-
4
- require "orbjson"
5
- include WEBrick
6
-
7
-
8
- Socket.do_not_reverse_lookup = true
9
-
10
- $logger = Logger.new( "orbjson.log" )
11
- $logger.level = Logger::WARN
12
-
13
- s = HTTPServer.new( :Port => 2222,
14
- :DocumentRoot => File.dirname( __FILE__ ) )
15
-
16
- s.mount("/json-rpc", Orbjson::WEBrick_JSON_RPC )
17
-
18
-
19
- s.mount_proc( "/exit" ){|req, res| s.shutdown; exit; }
20
- s.mount_proc( "/quit" ){|req, res| s.shutdown; exit; }
21
-
22
- Orbjson::System.init( "file://config.yml" )
23
-
24
-
25
- trap( "INT" ){ s.shutdown }
26
- trap( 1 ){ s.shutdown }
27
- s.start
28
-
@@ -1,21 +0,0 @@
1
- class Details
2
-
3
- def initialize( )
4
- @detail_set = Hash.new( "Nothing is known about your selection" )
5
- data = { 'JSON' => "A serialization format for transmitting native JavaScript objects as plain text.",
6
- 'JSON-RPC' => "Like XML-RPC, but use JSON as the wire format.",
7
- 'Ruby' => "It's got soul, and it's super bad!" }
8
-
9
- @detail_set.merge!( data )
10
- end
11
-
12
-
13
- def fetch item
14
- @detail_set[ item ]
15
- end
16
-
17
-
18
- end
19
-
20
-
21
-
@@ -1,60 +0,0 @@
1
- #!/usr/local/bin/ruby
2
-
3
-
4
- require 'cgi'
5
- require 'rubygems'
6
- require "orbjson"
7
- require 'logger'
8
-
9
- include Orbjson
10
-
11
-
12
- $logger = Logger.new( "orbjson_cgi.log" )
13
-
14
- # Change this to ERROR or something when your code does
15
- # all it should, and does it right:
16
- $logger.level = Logger::DEBUG
17
-
18
-
19
- $logger.debug( "Have a request!" )
20
-
21
- # You can configure the Orbjsn services list in a few ways.
22
- # Well, three, really:
23
- # 1. Pass in a path to a local YAML file; the path must begin with
24
- # 'file://'
25
- # For example: cfg = 'file://config.yaml'
26
- # json_rpc = CGI_JSON_RPC.new( cfg )
27
- #
28
- # 2. Pass in some YAML:
29
- # cfg = 'services/sample:
30
- # - Details'
31
- # json_rpc = CGI_JSON_RPC.new( cfg )
32
- #
33
- # 3. Pass in some an atual Hash objectL:
34
- # cfg = { 'services/sample' => ['Details'] }
35
- # json_rpc = CGI_JSON_RPC.new( cfg )
36
- #
37
- # The hash (however you express it) consists of 'require' paths mapped
38
- # to arrays of classes to instantiate.
39
-
40
-
41
- # Change this to suit your actual situation:
42
- cfg = 'services/sample:
43
- - Details'
44
- json_rpc = CGI_JSON_RPC.new( cfg )
45
-
46
- print "content-type: text/javascript\n\n"
47
- res = json_rpc.process_request
48
- $logger.debug( "Have a response:\n#{res}" )
49
- # Logging may make an already slow CGI app go
50
- # even slower, so consider dropping this suf when things are good.
51
-
52
- print res
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
@@ -1,187 +0,0 @@
1
- /*
2
- * JSON-RPC JavaScript client
3
- *
4
- * $Id: jsonrpc.js,v 1.1.1.1 2005/02/28 03:06:28 jamesgbritt Exp $
5
- *
6
- * Copyright (c) 2003-2004 Jan-Klaas Kollhof
7
- * Copyright (c) 2005 Michael Clark, Metaparadigm Pte Ltd
8
- *
9
- * This code is based on Jan-Klaas' JavaScript o lait library (jsolait).
10
- *
11
- * This library is free software; you can redistribute it and/or
12
- * modify it under the terms of the GNU Lesser General Public (LGPL)
13
- * License as published by the Free Software Foundation; either
14
- * version 2.1 of the License, or (at your option) any later version.
15
- *
16
- * This library is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
- * Lesser General Public License for more details: http://www.gnu.org/
20
- *
21
- */
22
-
23
- // TODO: Add async
24
- // TODO: Add HTTP auth (user, password)
25
-
26
- Object.prototype.toJSON = function Object_toJSON() {
27
- var v = [];
28
- for(attr in this) {
29
- if(this[attr] == null) v.push("\"" + attr + "\": null");
30
- else if(typeof this[attr] == "function"); // skip
31
- else v.push("\"" + attr + "\": " + this[attr].toJSON());
32
- }
33
- return "{" + v.join(", ") + "}";
34
- }
35
-
36
- String.prototype.toJSON = function String_toJSON() {
37
- return "\"" + this.replace(/([\"\\])/g, "\\$1") + "\"";
38
- }
39
-
40
- Number.prototype.toJSON = function Number_toJSON() {
41
- return this.toString();
42
- }
43
-
44
- Boolean.prototype.toJSON = function Boolean_toJSON() {
45
- return this.toString();
46
- }
47
-
48
- Date.prototype.toJSON = function Date_toJSON() {
49
- this.valueOf().toString();
50
- }
51
-
52
- Array.prototype.toJSON = function Array_toJSON() {
53
- var v = [];
54
- for(var i=0; i<this.length; i++) {
55
- if(this[i] == null) v.push("null");
56
- else v.push(this[i].toJSON());
57
- }
58
- return "[" + v.join(", ") + "]";
59
- }
60
-
61
- JSONRpcClient = function JSONRpcClient_ctor(serverURL, objectID) {
62
- this.serverURL = serverURL;
63
- this.objectID = objectID;
64
-
65
- // Lazy initialization of the XMLHttpRequest singleton
66
- if(!JSONRpcClient.http)
67
- JSONRpcClient.http = JSONRpcClient.getHTTPRequest();
68
-
69
- // Add standard methods
70
- this.addMethods(["system.listMethods"]);
71
-
72
- // Query the methods on the server and add them to this object
73
- var m = this.sendRequest("system.listMethods", []);
74
- this.addMethods(m);
75
- }
76
-
77
- JSONRpcClient.Exception = function JSONRpcClient_Exception_ctor(code, msg) {
78
- this.code = code;
79
- this.msg = msg;
80
- }
81
-
82
- JSONRpcClient.Exception.prototype.toString =
83
- function JSONRpcClient_Exception_toString(code, msg) {
84
- return "JSONRpcClientException: " + this.msg;
85
- }
86
-
87
- JSONRpcClient.Method =
88
- function JSONRpcClient_Method_ctor(client, methodName) {
89
- var fn=function() {
90
- var args = [];
91
- for(var i=0;i<arguments.length;i++) {
92
- args.push(arguments[i]);
93
- }
94
- return fn.client.sendRequest.call(fn.client, fn.methodName, args);
95
- }
96
- fn.client = client;
97
- fn.methodName = methodName;
98
- return fn;
99
- }
100
-
101
- JSONRpcClient.prototype.addMethods =
102
- function JSONRpcClient_addMethods(methodNames) {
103
- for(var i=0; i<methodNames.length; i++) {
104
- var obj = this;
105
- var names = methodNames[i].split(".");
106
- for(var n=0; n<names.length-1; n++){
107
- var name = names[n];
108
- if(obj[name]){
109
- obj = obj[name];
110
- }
111
- else {
112
- obj[name] = new Object();
113
- obj = obj[name];
114
- }
115
- }
116
- var name = names[names.length-1];
117
- if(!obj[name]){
118
- var method = new JSONRpcClient.Method(this, methodNames[i]);
119
- obj[name] = method;
120
- }
121
- }
122
- }
123
-
124
- JSONRpcClient.prototype.sendRequest =
125
- function JSONRpcClient_sendRequest(methodName, args) {
126
- // Make request object
127
- var obj = {"method" : methodName, "params" : args};
128
- if (this.objectID) obj.objectID = this.objectID;
129
-
130
- // Marshall the request object to a JSON string
131
- var req_data = obj.toJSON();
132
-
133
- // Send the request
134
- JSONRpcClient.http.open("POST", this.serverURL, false); // no async
135
- // setRequestHeader is missing in Opera 8 Beta
136
- try {
137
- JSONRpcClient.http.setRequestHeader("Content-type", "text/plain");
138
- }
139
- catch(e) {}
140
- JSONRpcClient.http.send(req_data);
141
-
142
- // Unmarshall the response
143
- // DEBUG
144
- try {
145
- eval("var obj = " + JSONRpcClient.http.responseText);
146
- }
147
- catch(e) {
148
- alert( e )
149
- alert( JSONRpcClient.http.responseText )
150
- obj.err = e.toString()
151
- }
152
- if( obj.error) {
153
- alert( JSONRpcClient.http.responseText )
154
- throw new JSONRpcClient.Exception(obj.error.code, obj.error.msg);
155
- }
156
- var res = obj.result;
157
-
158
- // Handle CallableProxy
159
- if(res && res.objectID && res.JSONRPCType == "CallableReference")
160
- return new JSONRpcClient(this.serverURL, res.objectID);
161
-
162
- return res;
163
- }
164
-
165
- JSONRpcClient.getHTTPRequest = function JSONRpcClient_getHTTPRequest() {
166
- try { // to get the mozilla httprequest object
167
- return new XMLHttpRequest();
168
- }
169
- catch(e) {}
170
-
171
- try { // to get MS HTTP request object
172
- return new ActiveXObject("Msxml2.XMLHTTP.4.0");
173
- }
174
- catch(e) {}
175
-
176
- try { // to get MS HTTP request object
177
- return new ActiveXObject("Msxml2.XMLHTTP");
178
- }
179
- catch(e) {}
180
-
181
- try {// to get the old MS HTTP request object
182
- return new ActiveXObject("microsoft.XMLHTTP");
183
- }
184
- catch(e) {}
185
-
186
- throw new JSONRpcClient.Exception(0, "Can't create XMLHttpRequest object");
187
- }