Class: ChinaRegions::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/china_regions/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/generators/china_regions/install_generator.rb', line 21

def self.next_migration_number(dirname)
  if ActiveRecord::Base.timestamped_migrations
    Time.now.utc.strftime('%Y%m%d%H%M%S')
  else
    format('%.3d', (current_migration_number(dirname) + 1))
  end
end

Instance Method Details

#add_rails_version_for_migrationObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/china_regions/install_generator.rb', line 29

def add_rails_version_for_migration
  rails_version = Gem.loaded_specs["activesupport"].version
  return if rails_version < Gem::Version.create('4.0')

  migration_version = rails_version.to_s.split(/\./)[0..1].join('.')
  filename  = 'db/migrate/*create_china_regions_tables.rb'
  kclass    = 'ActiveRecord::Migration'

  system(`grep -rl "#{kclass}$" #{filename} | xargs sed -i "" "s/#{kclass}/#{kclass}[#{migration_version}]/g"`)
end

#copy_localesObject



14
15
16
17
18
19
# File 'lib/generators/china_regions/install_generator.rb', line 14

def copy_locales
  %w[en zh].each do |locale|
    config_file = "config/locales/regions.#{locale}.yml"
    copy_file "../../../../config/locales/china_regions.#{locale}.yml", config_file unless File.exist?(config_file)
  end
end

#copy_migrationObject



8
9
10
11
12
# File 'lib/generators/china_regions/install_generator.rb', line 8

def copy_migration
  Dir['db/migrate/*_china_regions_tables.rb'].each { |file| File.delete(file) }

  migration_template 'migration.rb', 'db/migrate/create_china_regions_tables.rb'
end