masao/fuwatto

View on GitHub
database.rb

Summary

Maintainability
A
0 mins
Test Coverage
#!/usr/bin/env ruby
# $Id$

module Fuwatto
   class Database
      DATABASE_NAME = "md.db"
      CREATE_TABLE = <<-EOF
    CREATE TABLE IF NOT EXISTS md (
        indexed INTEGER,
        identifier TEXT,
        description TEXT,
        title TEXT,
        jtitle TEXT,
        creator TEXT,
        alternative TEXT,
        subject TEXT,
        NIIsubject TEXT,
        publisher TEXT,
        contributor TEXT,
        type TEXT,
        source TEXT
           );
    EOF
      def initialize( klass )
         @klass = klass
         if @klass.name == "DBI"
            @db = @klass.connect(DATABASE_NAME)
         elsif @klass.name == "SQLite3::Database"
            @db = @klass.new(DATABASE_NAME)
         else
            raise "unknown dbtype: #{klass}"
         end
         @db.execute( CREATE_TABLE )
         #STDERR.puts "INFO: #{ DATABASE_NAME.inspect } not found. New database is created."
      end
      def method_missing( name, args = nil, &block )
         if @db.respond_to?( name )
            if args.nil?
               @db.send( name, &block )
            else
               @db.send( name, *args, &block )
            end
         else
            raise NameError::new( "method_missing: #{name}: #{args}" )
         end
      end
   end
end