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 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