kipatra 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/bin/kipatra CHANGED
@@ -6,7 +6,7 @@ require 'rubygems'
6
6
  require 'kipatra'
7
7
  require 'optparse'
8
8
 
9
- options = {:udp => [], :tcp => [], :sipatra => false}
9
+ options = {:udp => [], :tcp => [], :sipatra => false, :example => false}
10
10
  option_parser = OptionParser.new do |opts|
11
11
 
12
12
  opts.on("-u UDP","--udp UDP") do |udp|
@@ -21,8 +21,12 @@ option_parser = OptionParser.new do |opts|
21
21
  options[:tcp] << {:host => host, :port => port}
22
22
  end
23
23
 
24
- opts.on("-s", "--sipatra") do
25
- options[:sipatra] = true
24
+ opts.on("-w", "--war") do
25
+ options[:war] = true
26
+ end
27
+
28
+ opts.on("-e EXAMPLE", "--example EXAMPLE") do |example_name|
29
+ options[:example] = example_name
26
30
  end
27
31
  end
28
32
  option_parser.parse!
@@ -31,10 +35,13 @@ option_parser.parse!
31
35
  #puts options.inspect
32
36
 
33
37
  dir_or_file = ARGV.shift
38
+ if options[:example]
39
+ dir_or_file = File.join(File.dirname(__FILE__), '../examples', options[:example], 'sample.rb')
40
+ end
34
41
 
35
- raise "No application to start." if dir_or_file.nil?
42
+ raise "No application (or WAR) to start." if dir_or_file.nil?
36
43
 
37
- if(File.directory?(dir_or_file) || dir_or_file[-4..-1] == '.war')
44
+ if options[:war]
38
45
  options[:war] = dir_or_file
39
46
  else
40
47
  options[:app_file] = dir_or_file
data/lib/kipatra.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  require 'kipatra/cipango'
2
+ require 'kipatra/sipatra'
2
3
 
3
4
  module Kipatra
4
5
  class Server
5
6
  include Cipango
6
7
 
7
8
  def initialize(opts)
8
- @war, @app_file, @sipatra, @tcp, @udp = opts[:war], opts[:app_file], opts[:sipatra], opts[:tcp], opts[:udp]
9
- # useless
9
+ @war, @app_file, @tcp, @udp = opts[:war], opts[:app_file], opts[:tcp], opts[:udp]
10
10
  unless @war || @app_file
11
11
  raise ArgumentError, "Either :war or :app_file must be defined"
12
12
  end
@@ -35,6 +35,10 @@ module Kipatra
35
35
  def manage_connectors
36
36
  conns = []
37
37
 
38
+ if @udp.empty? and @tcp.empty?
39
+ @udp = [{:host => '0.0.0.0', :port => 5060}]
40
+ end
41
+
38
42
  @udp.each do |args|
39
43
  conn = UdpConnector.new
40
44
  conn.host, conn.port = args[:host], args[:port]
@@ -56,16 +60,15 @@ module Kipatra
56
60
  ctxt = SipAppContext.new
57
61
  ctxt.context_path = '/'
58
62
  ctxt.war = @war
59
- elsif @sipatra
60
- ctxt = SipAppContext.new('/', '/')
61
- proc = Proc.new {}
62
- servlet = eval(File.read(File.expand_path(File.join(File.dirname(__FILE__), '../lib/sipatra_app.rb'))), proc.binding, 'lib/sipatra_app.rb')
63
- ctxt.add_sip_servlet SipServletHolder::new(servlet)
64
63
  else
65
- ctxt = SipAppContext.new('/', '/')
64
+ ctxt = SipAppContext.new('/', '.')
66
65
  proc = Proc.new {}
67
- servlet = eval(File.read(@app_file), proc.binding, @app_file)
68
- ctxt.add_sip_servlet SipServletHolder::new(servlet)
66
+ begin
67
+ load @app_file
68
+ rescue Exception => e
69
+ raise "Sipatra Load Error : #{e.inspect}\n#{e.backtrace.join("\n")}"
70
+ end
71
+ ctxt.add_sip_servlet SipServletHolder.new(SipatraServlet.new)
69
72
  end
