⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data.rake

📁 A Hotel Management System based on Ruby on Rails.
💻 RAKE
字号:
# Reads a CSV file from the data/ dir.def csv_file filename  path = File.join File.dirname( __FILE__ ), '../data', "#{filename}.csv"  File.open( path ).readend# Loads CSV data into the appropriate table.def load_from_csv table_name, data  column_clause = nil  is_header     = false  cnx           = ActiveRecord::Base.connection  ActiveRecord::Base.silence do    reader = CSV::Reader.create data        columns = reader.shift.map { |column_name| cnx.quote_column_name(column_name) }    column_clause = columns.join(', ')        reader.each do |row|      next if row.first.nil? # skip blank lines      raise "No table name defined" unless table_name      raise "No header defined"     unless column_clause      values_clause = row.map { |v| cnx.quote(v).gsub('\\n', "\n").gsub('\\r', "\r") }.join(', ')      sql = "INSERT INTO #{table_name} (#{column_clause}) VALUES (#{values_clause})"      cnx.insert sql    end  endendnamespace :globalize do  desc 'Reset the Globalize data'  task :reset => [ :teardown, :setup ]    desc 'Create Globalize database tables and load locale data'  task :setup => [ :create_tables, :load_locale_data ]    desc 'Remove all globalize data'  task :teardown => :drop_tables    desc 'Create Globalize database tables'  task :create_tables => :environment do    raise "Task unavailable to this database (no migration support)" unless ActiveRecord::Base.connection.supports_migrations?    ActiveRecord::Base.connection.create_table :globalize_countries, :force => true do |t|      t.column :code,                   :string,  :limit => 2      t.column :english_name,           :string      t.column :date_format,            :string      t.column :currency_format,        :string      t.column :currency_code,          :string,  :limit => 3      t.column :thousands_sep,          :string,  :limit => 2      t.column :decimal_sep,            :string,  :limit => 2      t.column :currency_decimal_sep,   :string,  :limit => 2      t.column :number_grouping_scheme, :string    end    ActiveRecord::Base.connection.add_index :globalize_countries, :code        ActiveRecord::Base.connection.create_table :globalize_translations, :force => true do |t|      t.column :type,                   :string      t.column :tr_key,                 :string      t.column :table_name,             :string      t.column :item_id,                :integer      t.column :facet,                  :string      t.column :language_id,            :integer      t.column :pluralization_index,    :integer      t.column :text,                   :text    end    ActiveRecord::Base.connection.add_index :globalize_translations, [ :tr_key, :language_id ]    ActiveRecord::Base.connection.add_index :globalize_translations, [ :table_name, :item_id, :language_id ]        ActiveRecord::Base.connection.create_table :globalize_languages, :force => true do |t|      t.column :iso_639_1,              :string,  :limit => 2      t.column :iso_639_2,              :string,  :limit => 3      t.column :iso_639_3,              :string,  :limit => 3      t.column :rfc_3066,               :string      t.column :english_name,           :string      t.column :english_name_locale,    :string      t.column :english_name_modifier,  :string      t.column :native_name,            :string      t.column :native_name_locale,     :string      t.column :native_name_modifier,   :string      t.column :macro_language,         :boolean      t.column :direction,              :string      t.column :pluralization,          :string      t.column :scope,                  :string,  :limit => 1    end    ActiveRecord::Base.connection.add_index :globalize_languages, :iso_639_1    ActiveRecord::Base.connection.add_index :globalize_languages, :iso_639_2      ActiveRecord::Base.connection.add_index :globalize_languages, :iso_639_3      ActiveRecord::Base.connection.add_index :globalize_languages, :rfc_3066        # Dirty hack to force initalization of pg indexes    if ActiveRecord::Base.connection.adapter_name == 'PostgreSQL'      ActiveRecord::Base.connection.execute "SELECT nextval('public.globalize_countries_id_seq')"      ActiveRecord::Base.connection.execute "SELECT nextval('public.globalize_translations_id_seq')"      ActiveRecord::Base.connection.execute "SELECT nextval('public.globalize_languages_id_seq')"    end  end    desc 'Drops Globalize database tables'  task :drop_tables => :environment do    raise "Task unavailable to this database (no migration support)" unless ActiveRecord::Base.connection.supports_migrations?    ActiveRecord::Base.connection.drop_table :globalize_countries    ActiveRecord::Base.connection.drop_table :globalize_translations    ActiveRecord::Base.connection.drop_table :globalize_languages  end    desc 'Load locale data'  task :load_locale_data => :environment do    load_from_csv 'globalize_countries',    csv_file( :country_data )    load_from_csv 'globalize_languages',    csv_file( :language_data )    load_from_csv 'globalize_translations', csv_file( :translation_data )  end    desc 'Purge locale data'  task :purge_locale_data => :environment do    Globalize::Country.destroy_all    Globalize::Language.destroy_all    Globalize::Translation.destroy_all  endend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -