class OpalORM::SchemaManager

Public Class Methods

comment_string() click to toggle source
# File lib/opal_orm/schema_manager.rb, line 42
    def self.comment_string
      <<-RB
# Example usage:
# create_table 'table_name' do |t|
#   t.string column_name
# end
#
# The primary key will be created automatically, with name 'id'.
      RB
    end
create_table_from_name(table_name) click to toggle source
# File lib/opal_orm/schema_manager.rb, line 34
    def self.create_table_from_name(table_name)
      <<-RB
create_table \'#{table_name}\' do |t|

end
      RB
    end
generate(file_name, *table_names) click to toggle source
# File lib/opal_orm/schema_manager.rb, line 8
    def self.generate(file_name, *table_names)
      schema_path = File.join(Util.db_path, "#{file_name}.rb")
      if File.exist?(schema_path)
        raise FileExistsError, "#{file_name}.rb already exists. Please choose a different filename."
      else
        puts "Creating file 'db/#{file_name}.rb' ..."
        File.open(schema_path, "w+") do |f|
          contents = []
          if table_names.empty?
            contents << <<-RB
create_table("table_name") do |t|
end
            RB
          else
            contents += table_names.map do |table_name|
              puts "adding table #{table_name} ..."
              create_table_from_name(table_name)
          end
            contents.unshift(comment_string)
          end
          f.write(contents.join)
          puts "Done."
        end
      end
    end

Public Instance Methods

create_table(table_name, &prc) click to toggle source
# File lib/opal_orm/schema_manager.rb, line 53
def create_table(table_name, &prc)
  q = QueryBuilder.create_table_query(table_name, &prc)


  DBConnection.execute(q)
end