echi-converter 0.3.8 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -182,7 +182,7 @@
182
182
  * Bug fix(es):
183
183
  * Will now archive 0 length files and not stop the Windows Service - Bug#18888
184
184
 
185
- == 0.3.8 2008-07-18
185
+ == 0.3.8 2008-07-21
186
186
 
187
187
  * Major enhancement(s):
188
188
  * Minor enhancement(s):
@@ -200,4 +200,15 @@
200
200
  * #19490 with inverted fileversion and filenumber
201
201
  * #19493 issue with the extra byte read on binary files
202
202
  * Known issue(s):
203
- * #21295 - Migrations for Oracle and automated table generation not working
203
+ * #21295 - Migrations for Oracle and automated table generation not working
204
+
205
+ == 0.4.0 2008-07-22
206
+
207
+ * Major enhancement(s):
208
+ * #15294 Windows Service installs as an Auto-Start service
209
+ * Updated and tested with the latest releases of each of the available gems that ECHI-Converter relies upon
210
+ * Minor enhancement(s):
211
+ * Bug fix(es):
212
+ * #21295 - Migrations for Oracle and automated table generation not working
213
+ * Fixed a minor bug that files that dat files that did not exist were attempted to be processed creating a non-fatal error
214
+ * Known issue(s):
@@ -17,6 +17,8 @@ usage = "Usage:
17
17
  #If we are running on Windows lets load the libraries necessary to run a win32 service
18
18
  if RUBY_PLATFORM["-mswin32"]
19
19
  require 'win32/service'
20
+ #Preparing for supporting the latest library for supporting a Windows Service
21
+ #require 'win32/daemon'
20
22
  include Win32
21
23
  usage = usage +
22
24
  "
@@ -116,15 +118,14 @@ def launch_service run_type, project_name
116
118
  begin
117
119
  case run_type
118
120
  when "install"
119
- s = Service.new()
120
- s.create_service { |s|
121
- s.service_name = "ECHI-Converter"
122
- s.binary_path_name = service_exe.gsub(" ","\s")
123
- #s.service_type = Service::AUTO_START
124
- s.display_name = "ECHI-Converter"
125
- s.service_description = "ECHI-Converter Service for " + project_name
126
- }
127
- s.close
121
+ Service.create('ECHI-Converter', nil,
122
+ :service_type => Service::WIN32_OWN_PROCESS,
123
+ :binary_path_name => service_exe.gsub(" ","\s"),
124
+ :start_type => Service::AUTO_START,
125
+ :error_control => Service::ERROR_NORMAL,
126
+ :display_name => 'ECHI-Converter',
127
+ :description => 'ECHI-Converter Service for ' + project_name
128
+ )
128
129
  service_status = "Service successfully created."
129
130
  when "start"
130
131
  service_status = Service.start("ECHI-Converter")
