echi-converter 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -24,5 +24,19 @@
24
24
  * Added support of processing 'chr' files only (FR#12996)
25
25
  * Added a configuration element to turn logging of file processing to a table on/off
26
26
  * Removed the net/ssh library include, as not using sftp for now
27
+ * Added dependencies for other gems in the Rakefile for auto-install from Rubyforge
27
28
  * Bug fix(es):
28
- * Added proper error handling when ftp user does not have delete rights
29
+ * Added proper error handling when ftp user does not have delete rights
30
+
31
+ == 0.0.4 2007-08-16
32
+
33
+ * Major enhancement(s):
34
+ * Removed the 'echi-conveterter-create' bin file and replaced with 'echi-converter' to have one uniform executable for installation and operation (FR#12784)
35
+ * Minor enhancement(s):
36
+ * Added configuration file config/install_files.yml for the new install method
37
+ * Added support for a monitor process using the Daemons library
38
+ * Reworked the way you create, run, start and stop a project that has been created, see the README.txt for details as well as the website
39
+ * Added the ability to set specific table names when using a specific PCO application
40
+ * Added the ability to upgrade the files when a new gem is installed
41
+ * Bug fix(es):
42
+ * Bug #13062 - Corrected log table population
data/Manifest.txt CHANGED
@@ -3,7 +3,6 @@ License.txt
3
3
  Manifest.txt
4
4
  README.txt
5
5
  Rakefile
6
- echi-converter
7
6
  lib/main.rb
8
7
  lib/echi-converter/version.rb
9
8
  lib/database.rb
@@ -22,9 +21,11 @@ config/application.yml
22
21
  config/database.yml
23
22
  config/extended_version12.yml
24
23
  config/extended_version13.yml
24
+ config/install_files.yml
25
25
  db/migrate/001_create_echi_records.rb
26
26
  db/migrate/002_create_echi_logs.rb
27
- bin/echi-converter-create
27
+ bin/echi-converter
28
28
  examples/extended_version12/chr0003
29
29
  examples/extended_version12/chr0003.txt
30
+ examples/schemas/oracle_echi.sql
30
31
 
data/README.txt CHANGED
@@ -10,24 +10,17 @@ http://support.avaya.com/elmodocs2/cms/R12/ECHI.pdf
10
10
 
11
11
  --- command ---
12
12
 
13
- Usage: ruby echi-converter-daemon.rb <command> <options> -- <application options>
13
+ Usage:
14
14
 
15
- * where <command> is one of:
16
- start start an instance of the application
17
- stop stop all instances of the application
18
- restart stop all instances and restart them afterwards
19
- run start the application and stay on top
20
- zap set the application to a stopped state
15
+ # echi-converter create myproject - create the local project to run the ECHI converter from
16
+ # echi-converter upgrade myproject - location of project to upgrade after a new gem is installed
21
17
 
22
- * and where <options> may contain several of the following:
23
-
24
- -t, --ontop Stay on top (does not daemonize)
25
- -f, --force Force operation
26
-
27
- Common options:
28
- -h, --help Show this message
29
- --version Show version
18
+ # echi-converter run myproject - Run the ECHI converter interactively from the location given
19
+ # echi-converter start myproject - Start the ECHI converter in daemon mode from the location given
20
+ # echi-converter stop myproject - Stop the ECHI converter daemon
21
+ # echi-converter restart myproject - Restart the ECHI converter
22
+ # echi-converter zap myrpoject - If there has been an unexpected close and the system still thinks the converter is running, clean up the pid files
30
23
 
31
24
  --- overview ---
32
25
 
33
- Blah, blah here
26
+ More to come...
data/Rakefile CHANGED
@@ -74,6 +74,13 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
74
74
  # == Optional
75
75
  p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
76
76
  #p.extra_deps = [] # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ]
77
+ p.extra_deps = [
78
+ ['activerecord', '>=1.15.3'],
79
+ ['activesupport', '>=1.4.2'],
80
+ ['daemons', '>=1.0.7'],
81
+ ['fastercsv', '>=1.2.0'],
82
+ ['rake', '>=0.7.3']
83
+ ]
77
84
  #p.spec_extras = {} # A hash of extra values to set in the gemspec.
78
85
  end
79
86
 
@@ -0,0 +1,129 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'daemons'
4
+ require 'fileutils'
5
+ include FileUtils
6
+
7
+ def set_operating_environ
8
+ #Build details on the gem installed and its location and version
9
+ gem_searcher = Gem::GemPathSearcher.new
10
+ @echi_converter_gem = gem_searcher.find('echi-converter')
11
+ @echi_gem_loc = Gem::dir + '/gems/' + @echi_converter_gem.name + '-' + @echi_converter_gem.version.version
12
+ end
13
+
14
+ #Method for creating the project itself
15
+ def create_project dir_name
16
+ if dir_name == nil
17
+ puts 'You must specify a directory name, proper usage is:'
18
+ puts 'echi-converter-create /path/to/my/directory'
19
+ puts 'Exiting...'
20
+ exit
21
+ end
22
+
23
+ #Assemble elements to create root directory
24
+ dest_dir_relative = dir_name || Dir.pwd
25
+ dest_dir = File.expand_path dest_dir_relative
26
+ base_dir = File.expand_path File.dirname(__FILE__)
27
+
28
+ begin
29
+ echi_install_conf = YAML::load(File.open("#{@echi_gem_loc}/config/install_files.yml"))
30
+ #Make root directory of project
31
+ FileUtils.mkdir dest_dir
32
+ #Create subdirectories
33
+ echi_install_conf["dirs_to_create"].each do |dir|
34
+ FileUtils.mkdir dir_name + '/' + dir["name"]
35
+ puts 'Created directory: ' + dir_name + '/' + dir["name"]
36
+ end
37
+ #Copy files
38
+ echi_install_conf["files_to_copy"].each do |file|
39
+ FileUtils.cp "#{@echi_gem_loc}/#{file["name"]}", "#{dest_dir}/#{file["name"]}"
40
+ puts 'Created file: ' + dir_name + '/' + file["name"]
41
+ end
42
+ rescue => err
43
+ puts err
44
+ puts 'Fatal...exiting...'
45
+ exit
46
+ end
47
+ puts ''
48
+ puts 'Successfully created project in directory ' + dest_dir
49
+ end
50
+
51
+ #Stub to allow the upgrade of the project
52
+ def upgrade_project project_name
53
+ #Assemble elements to create root directory
54
+ dest_dir_relative = project_name || Dir.pwd
55
+ dest_dir = File.expand_path dest_dir_relative
56
+ base_dir = File.expand_path File.dirname(__FILE__)
57
+
58
+ begin
59
+ echi_install_conf = YAML::load(File.open("#{@echi_gem_loc}/config/install_files.yml"))
60
+ #Copy files
61
+ echi_install_conf["files_to_upgrade"].each do |file|
62
+ FileUtils.cp "#{@echi_gem_loc}/#{file["name"]}", "#{dest_dir}/#{file["name"]}"
63
+ puts 'Upgraded file: ' + project_name + '/' + file["name"]
64
+ end
65
+ rescue => err
66
+ puts err
67
+ exit
68
+ end
69
+ puts ''
70
+ puts 'Successfully upgraded ' + project_name
71
+ end
72
+
73
+ #Used launch dynamically or as a deamon
74
+ def launch_project run_type, project_name
75
+
76
+ #Set various file paths
77
+ pid_directory = project_name + '/log'
78
+ script_path = project_name + '/lib/main.rb'
79
+
80
+ #Build options to run as a daemon
81
+ options = {
82
+ :app_name => 'echi-converter',
83
+ :ARGV => [run_type],
84
+ :ontop => false,
85
+ :multiple => false,
86
+ :backtrace => true,
87
+ :monitor => true,
88
+ :dir_mode => :normal,
89
+ :dir => pid_directory,
90
+ :script => ''
91
+ }
92
+
93
+ #If set, run interactively and not as a daemon
94
+ if run_type == 'run'
95
+ options["ontop"] = true
96
+ end
97
+
98
+ #Daemonize
99
+ Daemons.run(script_path, options)
100
+ end
101
+
102
+ #We need to locate the echi-converter gem and set some variables
103
+ set_operating_environ
104
+ #Display initial banner of information
105
+ puts '[' + @echi_converter_gem.name + ' ' + @echi_converter_gem.version.version + ']'
106
+ puts @echi_converter_gem.summary
107
+ puts ''
108
+ puts @echi_converter_gem.homepage
109
+ puts ''
110
+
111
+ #Evaluate the selection and execute
112
+ if ARGV[0] == 'create'
113
+ create_project ARGV[1]
114
+ elsif ARGV[0] == 'upgrade'
115
+ upgrade_project ARGV[1]
116
+ elsif ARGV[0] == 'run' || ARGV[0] == 'start' || ARGV[0] == 'stop' || ARGV[0] == 'zap' || ARGV[0] == 'restart'
117
+ launch_project ARGV[0], ARGV[1]
118
+ else
119
+ usage = "Usage:
120
+ echi-converter create myproject - create the local project to run the ECHI converter from
121
+ echi-converter upgrade myproject - location of project to upgrade after a new gem version is installed
122
+
123
+ echi-converter run myproject - Run the ECHI converter interactively from the location given
124
+ echi-converter start myproject - Start the ECHI converter in daemon mode from the location given
125
+ echi-converter stop myproject - Stop the ECHI converter daemon
126
+ echi-converter restart myproject - Restart the ECHI converter
127
+ 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"
128
+ puts usage
129
+ end
@@ -11,7 +11,7 @@ echi_ftp_retry: 3
11
11
  echi_ftp_delete: N #to not delete the files off of the FTP server set to N
12
12
  echi_schema: extended_version13.yml
13
13
  echi_format: ASCII #valid settings are ASCII or BINARY
14
- echi_process_log: N #valid is Y/N to turn it on or off
14
+ echi_process_log: Y #valid is Y/N to turn it on or off
15
15
 
16
16
  #Currently only ftp supported, but may want to add UUCP/Serial later
17
17
  echi_xfer_type: ftp
@@ -33,4 +33,11 @@ log_level: DEBUG
33
33
  #How many log files to create and the length before cycling through
34
34
  log_number: 10
35
35
  #The size of each individual log file
36
- log_length: 10240000
36
+ log_length: 10240000
37
+
38
+ #Special settings for a specific application database
39
+ pco_process: N #Set to yes or no if running with a PCO database
40
+ pco_record_tablename: PCO_ECHIRECORD
41
+ pco_record_seqname: PCO_ECHIRECORDSEQ
42
+ pco_log_tablename: PCO_ECHILOG
43
+ pco_log_seqname: PCO_ECHILOGSEQ
@@ -0,0 +1,44 @@
1
+ #Lets the echi-conveter-create utility know which files and directories to load
2
+ dirs_to_create:
3
+ - name: test
4
+ - name: config
5
+ - name: log
6
+ - name: csv
7
+ - name: files
8
+ - name: files/to_process
9
+ - name: files/processed
10
+ - name: db
11
+ - name: db/migrate
12
+ - name: examples
13
+ - name: examples/extended_version12
14
+ - name: examples/schemas
15
+ - name: lib
16
+ - name: lib/echi-converter
17
+
18
+ files_to_copy:
19
+ - name: History.txt
20
+ - name: License.txt
21
+ - name: Manifest.txt
22
+ - name: README.txt
23
+ - name: Rakefile
24
+ - name: test/test_echi-converter.rb
25
+ - name: test/test_helper.rb
26
+ - name: config/application.yml
27
+ - name: config/database.yml
28
+ - name: config/extended_version12.yml
29
+ - name: config/extended_version13.yml
30
+ - name: db/migrate/001_create_echi_records.rb
31
+ - name: db/migrate/002_create_echi_logs.rb
32
+ - name: examples/extended_version12/chr0003
33
+ - name: examples/extended_version12/chr0003.txt
34
+ - name: lib/database.rb
35
+ - name: lib/echi-converter.rb
36
+ - name: lib/main.rb
37
+ - name: lib/echi-converter/version.rb
38
+ - name: examples/schemas/oracle_echi.sql
39
+
40
+ files_to_upgrade:
41
+ - name: lib/database.rb
42
+ - name: lib/echi-converter.rb
43
+ - name: lib/main.rb
44
+ - name: lib/echi-converter/version.rb
@@ -0,0 +1,129 @@
1
+ CREATE TABLE PCO_ECHILOG (
2
+ ID NUMBER,
3
+ FILENAME VARCHAR2(10),
4
+ FILENUMBER NUMBER,
5
+ VERSION NUMBER,
6
+ RECORDS VARCHAR2(2),
7
+ PROCESSEDAT DATE
8
+ );
9
+
10
+ ALTER TABLE PCO_ECHILOG ADD CONSTRAINT PCO_ECHILOGPK PRIMARY KEY (ID)
11
+ USING INDEX TABLESPACE PINDEX;
12
+ ALTER TABLE PCO_ECHILOG ENABLE CONSTRAINT PCO_ECHILOGPK;
13
+
14
+ CREATE SEQUENCE PCO_ECHILOGSEQ ORDER;
15
+
16
+ CREATE OR REPLACE TRIGGER PCO_ECHILOGTRG BEFORE INSERT ON PCO_ECHILOG
17
+ REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW DECLARE
18
+ TEMP NUMBER;
19
+ BEGIN
20
+
21
+ SELECT PCO_ECHILOGSEQ.NEXTVAL
22
+ INTO TEMP
23
+ FROM DUAL;
24
+
25
+ :NEW.ID:=TEMP;
26
+
27
+ END;
28
+ /
29
+
30
+ CREATE TABLE PCO_ECHIRECORD (
31
+ ID NUMBER,
32
+ CALLID NUMBER,
33
+ ACWTIME NUMBER,
34
+ ONHOLDTIME NUMBER,
35
+ CONSULTTIME NUMBER,
36
+ DISPTIME NUMBER,
37
+ DURATION NUMBER,
38
+ SEGSTART DATE,
39
+ SEGSTOP DATE,
40
+ TALKTIME NUMBER,
41
+ NETINTIME NUMBER,
42
+ ORIGHOLDTIME NUMBER,
43
+ QUEUETIME NUMBER,
44
+ RINGTIME NUMBER,
45
+ DISPIVECTOR NUMBER,
46
+ DISPSPLIT NUMBER,
47
+ FIRSTIVECTOR NUMBER,
48
+ SPLIT1 NUMBER,
49
+ SPLIT2 NUMBER,
50
+ SPLIT3 NUMBER,
51
+ TRUNGROUP NUMBER,
52
+ TKLOCID NUMBER,
53
+ ORIGLOCID NUMBER,
54
+ ANSWERLOCID NUMBER,
55
+ OBSLOCID NUMBER,
56
+ UUILEN NUMBER,
57
+ ASSIST CHAR(1),
58
+ AUDIODIFFICULTY CHAR(1),
59
+ CONFERENCE CHAR(1),
60
+ DAQUEUED CHAR(1),
61
+ HOLDABN CHAR(1),
62
+ MALICIOUS CHAR(1),
63
+ OBSERVINGCALL CHAR(1),
64
+ TRANSFERRED CHAR(1),
65
+ AGENTRELEASED CHAR(1),
66
+ ACDNUM NUMBER,
67
+ CALLDISP NUMBER,
68
+ DISPPRIORITY NUMBER,
69
+ HOLDS NUMBER,
70
+ SEGMENT NUMBER,
71
+ ANSREASON NUMBER,
72
+ ORIGREASON NUMBER,
73
+ DISPSKLEVEL NUMBER,
74
+ EVENTS0 NUMBER,
75
+ EVENTS1 NUMBER,
76
+ EVENTS2 NUMBER,
77
+ EVENTS3 NUMBER,
78
+ EVENTS4 NUMBER,
79
+ EVENTS5 NUMBER,
80
+ EVENTS6 NUMBER,
81
+ EVENTS7 NUMBER,
82
+ EVENTS8 NUMBER,
83
+ UCID VARCHAR2(21),
84
+ DISPVDN VARCHAR2(8),
85
+ EQLOC VARCHAR2(10),
86
+ FIRSTVDN VARCHAR2(8),
87
+ ORIGLOGID VARCHAR2(10),
88
+ ANSLOGID VARCHAR2(10),
89
+ LASTOBSERVER VARCHAR2(10),
90
+ DIALEDNUMBER VARCHAR2(25),
91
+ CALLINGPARTY VARCHAR2(13),
92
+ COLLECTDIGITS VARCHAR2(17),
93
+ CWCDIGITS VARCHAR2(17),
94
+ CALLINGII VARCHAR2(3),
95
+ CWCS0 VARCHAR2(17),
96
+ CWCS1 VARCHAR2(17),
97
+ CWCS2 VARCHAR2(17),
98
+ CWCS3 VARCHAR2(17),
99
+ CWCS4 VARCHAR2(17),
100
+ VDN2 VARCHAR2(8),
101
+ VDN3 VARCHAR2(8),
102
+ VDN4 VARCHAR2(8),
103
+ VDN5 VARCHAR2(8),
104
+ VDN6 VARCHAR2(8),
105
+ VDN7 VARCHAR2(8),
106
+ VDN8 VARCHAR2(8),
107
+ VDN9 VARCHAR2(8),
108
+ ASAIUUI VARCHAR2(96)
109
+ );
110
+
111
+ ALTER TABLE PCO_ECHIRECORD ADD CONSTRAINT PCO_ECHIRECORDPK PRIMARY KEY (ID)
112
+ USING INDEX TABLESPACE PINDEX;
113
+ ALTER TABLE PCO_ECHIRECORD ENABLE CONSTRAINT PCO_ECHIRECORDPK;
114
+
115
+ CREATE SEQUENCE PCO_ECHIRECORDSEQ ORDER;
116
+
117
+ CREATE OR REPLACE TRIGGER PCO_ECHIRECORDTRG BEFORE INSERT ON PCO_ECHIRECORD
118
+ REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW DECLARE
119
+ TEMP NUMBER;
120
+ BEGIN
121
+
122
+ SELECT PCO_ECHIRECORDSEQ.NEXTVAL
123
+ INTO TEMP
124
+ FROM DUAL;
125
+
126
+ :NEW.ID:=TEMP;
127
+
128
+ END;
129
+ /
data/lib/database.rb CHANGED
@@ -1,5 +1,25 @@
1
1
  class EchiRecord < ActiveRecord::Base
2
+ #Determine our working directory
3
+ workingdirectory = File.expand_path(File.dirname(__FILE__))
4
+ #Open the configuration file
5
+ configfile = workingdirectory + '/../config/application.yml'
6
+ config = YAML::load(File.open(configfile))
7
+
8
+ if config["pco_process"] == 'Y'
9
+ set_table_name config["pco_record_tablename"]
10
+ set_sequence_name config["pco_record_seqname"]
11
+ end
2
12
  end
3
13
 
4
14
  class EchiLog < ActiveRecord::Base
15
+ #Determine our working directory
16
+ workingdirectory = File.expand_path(File.dirname(__FILE__))
17
+ #Open the configuration file
18
+ configfile = workingdirectory + '/../config/application.yml'
19
+ config = YAML::load(File.open(configfile))
20
+
21
+ if config["pco_process"] == 'Y'
22
+ set_table_name @config["pco_log_tablename"]
23
+ set_sequence_name @config["pco_log_seqname"]
24
+ end
5
25
  end
@@ -2,8 +2,6 @@ require 'rubygems'
2
2
  require 'active_record'
3
3
  require 'faster_csv'
4
4
  require 'net/ftp'
5
- #require 'net/ssh'
6
- #require 'net/sftp'
7
5
  require 'fileutils'
8
6
 
9
7
  class Logger
@@ -110,7 +108,7 @@ module EchiConverter
110
108
  fileversion = dump_binary 'int', 4
111
109
  @log.debug "Version " + fileversion.to_s
112
110
 
113
- if @config["echi_process_log"] == "Yes"
111
+ if @config["echi_process_log"] == "Y"
114
112
  #Log the file
115
113
  echi_log = EchiLog.new
116
114
  echi_log.filename = filename
@@ -160,7 +158,7 @@ module EchiConverter
160
158
  destination_directory = @workingdirectory + '/../files/processed/'
161
159
  FileUtils.mv(echi_file, destination_directory)
162
160
 
163
- if @config["echi_process_log"] == "Yes"
161
+ if @config["echi_process_log"] == "Y"
164
162
  #Finish logging the details on the file
165
163
  echi_log.records = record_cnt
166
164
  echi_log.processed_at = Time.now
@@ -238,12 +236,12 @@ end
238
236
  def process_ascii filename
239
237
  echi_file = @workingdirectory + "/../files/to_process/" + filename
240
238
 
241
- if @config["echi_process_log"] == "Yes"
239
+ if @config["echi_process_log"] == "Y"
242
240
  #Log the file
243
241
  echi_log = EchiLog.new
244
242
  echi_log.filename = filename
245
- echi_log.filenumber = filenumber
246
- echi_log.version = fileversion
243
+ #echi_log.filenumber = filenumber
244
+ #echi_log.version = fileversion
247
245
  end
248
246
 
249
247
  record_cnt = 0
@@ -275,7 +273,7 @@ def process_ascii filename
275
273
  end
276
274
  end
277
275
 
278
- if @config["echi_process_log"] == "Yes"
276
+ if @config["echi_process_log"] == "Y"
279
277
  #Finish logging the details on the file
280
278
  echi_log.records = record_cnt
281
279
  echi_log.processed_at = Time.now
@@ -2,7 +2,7 @@ module EchiConverter #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/lib/main.rb CHANGED
@@ -6,14 +6,13 @@ require 'yaml'
6
6
  require @workingdirectory + '/echi-converter.rb'
7
7
  include EchiConverter
8
8
 
9
- #Load ActiveRecord Models
10
- require @workingdirectory + '/database.rb'
11
-
12
- configfile = @workingdirectory + '/../config/application.yml'
13
-
14
9
  #Open the configuration file
10
+ configfile = @workingdirectory + '/../config/application.yml'
15
11
  @config = YAML::load(File.open(configfile))
16
12
 
13
+ #Load ActiveRecord Models
14
+ require @workingdirectory + '/database.rb'
15
+
17
16
  #Load the configured schema
18
17
  schemafile = @workingdirectory + "/../config/" + @config["echi_schema"]
19
18
  @echi_schema = YAML::load(File.open(schemafile))
data/website/index.html CHANGED
@@ -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.0.3</a>
36
+ <a href="http://rubyforge.org/projects/echi-converter" class="numbers">0.0.4</a>
37
37
  </div>
38
38
  <h1>&#x2192; &#8216;echi-converter&#8217;</h1>
39
39
 
@@ -66,6 +66,15 @@
66
66
  </ol>
67
67
 
68
68
 
69
+ <ol>
70
+ <li>Table names:
71
+ <ol>
72
+ <li>echi_records &#8211; stores all <span class="caps">ECHI</span> data </li>
73
+ <li>echi_logs &#8211; stores a log entry for each file processed</li>
74
+ </ol></li>
75
+ </ol>
76
+
77
+
69
78
  <h2>Requirements</h2>
70
79
 
71
80
 
@@ -91,7 +100,7 @@
91
100
  <p>First, create the directory with all of the project files where you will run this application from:</p>
92
101
 
93
102
 
94
- <pre syntax="ruby">echi-converter-create path_to_my_directory</pre>
103
+ <pre syntax="ruby">echi-converter create myproject</pre>
95
104
 
96
105
  <p>Once you have installed a project into your preferred directory, you then need to configure for your environment. The first step is to modify each of these files:</p>
97
106
 
@@ -99,7 +108,7 @@
99
108
  <ol>
100
109
  <li>config/application.yml
101
110
  <ol>
102
- <li>Change each of the &#8216;echi&#8217; settings for connecting to your local <span class="caps">FTP</span> server where the <span class="caps">CMS</span> puts the binary files</li>
111
+ <li>Change each of the &#8216;echi&#8217; settings for connecting to your local <span class="caps">FTP</span> server where the <span class="caps">CMS</span> puts the <span class="caps">ASCII</span>/binary files</li>
103
112
  <li>Select which schema you would like to use (ie &#8211; extended_version12.yml) based on what you have in place</li>
104
113
  </ol>
105
114
  </li>
@@ -122,36 +131,18 @@
122
131
  <h2>Usage</h2>
123
132
 
124
133
 
125
- <p>Usage: echi-converter command options</p>
126
-
127
-
128
- <ol>
129
- <li>where command is one of:
130
- <ol>
131
- <li>start start an instance of the application</li>
132
- <li>stop stop all instances of the application</li>
133
- <li>restart stop all instances and restart them afterwards</li>
134
- <li>run start the application and stay on top</li>
135
- <li>zap set the application to a stopped state</li>
136
- </ol></li>
137
- </ol>
138
-
139
-
140
134
  <ol>
141
- <li>and where options may contain several of the following:
142
- <ol>
143
- <li>-t,&#8212;ontop Stay on top (does not daemonize)</li>
144
- <li>-f,&#8212;force Force operation</li>
145
- </ol></li>
135
+ <li>echi-converter create myproject &#8211; create the local project to run the <span class="caps">ECHI</span> converter from</li>
136
+ <li>echi-converter upgrade myproject &#8211; location of project to upgrade after a new gem is installed</li>
146
137
  </ol>
147
138
 
148
139
 
149
140
  <ol>
150
- <li>Common options:
151
- <ol>
152
- <li>-h,&#8212;help Show this message</li>
153
- <li>&#8212;version Show version</li>
154
- </ol></li>
141
+ <li>echi-converter run myproject &#8211; Run the <span class="caps">ECHI</span> converter interactively from the location given</li>
142
+ <li>echi-converter start myproject &#8211; Start the <span class="caps">ECHI</span> converter in daemon mode from the location given</li>
143
+ <li>echi-converter stop myproject &#8211; Stop the <span class="caps">ECHI</span> converter daemon</li>
144
+ <li>echi-converter restart myproject &#8211; Restart the <span class="caps">ECHI</span> converter </li>
145
+ <li>echi-converter zap myrpoject &#8211; If there has been an unexpected close and the system still thinks the converter is running, clean up the pid files</li>
155
146
  </ol>
156
147
 
157
148
 
@@ -161,12 +152,12 @@
161
152
  <p>Start the daemon/service:</p>
162
153
 
163
154
 
164
- <pre syntax="ruby">echi-converter start</pre>
155
+ <pre syntax="ruby">echi-converter start myproject</pre>
165
156
 
166
157
  <p>Stop the daemon/service:</p>
167
158
 
168
159
 
169
- <pre syntax="ruby">echi-converter stop</pre>
160
+ <pre syntax="ruby">echi-converter stop myproject</pre>
170
161
 
171
162
  <h2>ToDo</h2>
172
163
 
@@ -176,7 +167,6 @@
176
167
 
177
168
  <ol>
178
169
  <li>&#8216;echi-converter-create&#8217; works fine with <span class="caps">OSX</span>/Linux, need to test validate with a Win32 platform</li>
179
- <li>Determine what to do with the files on the <span class="caps">FTP</span> server of the Avaya <span class="caps">CMS</span>, delete them or leave them and add methods to ensure no duplication</li>
180
170
  </ol>
181
171
 
182
172
 
@@ -206,7 +196,7 @@
206
196
 
207
197
  <p>Comments are welcome. Send an email to <a href="mailto:jason@goecke.net">jason [at] goecke.net</a>.</p>
208
198
  <p class="coda">
209
- <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 11th August 2007<br>
199
+ <a href="mailto:drnicwilliams@gmail.com">Dr Nic</a>, 16th August 2007<br>
210
200
  Theme extended from <a href="http://rb2js.rubyforge.org/">Paul Battley</a>
211
201
  </p>
212
202
  </div>
data/website/index.txt CHANGED
@@ -23,6 +23,10 @@ The utility provides the following capabilities:
23
23
  # Insert the records into the defined database table
24
24
  # Change schema structure via YML configuration file to accommodate various releases of the ECHI format
25
25
 
26
+ # Table names:
27
+ ## echi_records - stores all ECHI data
28
+ ## echi_logs - stores a log entry for each file processed
29
+
26
30
 
27
31
  h2. Requirements
28
32
 
@@ -43,12 +47,12 @@ h2. Setup
43
47
 
44
48
  First, create the directory with all of the project files where you will run this application from:
45
49
 
46
- <pre syntax="ruby">echi-converter-create path_to_my_directory</pre>
50
+ <pre syntax="ruby">echi-converter create myproject</pre>
47
51
 
48
52
  Once you have installed a project into your preferred directory, you then need to configure for your environment. The first step is to modify each of these files:
49
53
 
50
54
  # config/application.yml
51
- ## Change each of the 'echi' settings for connecting to your local FTP server where the CMS puts the binary files
55
+ ## Change each of the 'echi' settings for connecting to your local FTP server where the CMS puts the ASCII/binary files
52
56
  ## Select which schema you would like to use (ie - extended_version12.yml) based on what you have in place
53
57
  # config/database.yml
54
58
  ## Change to match your local database and database login credentials, full ActiveRecord support
@@ -61,33 +65,25 @@ Once this is complete, then simply run these commands from the project directory
61
65
 
62
66
  h2. Usage
63
67
 
64
- Usage: echi-converter command options
65
-
66
- # where command is one of:
67
- ## start start an instance of the application
68
- ## stop stop all instances of the application
69
- ## restart stop all instances and restart them afterwards
70
- ## run start the application and stay on top
71
- ## zap set the application to a stopped state
72
-
73
- # and where options may contain several of the following:
74
- ## -t, --ontop Stay on top (does not daemonize)
75
- ## -f, --force Force operation
68
+ # echi-converter create myproject - create the local project to run the ECHI converter from
69
+ # echi-converter upgrade myproject - location of project to upgrade after a new gem is installed
76
70
 
77
- # Common options:
78
- ## -h, --help Show this message
79
- ## --version Show version
71
+ # echi-converter run myproject - Run the ECHI converter interactively from the location given
72
+ # echi-converter start myproject - Start the ECHI converter in daemon mode from the location given
73
+ # echi-converter stop myproject - Stop the ECHI converter daemon
74
+ # echi-converter restart myproject - Restart the ECHI converter
75
+ # echi-converter zap myrpoject - If there has been an unexpected close and the system still thinks the converter is running, clean up the pid files
80
76
 
81
77
 
82
78
  h2. Demonstration of usage
83
79
 
84
80
  Start the daemon/service:
85
81
 
86
- <pre syntax="ruby">echi-converter start</pre>
82
+ <pre syntax="ruby">echi-converter start myproject</pre>
87
83
 
88
84
  Stop the daemon/service:
89
85
 
90
- <pre syntax="ruby">echi-converter stop</pre>
86
+ <pre syntax="ruby">echi-converter stop myproject</pre>
91
87
 
92
88
 
93
89
  h2. ToDo
@@ -95,7 +91,6 @@ h2. ToDo
95
91
  Items to be done to move this out of alpha stage:
96
92
 
97
93
  # 'echi-converter-create' works fine with OSX/Linux, need to test validate with a Win32 platform
98
- # Determine what to do with the files on the FTP server of the Avaya CMS, delete them or leave them and add methods to ensure no duplication
99
94
 
100
95
 
101
96
  h2. Forum
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: echi-converter
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.3
7
- date: 2007-08-11 00:00:00 -07:00
6
+ version: 0.0.4
7
+ date: 2007-08-16 00:00:00 -07:00
8
8
  summary: ECHI Conversion Utility - Provides a utility to fetch Avaya CMS / ECHI binary files, convert them and insert into a database table via ActiveRecord
9
9
  require_paths:
10
10
  - lib
@@ -34,7 +34,6 @@ files:
34
34
  - Manifest.txt
35
35
  - README.txt
36
36
  - Rakefile
37
- - echi-converter
38
37
  - lib/main.rb
39
38
  - lib/echi-converter/version.rb
40
39
  - lib/database.rb
@@ -52,11 +51,13 @@ files:
52
51
  - config/database.yml
53
52
  - config/extended_version12.yml
54
53
  - config/extended_version13.yml
54
+ - config/install_files.yml
55
55
  - db/migrate/001_create_echi_records.rb
56
56
  - db/migrate/002_create_echi_logs.rb
57
- - bin/echi-converter-create
57
+ - bin/echi-converter
58
58
  - examples/extended_version12/chr0003
59
59
  - examples/extended_version12/chr0003.txt
60
+ - examples/schemas/oracle_echi.sql
60
61
  test_files:
61
62
  - test/test_echi-converter.rb
62
63
  - test/test_helper.rb
@@ -71,10 +72,54 @@ extra_rdoc_files:
71
72
  - website/index.txt
72
73
  - examples/extended_version12/chr0003.txt
73
74
  executables:
74
- - echi-converter-create
75
+ - echi-converter
75
76
  extensions: []
76
77
 
77
78
  requirements: []
78
79
 
79
- dependencies: []
80
-
80
+ dependencies:
81
+ - !ruby/object:Gem::Dependency
82
+ name: activerecord
83
+ version_requirement:
84
+ version_requirements: !ruby/object:Gem::Version::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.15.3
89
+ version:
90
+ - !ruby/object:Gem::Dependency
91
+ name: activesupport
92
+ version_requirement:
93
+ version_requirements: !ruby/object:Gem::Version::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 1.4.2
98
+ version:
99
+ - !ruby/object:Gem::Dependency
100
+ name: daemons
101
+ version_requirement:
102
+ version_requirements: !ruby/object:Gem::Version::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 1.0.7
107
+ version:
108
+ - !ruby/object:Gem::Dependency
109
+ name: fastercsv
110
+ version_requirement:
111
+ version_requirements: !ruby/object:Gem::Version::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 1.2.0
116
+ version:
117
+ - !ruby/object:Gem::Dependency
118
+ name: rake
119
+ version_requirement:
120
+ version_requirements: !ruby/object:Gem::Version::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 0.7.3
125
+ version:
@@ -1,76 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'rubygems'
3
- require 'yaml'
4
- require 'fileutils'
5
- include FileUtils
6
-
7
- usage = "Usage: echi-converter-create /path/to/directory"
8
-
9
- if ARGV[0] == nil
10
- puts usage
11
- puts "You must specify a directory name"
12
- exit
13
- end
14
-
15
- dest_dir_relative = ARGV[0] || Dir.pwd
16
- dest_dir = File.expand_path dest_dir_relative
17
- base_dir = File.expand_path File.dirname(__FILE__)
18
-
19
- if RUBY_PLATFORM =~ /mswin32/
20
- slash = "\ ".rstrip!
21
- puts 'Windows'
22
- else
23
- puts 'Linux/OSX'
24
- slash = "/"
25
- end
26
-
27
- #Obtain the details of which Gem is installed
28
- gem_details = base_dir.split(slash)
29
- location = gem_details.length - 2
30
- puts 'Creating new ' + gem_details[location] + ' directory tree in ' + dest_dir
31
- puts ' '
32
-
33
- #Now, create the directory, must be a new 'fresh' one
34
- begin
35
- result = FileUtils.mkdir dest_dir_relative
36
- puts 'Created diretory "' + result.to_s + '"'
37
- rescue => err
38
- puts 'ERROR: ' + err
39
- puts 'Failed, exiting...'
40
- exit
41
- end
42
-
43
- #Now create various directories
44
- logdir = dest_dir + slash +'log'
45
- filesdir = dest_dir + slash + 'files'
46
- csvdir = filesdir + slash + 'csv'
47
- processeddir = filesdir + slash + 'processed'
48
- toprocessdir = filesdir + slash + 'to_process'
49
- begin
50
- FileUtils.mkdir logdir
51
- FileUtils.mkdir filesdir
52
- FileUtils.mkdir csvdir
53
- FileUtils.mkdir processeddir
54
- FileUtils.mkdir toprocessdir
55
- rescue => err
56
- puts 'ERROR: ' + err
57
- puts 'Failed, exiting...'
58
- exit
59
- end
60
-
61
- #Now, start copying project files files
62
- substitute = slash + '.'
63
- base_dir = base_dir.sub('/bin', substitute)
64
- new_dest_dir = dest_dir + slash + '.'
65
- exe_file = dest_dir + slash + 'echi-converter'
66
- begin
67
- FileUtils.cp_r base_dir, new_dest_dir
68
- FileUtils.chmod 0755, exe_file
69
- rescue => err
70
- puts 'ERROR: ' + err
71
- puts 'Failed, exiting...'
72
- exit
73
- end
74
-
75
- puts ' '
76
- puts 'ECHI Conveter directory created! Now ready for use.'
data/echi-converter DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'rubygems'
3
- require 'daemons'
4
-
5
- #Run the application as a Daemon
6
- Daemons.run('lib/main.rb')
7
-
8
-