<< Masa.20101209-debug-ebook-compendium_ch_oddb_org_firefox_epub | 2010 | Masa.20101207-update-outline-spreadsheet >>
suspend
suspend
Link
I cannot find the file for the test fails.
Reference
Hoe sample
$ sudo gem install hoe $ sow sample $ rake -T
Ways to create a gem package
Memo
spreadsheet.gemspec
masa@masa ~/ywesee/spreadsheet $ cat spreadsheet.gemspec
require "rubygems"
require "rake"
spec = Gem::Specification.new do |s|
s.name = "spreadsheet"
s.version = "0.6.5"
s.summary = "The Spreadsheet Library is designed to read and write Spreadsheet Documents"
s.description = "As of version 0.6.0, only Microsoft Excel compatible spreadsheets are supported"
s.author = "Masaomi Hatakeyama, Zeno R.R. Davatz"
s.email = "mhatakeyama@ywesee.com, zdavatz@ywesee.com"
s.platform = Gem::Platform::RUBY
s.files = Dir.glob("{bin,lib,test}/**/*") + Dir.glob("*.txt")
s.test_file = "test/suite.rb"
s.executables << 'xlsopcodes'
s.add_dependency('iconv')
s.add_dependency('ruby-ole')
s.homepage = "http://scm.ywesee.com/?p=spreadsheet/.git;a=summary"
end
if $0 == __FILE__
Gem.manage_gems
Gem::Builder.new(spec).build
end
Make a gem package
$ gem build spreadsheet.gemspec
Note
suspend
Ebook compendium_ch.oddb.org.firefox.epub could not be completed (01.12.2010 01:02:34) (fwd)
Subject: Ebook compendium_ch.oddb.org.firefox.epub could not be completed (01.12.2010 01:02:34) NoMethodError: undefined method `metadata' for nil:NilClass /usr/lib64/ruby19/site_ruby/1.9.1/ebps/conversion/fachinfo_yaml.rb:8:in `block in <module:EBPS>' /usr/lib64/ruby19/1.9.1/yaml.rb:217:in `call' /usr/lib64/ruby19/1.9.1/yaml.rb:217:in `transfer' /usr/lib64/ruby19/1.9.1/yaml.rb:217:in `node_import' /usr/lib64/ruby19/1.9.1/yaml.rb:217:in `load_documents' /usr/lib64/ruby19/1.9.1/yaml.rb:217:in `each_document' /usr/lib64/ruby19/site_ruby/1.9.1/ebps/conversion/fachinfo_yaml.rb:83:in `import' ./oddb_firefox:58:in `<main>'
Reference
grep check
masa@masa ~/ywesee/ebps $ grep -r compendium *
masa@masa ~/ywesee/ebps $
masa@masa ~/ywesee/oddb.org $ grep -r compendium *
Übereinstimmungen in Binärdatei doc/resources/downloads/examples/compendium_ch.oddb.org.firefox.epub.
Übereinstimmungen in Binärdatei doc/resources/downloads/examples/compendium_ch.oddb.org.stanza.epub.
ext/fiparse/test/test_fachinfo_pdf.rb: assert_nil(/.*compendium.*/i.match(ch_str), ch_str)
ext/fulltext/data/dicts/french/fulltext.dict:compendium/S
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.firefox.epub' => 17,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.htc.prc' => 17,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.kindle.mobi' => 17,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.stanza.epub' => 17,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.firefox.epub' => 30,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.htc.prc' => 30,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.kindle.mobi' => 30,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.stanza.epub' => 30,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.firefox.epub',
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.htc.prc',
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.kindle.mobi',
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.stanza.epub',
src/view/centeredsearchform.rb: 'download[compendium_ch.oddb.org.firefox.epub]' => 1,
src/view/centeredsearchform.rb: 'download[compendium_ch.oddb.org.htc.prc]' => 1,
src/view/centeredsearchform.rb: 'download[compendium_ch.oddb.org.kindle.mobi]' => 1,
src/view/centeredsearchform.rb: 'download[compendium_ch.oddb.org.stanza.epub]' => 1,
src/view/user/download_export.rb: example('compendium_ch.oddb.org.firefox.epub')
src/view/user/download_export.rb: example('compendium_ch.oddb.org.htc.prc')
src/view/user/download_export.rb: example('compendium_ch.oddb.org.kindle.mobi')
src/view/user/download_export.rb: link = example('compendium_ch.oddb.org.stanza.epub')
src/view/user/download_export.rb: checkbox_with_filesize('compendium_ch.oddb.org.firefox.epub')
src/view/user/download_export.rb: checkbox_with_filesize('compendium_ch.oddb.org.htc.prc')
src/view/user/download_export.rb: checkbox_with_filesize('compendium_ch.oddb.org.kindle.mobi')
src/view/user/download_export.rb: checkbox_with_filesize('compendium_ch.oddb.org.stanza.epub')
src/view/user/download_export.rb: once('compendium_ch.oddb.org.firefox.epub')
src/view/user/download_export.rb: once('compendium_ch.oddb.org.htc.prc')
src/view/user/download_export.rb: once('compendium_ch.oddb.org.kindle.mobi')
src/view/user/download_export.rb: once('compendium_ch.oddb.org.stanza.epub')
Notes
Look at these files
masa@masa ~/ywesee/oddb.org $ grep -r compendium_ch.oddb.org.firefox.epub *
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.firefox.epub' => 17,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.firefox.epub' => 30,
src/util/oddbconfig.rb: 'compendium_ch.oddb.org.firefox.epub',
src/view/centeredsearchform.rb: 'download[compendium_ch.oddb.org.firefox.epub]' => 1,
src/view/user/download_export.rb: example('compendium_ch.oddb.org.firefox.epub')
src/view/user/download_export.rb: checkbox_with_filesize('compendium_ch.oddb.org.firefox.epub')
src/view/user/download_export.rb: once('compendium_ch.oddb.org.firefox.epub')
Focus on src/view/user/download_export.rb
def example_fachinfo_firefox_epub(model, session)
example('compendium_ch.oddb.org.firefox.epub')
end
...
def fachinfo_epub_firefox(model, session)
checkbox_with_filesize('compendium_ch.oddb.org.firefox.epub')
end
...
def price_fachinfo_firefox_epub(model, session)
once('compendium_ch.oddb.org.firefox.epub')
end
suspend
Reference
Error
C:\Users\masa\spreadsheet>gem build spreadsheet.gemspec WARNING: no rubyforge_project specified Successfully built RubyGem Name: spreadsheet Version: 0.6.5 File: spreadsheet-0.6.5.gem C:\Users\masa\spreadsheet>gem install spreadsheet-0.6.5.0.gem ERROR: Could not find a valid gem 'spreadsheet-0.6.5.0.gem' (>= 0) in any repos itory
Suceeded in installing
C:\Users\masa\spreadsheet>gem install rake C:\Users\masa\spreadsheet>gem install hoe C:\Users\masa\spreadsheet>gem install ruby-ole C:\Users\masa\spreadsheet>rake -I lib gem C:\Users\masa\spreadsheet>cd pkg C:\Users\masa\spreadsheet\pkg>gem install spreadsheet-0.6.5.0.gem Successfully installed spreadsheet-0.6.5.0 1 gem installed Installing ri documentation for spreadsheet-0.6.5.0... Installing RDoc documentation for spreadsheet-0.6.5.0... C:\Users\masa\spreadsheet\pkg>gem search spreadsheet *** LOCAL GEMS *** spreadsheet (0.6.5.0)
Commit
Memo
/var/ebps/bin/oddb_firefox:58
begin
import_from = EBPS.config.import_from
export_to = EBPS.config.export_to
require "ebps/conversion/#{import_from}"
require "ebps/conversion/#{export_to}"
EBPS.config.preprocess.each do |name, data|
require "ebps/preprocess/#{name}"
result = identify_module(EBPS::Preprocess, name).preprocess(data)
log.push sprintf('Preprocess: %s', result)
end
importer = identify_module EBPS::Conversion, import_from
exporter = identify_module EBPS::Conversion, export_to
model = []
source_path = EBPS.config.source
inputs = ""
if File.ftype(source_path) == 'directory'
inputs << "Input files for conversion:"
Dir.foreach(source_path) do |name|
path = File.join source_path, name
if File.ftype(path) == 'file'
inputs << "\n" << path
File.open(path) do |fh|
model.concat importer.import(fh, path)
end
end
end
else
inputs << "Input file for conversion: " << source_path
source = File.open(source_path)
model = importer.import source, source_path <= HERE Line.58
end
...
Question
Experiment
masa@masa ~/work/ebps_work_20101108 $ ruby1.9 /var/ebps/bin/oddb_firefox
/usr/lib64/ruby/site_ruby/1.9.1/ebps/util/mail.rb:14:in `basename': can't convert nil into String (TypeError)
from /usr/lib64/ruby/site_ruby/1.9.1/ebps/util/mail.rb:14:in `notify'
from /var/ebps/bin/oddb_firefox:85:in `ensure in <main>'
from /var/ebps/bin/oddb_firefox:85:in `<main>'
There is a etc/crontab on production server of ebps
mhatakeyama@server /var/ebps/bin $ cat /etc/crontab ... # export ebooks 0 1 1 * * xxx /var/ebps/bin/run_ch.oddb_ebooks 0 1 1 * * xxx /var/ebps/bin/run_de.oddb_ebooks 30 6 1 * * xxx /var/ebps/bin/run_emediat_ebooks mhatakeyama@server /var/ebps/bin $ cat /var/ebps/bin/run_ch.oddb_ebooks #!/bin/bash # download ch.oddb.org-fi-data cd /var/ebps/data/yaml scp user@xxx:/var/www/oddb.org/data/downloads/fachinfo.yaml fachinfos.ch.oddb.yaml # start conversion cd /var/ebps/bin ./oddb_firefox& ./oddb_stanza& ./oddb_kindle& wait # for all processes to finish
Notes
Experiment
config.yaml
masa@masa ~/work/ebps $ cat config.yml --- smtp_server: smtp.gmail.com smtp_user: xxx@ywesee.com smtp_pass: 'xxx' report_to: - mhatakeyama@ywesee.com #source: /home/masa/work/data.yml source: /home/masa/work/fachinfos.ch.oddb.yaml target: /home/masa/work/sample.epub import_from: import_module_sample export_to: epub language: de title: Firmenliste Schweiz
converter_for_firefox.rb
#!/usr/bin/env ruby19
$: << File.expand_path('../lib', File.dirname(__FILE__))
require 'ebps'
require 'ebps/util/mail'
def identify_module namespace, name
module_name = name.gsub /(^|_)./ do |match| match.upcase.delete '_' end
namespace.const_get module_name
end
begin
log = []
# Read modules
import_from = EBPS.config.import_from
export_to = EBPS.config.export_to
require "ebps/conversion/#{import_from}"
require "ebps/conversion/#{export_to}"
importer = identify_module EBPS::Conversion, import_from
exporter = identify_module EBPS::Conversion, export_to
# Import process
model = []
source_path = EBPS.config.source
inputs = ""
if File.ftype(source_path) == 'directory'
inputs << "Input files for conversion:"
Dir.foreach(source_path) do |name|
path = File.join source_path, name
if File.ftype(path) == 'file'
inputs << "\n" << path
File.open(path) do |fh|
model.concat importer.import(fh, path)
end
end
end
else
inputs << "Input file for conversion: " << source_path
source = File.open(source_path)
model = importer.import source, source_path
end
log.push inputs
# Export process
target = EBPS.config.target
exporter.export model, target
log.push sprintf("The Ebook %s was generated and stored in %s",
File.basename(target), File.dirname(target))
rescue StandardError => err
log.push err
ensure
EBPS::Util::Mail.notify log
end
Run converter
masa@masa ~/work $ ls -al drwxr-xr-x 7 masa masa 4096 8. Dez 16:00 ebps -rwxr-xr-x 1 masa masa 391877556 8. Dez 15:57 fachinfos.ch.oddb.yaml masa@masa ~/work/ebps $ ruby1.9 -I lib converter_for_firefox.rb config="config.yml"
Note
Result
Input file for conversion: /home/masa/work/fachinfos.ch.oddb.yaml NoMethodError: undefined method `title' for #<Syck::DomainType:0x00000000f122f0> /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:436:in `block (2 levels) in export' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:435:in `each' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:435:in `sort_by' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:435:in `block in export' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:484:in `call' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:484:in `with_tmpdir' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:431:in `export' /home/masa/work/ebps/lib/ebps/conversion/epub.rb:32:in `export' converter_for_firefox.rb:50:in `<main>'
Experiment
masa@masa ~/work/ebps $ ruby1.9 -I lib oddb_firefox config="config.yml"
Result
Input file for conversion: /home/masa/work/fachinfos.ch.oddb.yaml NoMethodError: undefined method `title' for #<Syck::DomainType:0x0000000293c568> /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:436:in `block (2 levels) in export' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:435:in `each' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:435:in `sort_by' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:435:in `block in export' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:484:in `call' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:484:in `with_tmpdir' /home/masa/work/ebps/lib/ebps/conversion/oebps.rb:431:in `export' /home/masa/work/ebps/lib/ebps/conversion/epub.rb:32:in `export' oddb_firefox:72:in `<main>'
Consideration
Experiment
config.yml
--- smtp_server: smtp.gmail.com smtp_user: xxx@ywesee.com smtp_pass: 'xxx' report_to: - mhatakeyama@ywesee.com #source: /home/masa/work/data.yml source: /home/masa/work/fachinfos.ch.oddb.yaml target: /home/masa/work/sample.epub #import_from: import_module_sample import_from: fachinfo_yaml export_to: epub language: de title: Firmenliste Schweiz
Run oddb_firefox again
masa@masa ~/work/ebps $ ruby1.9 -I lib oddb_firefox config="config.yml"
Result
NoMethodError: undefined method `metadata' for nil:NilClass /home/masa/work/ebps/lib/ebps/conversion/fachinfo_yaml.rb:8:in `block in <module:EBPS>' /usr/lib64/ruby/1.9.1/syck.rb:220:in `call' /usr/lib64/ruby/1.9.1/syck.rb:220:in `transfer' /usr/lib64/ruby/1.9.1/syck.rb:220:in `node_import' /usr/lib64/ruby/1.9.1/syck.rb:220:in `load_documents' /usr/lib64/ruby/1.9.1/syck.rb:220:in `each_document' /home/masa/work/ebps/lib/ebps/conversion/fachinfo_yaml.rb:83:in `import' oddb_firefox:58:in `<main>'
Experiment
ebps/lib/ebps/conversion/fachinfo_yaml.rb
require 'ebps/text/document'
require 'yaml'
module EBPS
YAML.add_domain_type 'oddb.org,2003', 'ODDB::Fachinfo' do |type, val|
if descr = val.delete('descriptions')
doc = descr[EBPS.config.language]
print "doc=", doc, "\n"
doc.metadata.update val
doc
end
end
...
Run again
masa@masa ~/work/ebps $ ruby1.9 -I lib oddb_firefox config="config.yml"