Class: BlogIo::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- BlogIo::Generators::InstallGenerator
- Defined in:
- lib/generators/blog_io/install_generator.rb
Instance Method Summary collapse
- #add_models_data(source = Rails.root, user_data = @get_data) ⇒ Object
- #blog_settings ⇒ Object
- #check_db_connection(source = Rails.root) ⇒ Object
- #create_records ⇒ Object
- #get_user_data ⇒ Object
Instance Method Details
#add_models_data(source = Rails.root, user_data = @get_data) ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/generators/blog_io/install_generator.rb', line 59 def add_models_data(source = Rails.root, user_data = @get_data) user_data.each do |name, field| field_name = field['name'] @user_data, @name, @field = user_data, name, field_name template "#{field_name}_template.rb","#{source}/app/models/#{field_name}.rb" end template "db_connector_template.rb","#{source}/lib/blog_db_connect.rb" end |
#blog_settings ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/generators/blog_io/install_generator.rb', line 21 def blog_settings if @connection_flag Rails::Generators.invoke("model", [ "BlogSettings", "original_table_name:string", "model_name:string", "primary_key_field:string", "--no-test-framework"] ) %x[rake db:migrate] end end |
#check_db_connection(source = Rails.root) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/generators/blog_io/install_generator.rb', line 12 def check_db_connection(source = Rails.root) @data = YAML.load_file "#{source}/config/database.yml" ActiveRecord::Base.establish_connection @data['blog_db_connector'] ActiveRecord::Base.connection @connection_flag = ActiveRecord::Base.connected? ActiveRecord::Base.remove_connection if @connection_flag @connection_flag end |
#create_records ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/generators/blog_io/install_generator.rb', line 45 def create_records BlogSettings.establish_connection(@data['#{Rails.env}']) if BlogSettings.all.empty? @get_data.each do |name, field| BlogSettings.create(original_table_name: name, model_name: field['name'], primary_key_field: field['pkey']) end else say(BlogIo::RECORD_CHECK) end BlogSettings.remove_connection end |
#get_user_data ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/generators/blog_io/install_generator.rb', line 34 def get_user_data @get_data = {} BlogIo::REMOTE_TABLES.each do |table_name| name = ask("Enter model name for #{table_name}:") pkey = ask("Enter primary key for #{table_name}:") name = table_name if name.blank? pkey = "id" if pkey.blank? @get_data[table_name] = {'name' => name, 'pkey' => pkey} end end |