69 lines
1.4 KiB
Ruby
Executable file
69 lines
1.4 KiB
Ruby
Executable file
#
|
|
# glossary_import_info.rb
|
|
#
|
|
# Author : Mitsuyoshi Yoshida
|
|
# This program is freely distributable under the terms of an MIT-style license.
|
|
#
|
|
|
|
require 'i18n'
|
|
|
|
class GlossaryImportInfo
|
|
attr_accessor :import_file
|
|
attr_accessor :err_string
|
|
|
|
def initialize(tbl)
|
|
@import_file = tbl[:import_file]
|
|
end
|
|
|
|
def success?
|
|
(err_string) ? false : true
|
|
end
|
|
|
|
end
|
|
|
|
|
|
class CsvGlossaryImportInfo < GlossaryImportInfo
|
|
attr_accessor :is_first_comment
|
|
attr_reader :col_max
|
|
attr_accessor :cat_num, :newterm_num, :upterm_num
|
|
attr_writer :in_encoding
|
|
|
|
def initialize(tbl)
|
|
super(tbl)
|
|
@is_first_comment = tbl[:is_first_comment]
|
|
@in_encoding = tbl[:in_encoding]
|
|
@colno_tbl = {}
|
|
Term.import_params.each {|prm|
|
|
prmcol = tbl["colno_#{prm}"]
|
|
if (prmcol and !prmcol.empty?)
|
|
@colno_tbl[prmcol.to_i] = prm
|
|
end
|
|
}
|
|
@col_max = @colno_tbl.keys.max
|
|
@cat_num = 0
|
|
@newterm_num = 0
|
|
@upterm_num = 0
|
|
end
|
|
|
|
def in_encoding
|
|
(@in_encoding) ? @in_encoding : 'UTF-8'
|
|
end
|
|
|
|
def col_param(colno)
|
|
@colno_tbl[colno]
|
|
end
|
|
|
|
def param_col(prm)
|
|
@colno_tbl.each {|key, val|
|
|
return key if (val == prm)
|
|
}
|
|
nil
|
|
end
|
|
|
|
def self.default_param_cols(&blk)
|
|
Term.import_params.each {|prm|
|
|
yield prm, (Term.export_params.index(prm))
|
|
}
|
|
end
|
|
|
|
end
|