class RareMap::Mapper
RareMap::Mapper
converts relational databases into ActiveRecord files. @author Wei-Ming Wu
Public Class Methods
Public Instance Methods
mapping()
click to toggle source
Converts relational databases into ActiveRecord files by given RareMap
config yaml file.
# File lib/rare_map.rb, line 29 def mapping @db_profiles = load_config @rails_root ? File.join(@rails_root, 'config') : '.' @db_profiles.each do |profile| profile.schema = read_schema profile profile.tables = parse_schema profile.schema end @models = build_models @db_profiles generate_models @models, @rails_root if @rails_root puts '*****************************************************************' puts ' Activerecord models are generated. Enjoy it!' puts '*****************************************************************' else puts '*****************************************************************' puts ' A demo.rb is generated.' puts '*****************************************************************' generate_demo unless File.exist?('demo.rb') end @models rescue ConfigNotFoundError => e puts "Please put your database config in `#{'config/' if @rails_root}rare_map.yml`." end
Private Instance Methods
generate_demo()
click to toggle source
# File lib/rare_map.rb, line 55 def generate_demo f = File.new('demo.rb', 'w') f.write "require 'active_record'\n" f.write "require 'activerecord-jdbc-adapter' if RUBY_PLATFORM == 'java'\n" f.write "Dir[File.dirname(__FILE__) + '/app/models/**/*_base.rb'].each { |file| require file }\n" f.write "Dir[File.dirname(__FILE__) + '/app/models/**/*.rb'].each { |file| require file }\n" f.close end