spqr 0.1.1 → 0.1.2
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/CHANGES +7 -1
- data/TODO +1 -0
- data/VERSION +1 -1
- data/lib/rhubarb/rhubarb.rb +3 -1
- data/lib/spqr/app.rb +26 -8
- data/lib/spqr/manageable.rb +2 -0
- metadata +2 -2
data/CHANGES
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
-
|
1
|
+
* Enhancements to SPQR/Rhubarb interoperability. (Rhubarb row_ids are
|
2
|
+
now used for half of the QMF object ID).
|
3
|
+
|
4
|
+
* Enhancements to app skeleton class: now allows specifying username,
|
5
|
+
password, hostname, and port in the constructor to SPQR::App.
|
6
|
+
|
7
|
+
version 0.1.1 (85c87b1239f730374d47e2d8baf795c8c69050f4)
|
2
8
|
|
3
9
|
* Other minor Rhubarb fixes.
|
4
10
|
|
data/TODO
CHANGED
@@ -6,6 +6,7 @@ To do, overall:
|
|
6
6
|
To do for spqr:
|
7
7
|
|
8
8
|
! Event support
|
9
|
+
* Support for map-, array-, and list-valued parameters and properties (QMF on Ruby itself does not support these at the moment)
|
9
10
|
* Broader query support (partially done)
|
10
11
|
* Documentation
|
11
12
|
* Test suite (partially done)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/rhubarb/rhubarb.rb
CHANGED
@@ -130,6 +130,8 @@ module PersistingClassMixins
|
|
130
130
|
return self.new(tup) if tup
|
131
131
|
nil
|
132
132
|
end
|
133
|
+
|
134
|
+
alias find_by_id find
|
133
135
|
|
134
136
|
def find_by(arg_hash)
|
135
137
|
arg_hash = arg_hash.dup
|
@@ -418,7 +420,7 @@ module Persisting
|
|
418
420
|
other.class_eval do
|
419
421
|
attr_reader :row_id
|
420
422
|
attr_reader :created
|
421
|
-
attr_reader :updated
|
423
|
+
attr_reader :updated
|
422
424
|
end
|
423
425
|
end
|
424
426
|
|
data/lib/spqr/app.rb
CHANGED
@@ -21,7 +21,7 @@ module SPQR
|
|
21
21
|
class ClassMeta < Struct.new(:object_class, :schema_class) ; end
|
22
22
|
|
23
23
|
def initialize(options=nil)
|
24
|
-
defaults = {:logfile=>STDERR, :loglevel=>Logger::WARN, :notifier=>nil}
|
24
|
+
defaults = {:logfile=>STDERR, :loglevel=>Logger::WARN, :notifier=>nil, :server=>"localhost", :port=>5672}
|
25
25
|
|
26
26
|
# convenient shorthands for log levels
|
27
27
|
loglevels = {:debug => Logger::DEBUG, :info => Logger::INFO, :warn => Logger::WARN, :error => Logger::ERROR, :fatal => Logger::FATAL}
|
@@ -45,7 +45,16 @@ module SPQR
|
|
45
45
|
@classes_by_id = {}
|
46
46
|
@pipe = options[:notifier]
|
47
47
|
@app_name = (options[:appname] or "SPQR application")
|
48
|
-
|
48
|
+
@qmf_host = options[:server]
|
49
|
+
@qmf_port = options[:port]
|
50
|
+
@qmf_sendUserId = if options.has_key?(:send_user_id)
|
51
|
+
options[:send_user_id]
|
52
|
+
else
|
53
|
+
(options.has_key?(:user) or options.has_key?(:password))
|
54
|
+
end
|
55
|
+
|
56
|
+
@qmf_user = options[:user]
|
57
|
+
@qmf_password = options[:password]
|
49
58
|
end
|
50
59
|
|
51
60
|
def register(*ks)
|
@@ -82,18 +91,20 @@ module SPQR
|
|
82
91
|
raise RuntimeError.new("#{managed_object.class} does not have #{name} exposed as a manageable method; has #{managed_object.class.spqr_meta.mmethods.inspect}") unless managed_method
|
83
92
|
|
84
93
|
# Extract actual parameters from the Qmf::Arguments structure into a proper ruby list
|
85
|
-
|
86
|
-
# XXX: consider adding appropriate impl method to Manageable
|
87
|
-
# to avoid this little dance
|
94
|
+
@log.debug("actual params are: #{args.instance_variable_get(:@by_hash).inspect}") rescue nil
|
88
95
|
actuals_in = managed_method.formals_in.inject([]) {|acc,nm| acc << args[nm]}
|
89
|
-
|
96
|
+
actual_count = actuals_in.size
|
90
97
|
|
91
98
|
@log.debug("managed_object.respond_to? #{managed_method.name.to_sym} ==> #{managed_object.respond_to? managed_method.name.to_sym}")
|
92
99
|
@log.debug("managed_object.class.spqr_meta.mmethods.include? #{name.to_sym} ==> #{managed_object.class.spqr_meta.mmethods.include? name.to_sym}")
|
93
100
|
@log.debug("formals: #{managed_method.formals_in.inspect}")
|
94
101
|
@log.debug("actuals: #{actuals_in.inspect}")
|
95
102
|
|
96
|
-
actuals_out =
|
103
|
+
actuals_out = case actual_count
|
104
|
+
when 0 then managed_object.send(name.to_sym)
|
105
|
+
when 1 then managed_object.send(name.to_sym, actuals_in[0])
|
106
|
+
else managed_object.send(name.to_sym, *actuals_in)
|
107
|
+
end
|
97
108
|
|
98
109
|
raise RuntimeError.new("#{managed_object.class} did not return the appropriate number of return values; got '#{actuals_out.inspect}', but expected #{managed_method.types_out.inspect}") unless result_valid(actuals_out, managed_method)
|
99
110
|
|
@@ -157,7 +168,12 @@ module SPQR
|
|
157
168
|
@log.debug("starting SPQR::App.main...")
|
158
169
|
|
159
170
|
settings = Qmf::ConnectionSettings.new
|
160
|
-
settings.host =
|
171
|
+
settings.host = @qmf_host
|
172
|
+
settings.port = @qmf_port
|
173
|
+
settings.sendUserId = @qmf_sendUserId
|
174
|
+
|
175
|
+
settings.username = @qmf_user if @qmf_sendUserId
|
176
|
+
settings.password = @qmf_password if @qmf_sendUserId
|
161
177
|
|
162
178
|
@connection = Qmf::Connection.new(settings)
|
163
179
|
@log.debug(" +-- @connection created: #{@connection}")
|
@@ -201,7 +217,9 @@ module SPQR
|
|
201
217
|
|
202
218
|
def find_object(ctx, c_id, obj_id)
|
203
219
|
# XXX: context is currently ignored
|
220
|
+
@log.debug("in find_object; class ID is #{c_id}, object ID is #{obj_id}...")
|
204
221
|
klass = @classes_by_id[c_id]
|
222
|
+
@log.debug("found class #{klass.inspect}")
|
205
223
|
klass.find_by_id(obj_id) if klass
|
206
224
|
end
|
207
225
|
|
data/lib/spqr/manageable.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spqr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Benton
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-21 00:00:00 -06:00
|
13
13
|
default_executable: spqr-gen.rb
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|