70
73
 
71
74
  ctxt
@@ -0,0 +1,30 @@
1
+ require 'sipatra'
2
+ require 'logger'
3
+
4
+ module Kipatra
5
+ class SipatraServlet < Kipatra::Cipango::SipServlet
6
+ def doRequest(req)
7
+ invoke req, :do_request
8
+ end
9
+
10
+ def doResponse(req)
11
+ invoke req, :do_response
12
+ end
13
+
14
+ private
15
+
16
+ def invoke(msg, method_name)
17
+ begin
18
+ log = Logger.new(STDOUT)
19
+ app = Sipatra::Application::new
20
+ session = msg.session
21
+ app.set_bindings session.servlet_context, session.servlet_context.getAttribute(Kipatra::Cipango::SipServlet::SIP_FACTORY), session, msg, log
22
+ app.send method_name
23
+ rescue => e
24
+ # TODO XXX
25
+ puts "SIPATRA EXCEPTION: #{e}\n#{e.backtrace.join("\n")}"
26
+
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,3 @@
1
+ module Kipatra
2
+ VERSION = "0.1.2"
3
+ end
metadata CHANGED
@@ -1,85 +1,104 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: kipatra
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
4
5
  prerelease:
5
- version: 0.1.1
6
6
  platform: ruby
7
- authors:
8
- - Dominique Broeglin
7
+ authors:
8
+ - Dominique Broeglin
9
+ - Alexandre Moutot
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
-
13
- date: 2012-07-13 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rspec
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 2.0.0
24
- type: :development
25
- version_requirements: *id001
13
+ date: 2012-07-24 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: sipatra
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 0.1.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: 0.1.0
31
+ - !ruby/object:Gem::Dependency
32
+ name: rspec
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: 2.0.0
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: 2.0.0
26
47
  description: Cipango powered Sipatra server
27
- email: dominique.broeglin@gmail.com
28
- executables:
29
- - kipatra
48
+ email:
49
+ - dominique.broeglin@gmail.com
50
+ - alexscottt@gmail.com
51
+ executables:
52
+ - kipatra
30
53
  extensions: []
31
-
32
- extra_rdoc_files:
33
- - README.md
34
- - LICENSES
35
- files:
36
- - lib/kipatra.rb
37
- - lib/kipatra/cipango.rb
38
- - lib/kipatra/cipango/cipango-dar-2.0.0.jar
39
- - lib/kipatra/cipango/cipango-deploy-2.0.0.jar
40
- - lib/kipatra/cipango/cipango-server-2.0.0.jar
41
- - lib/kipatra/cipango/jetty-continuation-7.2.2.v20101205.jar
42
- - lib/kipatra/cipango/jetty-http-7.2.2.v20101205.jar
43
- - lib/kipatra/cipango/jetty-io-7.2.2.v20101205.jar
44
- - lib/kipatra/cipango/jetty-security-7.2.2.v20101205.jar
45
- - lib/kipatra/cipango/jetty-server-7.2.2.v20101205.jar
46
- - lib/kipatra/cipango/jetty-servlet-7.2.2.v20101205.jar
47
- - lib/kipatra/cipango/jetty-util-7.2.2.v20101205.jar
48
- - lib/kipatra/cipango/jetty-webapp-7.2.2.v20101205.jar
49
- - lib/kipatra/cipango/jetty-xml-7.2.2.v20101205.jar
50
- - lib/kipatra/cipango/servlet-api-2.5.jar
51
- - lib/kipatra/cipango/sip-api-1.1.jar
52
- - lib/sipatra/log4j-1.2.17.jar
53
- - lib/sipatra_app.rb
54
- - bin/kipatra
55
- - LICENSES
56
- - README.md
54
+ extra_rdoc_files:
55
+ - README.md
56
+ - LICENSES
57
+ files:
58
+ - lib/kipatra.rb
59
+ - lib/kipatra/cipango.rb
60
+ - lib/kipatra/cipango/cipango-dar-2.0.0.jar
61
+ - lib/kipatra/cipango/cipango-deploy-2.0.0.jar
62
+ - lib/kipatra/cipango/cipango-server-2.0.0.jar
63
+ - lib/kipatra/cipango/jetty-continuation-7.2.2.v20101205.jar
64
+ - lib/kipatra/cipango/jetty-http-7.2.2.v20101205.jar
65
+ - lib/kipatra/cipango/jetty-io-7.2.2.v20101205.jar
66
+ - lib/kipatra/cipango/jetty-security-7.2.2.v20101205.jar
67
+ - lib/kipatra/cipango/jetty-server-7.2.2.v20101205.jar
68
+ - lib/kipatra/cipango/jetty-servlet-7.2.2.v20101205.jar
69
+ - lib/kipatra/cipango/jetty-util-7.2.2.v20101205.jar
70
+ - lib/kipatra/cipango/jetty-webapp-7.2.2.v20101205.jar
71
+ - lib/kipatra/cipango/jetty-xml-7.2.2.v20101205.jar
72
+ - lib/kipatra/cipango/servlet-api-2.5.jar
73
+ - lib/kipatra/cipango/sip-api-1.1.jar
74
+ - lib/kipatra/sipatra.rb
75
+ - lib/kipatra/version.rb
76
+ - bin/kipatra
77
+ - LICENSES
78
+ - README.md
57
79
  homepage: http://github.com/dbroeglin/kipatra
