freec 0.2.0 → 0.2.1
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/Rakefile +3 -14
- data/lib/freec.rb +12 -13
- data/lib/freec_base.rb +3 -2
- data/lib/listener.rb +9 -3
- data/spec/event_parser_spec.rb +1 -1
- data/spec/freec_base_spec.rb +13 -3
- data/spec/freeswitch_applications_spec.rb +1 -1
- metadata +29 -43
- data/Manifest +0 -17
- data/freec.gemspec +0 -36
data/Rakefile
CHANGED
@@ -1,16 +1,5 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
|
-
require 'echoe'
|
4
|
-
|
5
|
-
Echoe.new('freec', '0.2.0') do |p|
|
6
|
-
p.description = "Layer between your Ruby voice app and Freeswitch."
|
7
|
-
p.url = "http://github.com/jankubr/freec"
|
8
|
-
p.author = "Jan Kubr"
|
9
|
-
p.email = "hi@jankubr.com"
|
10
|
-
p.ignore_pattern = []
|
11
|
-
p.runtime_dependencies = ['daemons']
|
12
|
-
p.development_dependencies = ['rspec']
|
13
|
-
end
|
14
3
|
|
15
4
|
desc 'Clean up files.'
|
16
5
|
task :clean do |t|
|
@@ -20,12 +9,12 @@ end
|
|
20
9
|
|
21
10
|
spec = Gem::Specification.new do |s|
|
22
11
|
s.name = "freec"
|
23
|
-
s.version = '0.2.
|
12
|
+
s.version = '0.2.1'
|
24
13
|
s.author = "Jan Kubr"
|
25
|
-
s.email = "
|
14
|
+
s.email = "mail@jankubr.com"
|
26
15
|
s.homepage = "http://github.com/jankubr/freec"
|
27
16
|
s.platform = Gem::Platform::RUBY
|
28
|
-
s.summary = "
|
17
|
+
s.summary = "The layer between your Ruby voice app and FreeSWITCH."
|
29
18
|
s.files = FileList["README*",
|
30
19
|
"Rakefile",
|
31
20
|
"{lib,spec}/**/*"].to_a
|
data/lib/freec.rb
CHANGED
@@ -4,6 +4,7 @@ require "freec_base"
|
|
4
4
|
require 'listener'
|
5
5
|
|
6
6
|
require 'fileutils'
|
7
|
+
require 'yaml'
|
7
8
|
require 'daemons/daemonize'
|
8
9
|
include Daemonize
|
9
10
|
|
@@ -37,7 +38,6 @@ def load_freec_app_config
|
|
37
38
|
else
|
38
39
|
@@config = {}
|
39
40
|
end
|
40
|
-
@@config['listen_port'] ||= '8084'
|
41
41
|
end
|
42
42
|
|
43
43
|
def freec_app_configuration_file
|
@@ -45,21 +45,20 @@ def freec_app_configuration_file
|
|
45
45
|
end
|
46
46
|
|
47
47
|
unless defined?(TEST)
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
open(freec_app_pid_file, "w") {|f| f.write(Process.pid) }
|
48
|
+
ROOT = File.expand_path(File.dirname($0))
|
49
|
+
ENVIRONMENT = ARGV[0] == '-d' ? 'production' : 'development'
|
50
|
+
create_freec_app_log_dir
|
51
|
+
load_freec_app_config
|
52
|
+
if ARGV[0] == '-d'
|
53
|
+
puts 'Daemonizing...'
|
54
|
+
daemonize(freec_app_log_file)
|
55
|
+
end
|
56
|
+
open(freec_app_pid_file, "w") {|f| f.write(Process.pid) }
|
58
57
|
|
59
|
-
|
58
|
+
at_exit do
|
59
|
+
server = Listener.new(freec_app_class_name, @@config)
|
60
60
|
server.audit = true
|
61
61
|
server.start
|
62
|
-
puts "Listening on port #{@@config['listen_port']}"
|
63
62
|
loop do
|
64
63
|
break if server.stopped?
|
65
64
|
sleep(1)
|
data/lib/freec_base.rb
CHANGED
@@ -10,13 +10,14 @@ class Freec
|
|
10
10
|
include FreeswitchApplications
|
11
11
|
include CallVariables
|
12
12
|
|
13
|
-
attr_reader :call_vars, :event_body, :log
|
13
|
+
attr_reader :call_vars, :event_body, :log, :config
|
14
14
|
|
15
|
-
def initialize(io, log) #:nodoc:
|
15
|
+
def initialize(io, log, config) #:nodoc:
|
16
16
|
@call_vars ||= {}
|
17
17
|
@last_app_executed = 'initial_step'
|
18
18
|
@io = io
|
19
19
|
@log = log
|
20
|
+
@config = config
|
20
21
|
end
|
21
22
|
|
22
23
|
def handle_call #:nodoc:
|
data/lib/listener.rb
CHANGED
@@ -2,17 +2,23 @@ require 'gserver'
|
|
2
2
|
require 'freec_logger'
|
3
3
|
|
4
4
|
class Listener < GServer
|
5
|
-
|
5
|
+
DEFAULT_PORT = '8084'
|
6
|
+
DEFAULT_IP = '127.0.0.1'
|
7
|
+
|
8
|
+
def initialize(application_class_name, config) #:nodoc:
|
6
9
|
@application_class_name = application_class_name
|
7
10
|
@logger = FreecLogger.new(dev_or_test? ? STDOUT : @@log_file)
|
8
11
|
@logger.level = Logger::INFO unless dev_or_test?
|
9
|
-
|
12
|
+
@config = config
|
13
|
+
host = @config['listen_ip'] || DEFAULT_IP
|
14
|
+
port = @config['listen_port'] || DEFAULT_PORT
|
15
|
+
super(port.to_i, host, (1.0/0.0))
|
10
16
|
self.audit = true
|
11
17
|
connect_to_database
|
12
18
|
end
|
13
19
|
|
14
20
|
def serve(io) #:nodoc:
|
15
|
-
app = Kernel.const_get(@application_class_name).new(io, @logger)
|
21
|
+
app = Kernel.const_get(@application_class_name).new(io, @logger, @config)
|
16
22
|
app.handle_call
|
17
23
|
rescue StandardError => e
|
18
24
|
@logger.error e.message
|
data/spec/event_parser_spec.rb
CHANGED
data/spec/freec_base_spec.rb
CHANGED
@@ -16,9 +16,19 @@ describe Freec do
|
|
16
16
|
|
17
17
|
before do
|
18
18
|
@io = stub(:io)
|
19
|
-
log = FreecLogger.new(STDOUT)
|
20
|
-
log.level = Logger::FATAL
|
21
|
-
@
|
19
|
+
@log = FreecLogger.new(STDOUT)
|
20
|
+
@log.level = Logger::FATAL
|
21
|
+
@config = {:config1 => 'value'}
|
22
|
+
@freec = Freec.new(@io, @log, @config)
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "initialization" do
|
26
|
+
|
27
|
+
it "makes log and config available" do
|
28
|
+
@freec.log.should == @log
|
29
|
+
@freec.config.should == @config
|
30
|
+
end
|
31
|
+
|
22
32
|
end
|
23
33
|
|
24
34
|
describe "call initialization" do
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 2
|
8
|
+
- 1
|
9
|
+
version: 0.2.1
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Jan Kubr
|
@@ -9,62 +14,45 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date:
|
17
|
+
date: 2010-04-02 00:00:00 +02:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
16
|
-
name: daemons
|
17
|
-
type: :runtime
|
18
|
-
version_requirement:
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: "0"
|
24
|
-
version:
|
25
20
|
- !ruby/object:Gem::Dependency
|
26
21
|
name: rspec
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
30
24
|
requirements:
|
31
25
|
- - ">="
|
32
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
33
29
|
version: "0"
|
34
|
-
|
35
|
-
|
36
|
-
|
30
|
+
type: :development
|
31
|
+
version_requirements: *id001
|
32
|
+
description:
|
33
|
+
email: mail@jankubr.com
|
37
34
|
executables: []
|
38
35
|
|
39
36
|
extensions: []
|
40
37
|
|
41
38
|
extra_rdoc_files:
|
42
|
-
- lib/call_variables.rb
|
43
|
-
- lib/freec.rb
|
44
|
-
- lib/listener.rb
|
45
|
-
- lib/freec_base.rb
|
46
|
-
- lib/freec_logger.rb
|
47
|
-
- lib/freeswitch_applications.rb
|
48
|
-
- lib/tools.rb
|
49
39
|
- README.rdoc
|
50
40
|
files:
|
41
|
+
- README.rdoc
|
42
|
+
- Rakefile
|
51
43
|
- lib/call_variables.rb
|
52
44
|
- lib/freec.rb
|
53
|
-
- lib/listener.rb
|
54
45
|
- lib/freec_base.rb
|
55
46
|
- lib/freec_logger.rb
|
56
47
|
- lib/freeswitch_applications.rb
|
48
|
+
- lib/listener.rb
|
57
49
|
- lib/tools.rb
|
58
|
-
-
|
59
|
-
-
|
60
|
-
- README.rdoc
|
50
|
+
- spec/data/event.rb
|
51
|
+
- spec/data/event_with_body.rb
|
61
52
|
- spec/event_parser_spec.rb
|
62
53
|
- spec/freec_base_spec.rb
|
63
54
|
- spec/freeswitch_applications_spec.rb
|
64
55
|
- spec/spec_helper.rb
|
65
|
-
- spec/data/event.rb
|
66
|
-
- spec/data/event_with_body.rb
|
67
|
-
- freec.gemspec
|
68
56
|
has_rdoc: true
|
69
57
|
homepage: http://github.com/jankubr/freec
|
70
58
|
licenses: []
|
@@ -73,30 +61,28 @@ post_install_message:
|
|
73
61
|
rdoc_options:
|
74
62
|
- --line-numbers
|
75
63
|
- --inline-source
|
76
|
-
- --title
|
77
|
-
- Freec
|
78
|
-
- --main
|
79
|
-
- README.rdoc
|
80
64
|
require_paths:
|
81
65
|
- lib
|
82
66
|
required_ruby_version: !ruby/object:Gem::Requirement
|
83
67
|
requirements:
|
84
68
|
- - ">="
|
85
69
|
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
86
72
|
version: "0"
|
87
|
-
version:
|
88
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
74
|
requirements:
|
90
75
|
- - ">="
|
91
76
|
- !ruby/object:Gem::Version
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
version: "0"
|
80
|
+
requirements:
|
81
|
+
- daemons
|
96
82
|
rubyforge_project: freec
|
97
|
-
rubygems_version: 1.3.
|
83
|
+
rubygems_version: 1.3.6
|
98
84
|
signing_key:
|
99
85
|
specification_version: 3
|
100
|
-
summary:
|
86
|
+
summary: The layer between your Ruby voice app and FreeSWITCH.
|
101
87
|
test_files: []
|
102
88
|
|
data/Manifest
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
lib/call_variables.rb
|
2
|
-
lib/freec.rb
|
3
|
-
lib/listener.rb
|
4
|
-
lib/freec_base.rb
|
5
|
-
lib/freec_logger.rb
|
6
|
-
lib/freeswitch_applications.rb
|
7
|
-
lib/tools.rb
|
8
|
-
Manifest
|
9
|
-
Rakefile
|
10
|
-
README.rdoc
|
11
|
-
spec/event_parser_spec.rb
|
12
|
-
spec/freec_base_spec.rb
|
13
|
-
spec/freeswitch_applications_spec.rb
|
14
|
-
spec/spec_helper.rb
|
15
|
-
spec/data/event.rb
|
16
|
-
spec/data/event_with_body.rb
|
17
|
-
|
data/freec.gemspec
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
|
3
|
-
Gem::Specification.new do |s|
|
4
|
-
s.name = %q{freec}
|
5
|
-
s.version = "0.2.0"
|
6
|
-
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["Jan Kubr"]
|
9
|
-
s.date = %q{2009-10-26}
|
10
|
-
s.description = %q{Layer between your Ruby voice app and Freeswitch.}
|
11
|
-
s.email = %q{hi@jankubr.com}
|
12
|
-
s.extra_rdoc_files = ["lib/call_variables.rb", "lib/freec.rb", "lib/listener.rb", "lib/freec_base.rb", "lib/freec_logger.rb", "lib/freeswitch_applications.rb", "lib/tools.rb", "README.rdoc"]
|
13
|
-
s.files = ["lib/call_variables.rb", "lib/freec.rb", "lib/listener.rb", "lib/freec_base.rb", "lib/freec_logger.rb", "lib/freeswitch_applications.rb", "lib/tools.rb", "Manifest", "Rakefile", "README.rdoc", "spec/event_parser_spec.rb", "spec/freec_base_spec.rb", "spec/freeswitch_applications_spec.rb", "spec/spec_helper.rb", "spec/data/event.rb", "spec/data/event_with_body.rb", "freec.gemspec"]
|
14
|
-
s.homepage = %q{http://github.com/jankubr/freec}
|
15
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Freec", "--main", "README.rdoc"]
|
16
|
-
s.require_paths = ["lib"]
|
17
|
-
s.rubyforge_project = %q{freec}
|
18
|
-
s.rubygems_version = %q{1.3.5}
|
19
|
-
s.summary = %q{Layer between your Ruby voice app and Freeswitch.}
|
20
|
-
|
21
|
-
if s.respond_to? :specification_version then
|
22
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
23
|
-
s.specification_version = 3
|
24
|
-
|
25
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
26
|
-
s.add_runtime_dependency(%q<daemons>, [">= 0"])
|
27
|
-
s.add_development_dependency(%q<rspec>, [">= 0"])
|
28
|
-
else
|
29
|
-
s.add_dependency(%q<daemons>, [">= 0"])
|
30
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
31
|
-
end
|
32
|
-
else
|
33
|
-
s.add_dependency(%q<daemons>, [">= 0"])
|
34
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
35
|
-
end
|
36
|
-
end
|