class BlogIo::Generators::InstallGenerator

Public Instance Methods

add_models_data(source = Rails.root, user_data = @get_data) click to toggle source
# 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() click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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