58
80
  licenses: []
59
-
60
81
  post_install_message:
61
- rdoc_options:
62
- - --charset=UTF-8
63
- require_paths:
64
- - lib
65
- required_ruby_version: !ruby/object:Gem::Requirement
82
+ rdoc_options:
83
+ - --charset=UTF-8
84
+ require_paths:
85
+ - lib
86
+ required_ruby_version: !ruby/object:Gem::Requirement
66
87
  none: false
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- version: "0"
71
- required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ! '>='
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
93
  none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: "0"
94
+ requirements:
95
+ - - ! '>='
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
77
98
  requirements: []
78
-
79
99
  rubyforge_project:
80
- rubygems_version: 1.8.15
100
+ rubygems_version: 1.8.24
81
101
  signing_key:
82
102
  specification_version: 3
83
103
  summary: Sipatra server powered by Cipango
84
104
  test_files: []
85
-
Binary file
data/lib/sipatra_app.rb DELETED
@@ -1,39 +0,0 @@
1
- require 'sipatra'
2
- require 'sipatra/log4j-1.2.17.jar'
3
- include_class "org.apache.log4j.Logger"
4
-
5
- if File.exists?("log4j.properties")
6
- include_class "org.apache.log4j.PropertyConfigurator"
7
- PropertyConfigurator.configure("log4j.properties")
8
- else
9
- include_class "org.apache.log4j.BasicConfigurator"
10
- BasicConfigurator.configure
11
- end
12
-
13
- begin
14
- load @app_file
15
- rescue Exception => e
16
- puts "Load Error : #{e.inspect}\n#{e.backtrace.join("\n")}"
17
- end
18
-
19
- class SipatraApp < Kipatra::Cipango::SipServlet
20
- def doRequest(req)
21
- invoke req, :do_request
22
- end
23
-
24
- def doResponse(req)
25
- invoke req, :do_response
26
- end
27
-
28
- private
29
-
30
- def invoke(msg, method_name)
31
- log = Logger.getLogger('Kipatra')
32
- app = Sipatra::Application::new
33
- session = msg.session
34
- app.set_bindings session.servlet_context, session.servlet_context.getAttribute(Kipatra::Cipango::SipServlet::SIP_FACTORY), session, msg, log
35
- app.send method_name
36
- end
37
- end
38
-
39
- SipatraApp.new