riddl 0.99.130 → 0.99.131

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.
@@ -78,6 +78,7 @@ module Riddl
78
78
 
79
79
  def close_connection(*args)
80
80
  EM.next_tick do
81
+ trigger_on_close
81
82
  @socket.close_connection(*args)
82
83
  end
83
84
  end
@@ -1,4 +1,4 @@
1
- gem 'thin', '=1.5.1'
1
+ #gem 'thin', '=1.5.1'
2
2
  require File.expand_path(File.dirname(__FILE__) + '/constants')
3
3
  require File.expand_path(File.dirname(__FILE__) + '/implementation')
4
4
  require File.expand_path(File.dirname(__FILE__) + '/protocols/http/parser')
@@ -146,7 +146,7 @@ module Riddl
146
146
  :pid => File.expand_path(@riddl_opts[:basepath] + '/' + @riddl_opts[:pidfile])
147
147
  )
148
148
  else
149
- server = Rack::Server.new(
149
+ Rack::Server.new(
150
150
  :app => app,
151
151
  :Port => @riddl_opts[:port],
152
152
  :environment => 'none',
@@ -164,8 +164,9 @@ module Riddl
164
164
  begin
165
165
  EM.run do
166
166
  puts "Server (#{@riddl_opts[:url]}) started as PID:#{Process.pid}"
167
- puts "XMPP support (#{@riddl_xmpp_jid}) active" if @riddl_xmpp_jid && @riddl_xmpp_pass
168
167
  server.start
168
+
169
+ puts "XMPP support (#{@riddl_xmpp_jid}) active" if @riddl_xmpp_jid && @riddl_xmpp_pass
169
170
  if @riddl_xmpp_jid && @riddl_xmpp_pass
170
171
  xmpp = Blather::Client.setup @riddl_xmpp_jid, @riddl_xmpp_pass
171
172
  @riddl_opts[:xmpp] = xmpp
@@ -188,8 +189,16 @@ module Riddl
188
189
  ]
189
190
  end
190
191
  xmpp.connect
192
+ end
193
+
194
+ [:INT, :TERM].each do |signal|
195
+ Signal.trap(signal) do
196
+ EM.stop
197
+ end
191
198
  end
199
+
192
200
  end
201
+
193
202
  rescue => e
194
203
  if e.is_a?(Blather::Stream::ConnectionFailed)
195
204
  puts "Server (#{@riddl_xmpp_jid}) stopped due to connection error (PID:#{Process.pid})"
@@ -242,7 +251,7 @@ module Riddl
242
251
  def __call #{{{
243
252
  @riddl_message = @riddl.io_messages(@riddl_matching_path[0],@riddl_method,@riddl_parameters,@riddl_headers)
244
253
  if @riddl_message.nil?
245
- if @riddl_info[:env].has_key?('HTTP_ORIGIN') && @riddl_cross_site_xhr
254
+ if @riddl_info[:env].has_key?('HTTP_ORIGIN') && @riddl_cross_site_xhr && @riddl_method == 'options'
246
255
  @riddl_res['Access-Control-Allow-Origin'] = '*'
247
256
  @riddl_res['Access-Control-Allow-Methods'] = 'GET, POST, PUT, DELETE, OPTIONS'
248
257
  @riddl_res['Access-Control-Allow-Headers'] = @riddl_info[:env]['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'] if @riddl_info[:env]['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']
@@ -401,10 +410,10 @@ module Riddl
401
410
  # TODO raise error when declaration and route or (not route and non-local interface)
402
411
  # raise SpecificationError, 'RIDDL description does not conform to specification' unless @riddl.validate!
403
412
  @riddl_info[:m] = @riddl_method = 'websocket'
413
+ @riddl_message = @riddl.io_messages(@riddl_matching_path[0],'websocket',@riddl_parameters,@riddl_headers)
404
414
  if @riddl.description?
405
415
  instance_exec(@riddl_info, &@riddl_interfaces[nil])
406
416
  elsif @riddl.declaration?
407
- @riddl_message = @riddl.io_messages(@riddl_matching_path[0],'websocket',@riddl_parameters,@riddl_headers)
408
417
  # one ws connection, no overlay
409
418
  unless @riddl_message.nil?
410
419
  if @riddl_interfaces.key? @riddl_message.interface.name
@@ -514,11 +523,11 @@ module Riddl
514
523
  false
515
524
  end
516
525
  end # }}}
517
- def post(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && min == @riddl_message.in.name && @riddl_method == 'post' end
518
- def get(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && min == @riddl_message.in.name && @riddl_method == 'get' end
519
- def delete(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && min == @riddl_message.in.name && @riddl_method == 'delete' end
520
- def put(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && min == @riddl_message.in.name && @riddl_method == 'put' end
521
- def websocket; return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_method == 'websocket' end
526
+ def post(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_message.in && min == @riddl_message.in.name && @riddl_method == 'post' end
527
+ def get(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_message.in && min == @riddl_message.in.name && @riddl_method == 'get' end
528
+ def delete(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_message.in && min == @riddl_message.in.name && @riddl_method == 'delete' end
529
+ def put(min='*'); return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_message.in && min == @riddl_message.in.name && @riddl_method == 'put' end
530
+ def websocket; return false if @riddl_message.nil?; @riddl_path == '/' + @riddl_info[:s].join('/') && @riddl_method == 'websocket' end
522
531
  def resource(rname=nil); return rname.nil? ? '{}' : rname end
523
532
 
524
533
  def matching_path #{{{
@@ -179,7 +179,7 @@ module Riddl
179
179
  return IOMessages.new(Riddl::Wrapper::Description::Star.new, Riddl::Wrapper::Description::Star.new)
180
180
  end
181
181
  r.select{|o|o.class==Riddl::Wrapper::Description::WebSocket}.each do |o|
182
- return IOMessages.new(nil,nil,nil,o.result.interface)
182
+ return IOMessages.new(nil,nil,nil,nil)
183
183
  end
184
184
  end
185
185
  if @is_declaration
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "riddl"
3
- s.version = "0.99.130"
3
+ s.version = "0.99.131"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3"
6
6
  s.summary = "restful interface description and declaration language: tools and client/server libs"
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.add_runtime_dependency 'xml-smart', '>=0.3.6'
25
25
  s.add_runtime_dependency 'rack'
26
- s.add_runtime_dependency 'thin', '=1.5.1'
26
+ s.add_runtime_dependency 'thin', '>=1.6.1'
27
27
  s.add_runtime_dependency 'eventmachine', '>= 1.0.0'
28
28
  s.add_runtime_dependency 'em-websocket', '>= 0.4.0'
29
29
  s.add_runtime_dependency 'em-websocket-client'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riddl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.99.130
4
+ version: 0.99.131
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: tools
11
11
  cert_chain: []
12
- date: 2013-10-13 00:00:00.000000000 Z
12
+ date: 2013-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: xml-smart
@@ -48,17 +48,17 @@ dependencies:
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
- - - '='
51
+ - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
- version: 1.5.1
53
+ version: 1.6.1
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
- - - '='
59
+ - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.5.1
61
+ version: 1.6.1
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: eventmachine
64
64
  requirement: !ruby/object:Gem::Requirement