freec 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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.0'
12
+ s.version = '0.2.1'
24
13
  s.author = "Jan Kubr"
25
- s.email = "hi@jankubr.com"
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 = "Layer between your Ruby voice app and Freeswitch."
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
- at_exit do
49
- ROOT = File.expand_path(File.dirname($0))
50
- ENVIRONMENT = ARGV[0] == '-d' ? 'production' : 'development'
51
- create_freec_app_log_dir
52
- load_freec_app_config
53
- if ARGV[0] == '-d'
54
- puts 'Daemonizing...'
55
- daemonize(freec_app_log_file)
56
- end
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
- server = Listener.new('0.0.0.0', @@config['listen_port'].to_i, freec_app_class_name)
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
- def initialize(host, port, application_class_name) #:nodoc:
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
- super(port, host, (1.0/0.0))
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
@@ -5,7 +5,7 @@ describe Freec do
5
5
  io = stub(:io)
6
6
  log = FreecLogger.new(STDOUT)
7
7
  log.level = Logger::FATAL
8
- @freec = Freec.new(io, log)
8
+ @freec = Freec.new(io, log, {})
9
9
  end
10
10
 
11
11
  describe "parses body-less event" do
@@ -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
- @freec = Freec.new(@io, log)
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
@@ -17,7 +17,7 @@ describe Freec do
17
17
  io = stub(:io)
18
18
  log = FreecLogger.new(STDOUT)
19
19
  log.level = Logger::FATAL
20
- @freec = Freec.new(io, log)
20
+ @freec = Freec.new(io, log, {})
21
21
  end
22
22
 
23
23
  describe "executes Freeswitch applications" 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
- version: 0.2.0
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: 2009-10-26 00:00:00 +01:00
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
- type: :development
28
- version_requirement:
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
- version:
35
- description: Layer between your Ruby voice app and Freeswitch.
36
- email: hi@jankubr.com
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
- - Manifest
59
- - Rakefile
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
- version: "1.2"
93
- version:
94
- requirements: []
95
-
77
+ segments:
78
+ - 0
79
+ version: "0"
80
+ requirements:
81
+ - daemons
96
82
  rubyforge_project: freec
97
- rubygems_version: 1.3.5
83
+ rubygems_version: 1.3.6
98
84
  signing_key:
99
85
  specification_version: 3
100
- summary: Layer between your Ruby voice app and Freeswitch.
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