@@ -5,7 +5,19 @@ class CreateEchiRecords < ActiveRecord::Migration
5
5
  @@echi_schema["echi_records"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -5,7 +5,19 @@ class CreateEchiAgents < ActiveRecord::Migration
5
5
  @@echi_schema["echi_agents"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -5,7 +5,19 @@ class CreateEchiReasons < ActiveRecord::Migration
5
5
  @@echi_schema["echi_reasons"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -5,7 +5,19 @@ class CreateEchiCwcs < ActiveRecord::Migration
5
5
  @@echi_schema["echi_cwcs"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -5,7 +5,19 @@ class CreateEchiVdns < ActiveRecord::Migration
5
5
  @@echi_schema["echi_vdns"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -5,7 +5,19 @@ class CreateEchiAcds < ActiveRecord::Migration
5
5
  @@echi_schema["echi_acds"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -5,7 +5,19 @@ class CreateEchiSplits < ActiveRecord::Migration
5
5
  @@echi_schema["echi_splits"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -5,7 +5,19 @@ class CreateEchiTrunks < ActiveRecord::Migration
5
5
  @@echi_schema["echi_trunks"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -5,7 +5,19 @@ class CreateEchiVectors < ActiveRecord::Migration
5
5
  @@echi_schema["echi_vectors"].each do | field |
6
6
  case field["type"]
7
7
  when 'int'
8
- t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
8
+ if ActiveRecord::Base.connection.adapter_name == 'Oracle'
9
+ case field["length"]
10
+ when 4
11
+ oracle_precision = 10
12
+ when 2
13
+ oracle_precision = 5
14
+ when 1
15
+ oracle_precision = 3
16
+ end
17
+ t.column field["name"], :integer, :limit => oracle_precision, :precision => oracle_precision, :scale => 0
18
+ else
19
+ t.column field["name"], :integer, :limit => field["length"], :precision => field["length"], :scale => 0
20
+ end
9
21
  when 'str'
10
22
  t.column field["name"], :string, :limit => field["length"]
11
23
  when 'datetime'
@@ -382,35 +382,36 @@ module EchiConverter
382
382
  #Move the file to the archive location
383
383
  def archive_file file, record_cnt
384
384
  @log.debug "archive_file method"
385
- case file["name"]
386
- when "echi_acds"
387
- filename_elements = $config["echi_acd_dat"].split(".")
388
- when "echi_agents"
389
- filename_elements = $config["echi_agent_dat"].split(".")
390
- when "echi_reasons"
391
- filename_elements = $config["echi_aux_rsn_dat"].split(".")
392
- when "echi_cwcs"
393
- filename_elements = $config["echi_cwc_dat"].split(".")
394
- when "echi_splits"
395
- filename_elements = $config["echi_split_dat"].split(".")
396
- when "echi_vdns"
397
- filename_elements = $config["echi_vdn_dat"].split(".")
398
- when "echi_trunks"
399
- filename_elements = $config["echi_trunk_group_dat"].split(".")
400
- when "echi_vectors"
401
- filename_elements = $config["echi_vector_dat"].split(".")
402
- end
403
- new_filename = filename_elements[0] + "_" + UUID.timestamp_create.to_s + "." + filename_elements[1]
404
- target_file = @processeddirectory + "/" + new_filename
405
- begin
406
- FileUtils.mv(file["filename"], target_file)
407
- if $config["echi_process_log"] == "Y"
408
- log_processed_file nil, { "name" => new_filename, "cnt" => record_cnt }
385
+ if File.exists?(file["filename"])
386
+ case file["name"]
387
+ when "echi_acds"
388
+ filename_elements = $config["echi_acd_dat"].split(".")
389
+ when "echi_agents"
390
+ filename_elements = $config["echi_agent_dat"].split(".")
391
+ when "echi_reasons"
392
+ filename_elements = $config["echi_aux_rsn_dat"].split(".")
393
+ when "echi_cwcs"
394
+ filename_elements = $config["echi_cwc_dat"].split(".")
395
+ when "echi_splits"
396
+ filename_elements = $config["echi_split_dat"].split(".")
397
+ when "echi_vdns"
398
+ filename_elements = $config["echi_vdn_dat"].split(".")
399
+ when "echi_trunks"
400
+ filename_elements = $config["echi_trunk_group_dat"].split(".")
401
+ when "echi_vectors"
402
+ filename_elements = $config["echi_vector_dat"].split(".")
403
+ end
404
+ new_filename = filename_elements[0] + "_" + UUID.timestamp_create.to_s + "." + filename_elements[1]
405
+ target_file = @processeddirectory + "/" + new_filename
406
+ begin
407
+ FileUtils.mv(file["filename"], target_file)
408
+ if $config["echi_process_log"] == "Y"
409
+ log_processed_file nil, { "name" => new_filename, "cnt" => record_cnt }
410
+ end
411
+ rescue => err
412
+ @log.info "Unable to move processed file - " + err
409
413
  end
410
- rescue => err
411
- @log.info "Unable to move processed file - " + err
412
414
  end
413
-
414
415
  end
415
416
 
416
417
  #Process the appropriate table name
@@ -1,8 +1,8 @@
1
1
  module EchiConverter #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
- MINOR = 3
5
- TINY = 8
4
+ MINOR = 4
5
+ TINY = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'yaml'
3
- require 'win32/service'
3
+ require 'win32/daemon'
4
4
  include Win32
5
5
 
6
6
  class EchiDaemon < Daemon
@@ -12,6 +12,7 @@ class EchiDaemon < Daemon
12
12
  def service_stop
13
13
  @log.info "ECHI-Converter service stopped"
14
14
  @log.close
15
+ exit!
15
16
  end
16
17
 
17
18
  def service_pause
@@ -99,5 +100,4 @@ class EchiDaemon < Daemon
99
100
  end
100
101
  end
101
102
 
102
- d = EchiDaemon.new
103
- d.mainloop
103
+ EchiDaemon.mainloop
@@ -33,7 +33,7 @@
33
33
  <h1>ECHI Converter</h1>
34
34
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/echi-converter"; return false'>
35
35
  <p>Get Version</p>
36
- <a href="http://rubyforge.org/projects/echi-converter" class="numbers">0.3.8</a>
36
+ <a href="http://rubyforge.org/projects/echi-converter" class="numbers">0.4.0</a>
37
37
  </div>
38
38
  <h1>&#x2192; &#8216;echi-converter&#8217;</h1>
39
39
 
@@ -58,13 +58,14 @@
58
58
 
59
59
  <ol>
60
60
  <li>Support of ActiveRecord (means you may use Oracle, MySQL, MS-SQL, Postgres, <span class="caps">DB2</span>, ODBC, etc)</li>
61
- <li>Generate your schema via ActiveRecord Migrations</li>
61
+ <li>Generate your schema via ActiveRecord Migrations automatically</li>
62
62
  <li>Fetch Binary or <span class="caps">ASCII CSV</span> files from the Avaya <span class="caps">CMS</span> platform via <span class="caps">FTP</span></li>
63
63
  <li>Insert the records into the defined database table using database transactions, via ActiveRecord, on a per file basis to support recovery on failure</li>
64
64
  <li>Change schema structure via <span class="caps">YML</span> configuration file to accommodate various releases of the <span class="caps">ECHI</span> format</li>
65
- <li>Supports inserting data from the various &#8217;.dat&#8217; files provided by the Avaya <span class="caps">CMS</span></li>
65
+ <li>Supports inserting data from the various &#8217;.dat&#8217; files provided by the Avaya <span class="caps">CMS</span> into associated tables</li>
66
66
  <li>Runs as a daemon (via fork) on Posix and a service on Windows</li>
67
67
  <li>Has a watchdog process on Posix or you may set a service watch on Windows</li>
68
+ <li>Support for <span class="caps">UTF8</span> encoding</li>
68
69
  <li>Allows for multiple <span class="caps">FTP</span> sessions to be used for greater performance (via <a href="http://en.wikipedia.org/wiki/Green_threads">green threads</a>)</li>
69
70
  </ol>
70
71
 
@@ -100,20 +101,16 @@
100
101
 
101
102
  <ol>
102
103
  <li><a href="http://www.ruby-lang.org/">Ruby v1.8.6+</a></li>
103
- <li><a href="http://www.rubygems.org/">Rubygems v1.0.1+</a> </li>
104
- <li><a href="http://activerecord.rubyforge.org/">ActiveRecord v1.15.3+</a></li>
105
- <li><a href="http://activesupport.rubyforge.org/">ActiveSupport v1.4.2+</a></li>
106
- <li><a href="http://daemons.rubyforge.org/">Daemons v1.0.7+</a></li>
107
- <li><a href="http://fastercsv.rubyforge.org/">FasterCSV v1.2.0+</a></li>
108
- <li><a href="http://rake.rubyforge.org/">Rake v0.7.3+</a></li>
109
- <li><a href="http://sporkmonger.com/projects/uuidtools/">UUIDTools v1.0.1+</a></li>
110
- <li><a href="http://win32utils.rubyforge.org/">Win32-service v.0.5.x &#8211; <strong><span class="caps">ONLY</span></strong> -</a> (Manual install for Windows only)
111
- <ol>
112
- <li>A release will come out to support v0.6.x in the future, as that version of Win32-service is not backward compatible</li>
113
- </ol>
114
- </li>
115
- <li><a href="http://rubyforge.org/projects/seattlerb/">Hoe v1.2.2+</a></li>
116
- <li>Avaya <span class="caps">CMS ECHI</span> Release 12+ enabled and configured to send to an <span class="caps">FTP</span> server</li>
104
+ <li><a href="http://www.rubygems.org/">Rubygems v1.2+</a> </li>
105
+ <li><a href="http://activerecord.rubyforge.org/">ActiveRecord v2.1+</a></li>
106
+ <li><a href="http://activesupport.rubyforge.org/">ActiveSupport v2.1+</a></li>
107
+ <li><a href="http://daemons.rubyforge.org/">Daemons v1.0.10+</a> (for Linux only)</li>
108
+ <li><a href="http://fastercsv.rubyforge.org/">FasterCSV v1.2.3+</a></li>
109
+ <li><a href="http://rake.rubyforge.org/">Rake v0.8.1+</a></li>
110
+ <li><a href="http://sporkmonger.com/projects/uuidtools/">UUIDTools v1.0.3+</a></li>
111
+ <li><a href="http://win32utils.rubyforge.org/">Win32-service v.0.6.1+</a> (for Windows only)</li>
112
+ <li><a href="http://rubyforge.org/projects/seattlerb/">Hoe v1.7+</a></li>
113
+ <li><a href="http://www.avaya.com/gcm/master-usa/en-us/products/offers/call_management_system_r14.htm">Avaya <span class="caps">CMS</span></a> ECHI Release 12+ enabled and configured to send to an <span class="caps">FTP</span> server</li>
117
114
  </ol>
118
115
 
119
116
 
@@ -186,7 +183,7 @@
186
183
  </ol>
187
184
 
188
185
 
189
- <p>For Windows:</p>
186
+ <p>For MS-Windows:</p>
190
187
 
191
188
 
192
189
  <ol>
@@ -242,7 +239,7 @@
242
239
  <li><span class="caps">POSIX</span></li>
243
240
  <li>Windows <span class="caps">XP SP2</span></li>
244
241
  <li>Windows 2000</li>
245
- <li>Windows 2003.</li>
242
+ <li>Windows 2003</li>
246
243
  </ol>
247
244
 
248
245
 
@@ -255,11 +252,7 @@
255
252
  <li><span class="caps">DB2</span></li>
256
253
  <li>Sqlite3</li>
257
254
  <li>Postgres</li>
258
- </ol>
259
-
260
-
261
- <ol>
262
- <li>Oracle (Currently automated table generation with migrations not supported. One must create their own schema following the Avaya documentation, and then the <span class="caps">ECHI</span>-Converter will run thereafter. Future Oracle Migrations support is planned. A further description and work around example may be found <a href="http://rubyforge.org/tracker/index.php?func=detail&#38;aid=21295&#38;group_id=4110&#38;atid=15802">here</a>.)</li>
255
+ <li>Oracle</li>
263
256
  </ol>
264
257
 
265
258
 
@@ -331,7 +324,7 @@
331
324
  <li>Adhearsion &#8211; is an open-source, unconventional voice framework that ties technologies together neatly, link <a href="http://www.adhearsion.com">here.</a></li>
332
325
  </ol>
333
326
  <p class="coda">
334
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 21st July 2008<br>
327
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 22nd July 2008<br>
335
328
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
336
329
  </p>
337
330
  </div>
@@ -17,13 +17,14 @@ h2. Features
17
17
  The utility provides the following capabilities:
18
18
 
19
19
  # Support of ActiveRecord (means you may use Oracle, MySQL, MS-SQL, Postgres, DB2, ODBC, etc)
20
- # Generate your schema via ActiveRecord Migrations
20
+ # Generate your schema via ActiveRecord Migrations automatically
21
21
  # Fetch Binary or ASCII CSV files from the Avaya CMS platform via FTP
22
22
  # Insert the records into the defined database table using database transactions, via ActiveRecord, on a per file basis to support recovery on failure
23
23
  # Change schema structure via YML configuration file to accommodate various releases of the ECHI format
24
- # Supports inserting data from the various '.dat' files provided by the Avaya CMS
24
+ # Supports inserting data from the various '.dat' files provided by the Avaya CMS into associated tables
25
25
  # Runs as a daemon (via fork) on Posix and a service on Windows
26
26
  # Has a watchdog process on Posix or you may set a service watch on Windows
27
+ # Support for UTF8 encoding
27
28
  # Allows for multiple FTP sessions to be used for greater performance (via "green threads":http://en.wikipedia.org/wiki/Green_threads)
28
29
 
29
30
  # Table names:
@@ -46,18 +47,16 @@ h2. What ECHI-Converter is not
46
47
  h2. Requirements
47
48
 
48
49
  # "Ruby v1.8.6+":http://www.ruby-lang.org/
49
- # "Rubygems v1.0.1+":http://www.rubygems.org/
50
- # "ActiveRecord v1.15.3+":http://activerecord.rubyforge.org/
51
- # "ActiveSupport v1.4.2+":http://activesupport.rubyforge.org/
52
- # "Daemons v1.0.7+":http://daemons.rubyforge.org/
53
- # "FasterCSV v1.2.0+":http://fastercsv.rubyforge.org/
54
- # "Rake v0.7.3+":http://rake.rubyforge.org/
55
- # "UUIDTools v1.0.1+":http://sporkmonger.com/projects/uuidtools/
56
- # "Win32-service v.0.5.x - *ONLY* - ":http://win32utils.rubyforge.org/ (Manual install for Windows only)
57
- ## A release will come out to support v0.6.x in the future, as that version of Win32-service is not backward compatible
58
- # "Hoe v1.2.2+":http://rubyforge.org/projects/seattlerb/
59
- # Avaya CMS ECHI Release 12+ enabled and configured to send to an FTP server
60
-
50
+ # "Rubygems v1.2+":http://www.rubygems.org/
51
+ # "ActiveRecord v2.1+":http://activerecord.rubyforge.org/
52
+ # "ActiveSupport v2.1+":http://activesupport.rubyforge.org/
53
+ # "Daemons v1.0.10+":http://daemons.rubyforge.org/ (for Linux only)
54
+ # "FasterCSV v1.2.3+":http://fastercsv.rubyforge.org/
55
+ # "Rake v0.8.1+":http://rake.rubyforge.org/
56
+ # "UUIDTools v1.0.3+":http://sporkmonger.com/projects/uuidtools/
57
+ # "Win32-service v.0.6.1+":http://win32utils.rubyforge.org/ (for Windows only)
58
+ # "Hoe v1.7+":http://rubyforge.org/projects/seattlerb/
59
+ # "Avaya CMS":http://www.avaya.com/gcm/master-usa/en-us/products/offers/call_management_system_r14.htm ECHI Release 12+ enabled and configured to send to an FTP server
61
60
 
62
61
  h2. Installing
63
62
 
@@ -102,7 +101,7 @@ For POSIX:
102
101
  # echi-converter restart myproject - Restart the ECHI converter
103
102
  # echi-converter zap myproject - If there has been an unexpected close and the system still thinks the converter is running, clean up the pid files
104
103
 
105
- For Windows:
104
+ For MS-Windows:
106
105
 
107
106
  # echi-converter install myproject - install the service (must specify complete path such as c:\path\to\my\project - if the directory name or path has any spaces, please enclose the "myproject" in double quotes )
108
107
  # echi-converter start - start the service
@@ -138,7 +137,7 @@ h4. Operating Systems
138
137
  # POSIX
139
138
  # Windows XP SP2
140
139
  # Windows 2000
141
- # Windows 2003.
140
+ # Windows 2003
142
141
 
143
142
  h4. Databases
144
143
 
@@ -147,8 +146,7 @@ h4. Databases
147
146
  # DB2
148
147
  # Sqlite3
149
148
  # Postgres
150
-
151
- # Oracle (Currently automated table generation with migrations not supported. One must create their own schema following the Avaya documentation, and then the ECHI-Converter will run thereafter. Future Oracle Migrations support is planned. A further description and work around example may be found "here":http://rubyforge.org/tracker/index.php?func=detail&aid=21295&group_id=4110&atid=15802.)
149
+ # Oracle
152
150
 
153
151
  h4. FTP Servers
154
152
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: echi-converter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.8
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Goecke
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-07-21 00:00:00 -07:00
12
+ date: 2008-07-22 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency