class SinatrabaseFs::StructureMe
Public Instance Methods
gen()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 3 def gen make_dirs make_dir_files write_to_app_controllers_app_rb write_to_app_models_model_rb write_to_app_views_erb_file_erb write_to_config_environment_rb write_to_config_ru write_to_gemfile write_to_rakefile end
make_dir_files()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 23 def make_dir_files %w(app/controllers/app.rb app/models/model.rb app/views/erb_file.erb config/environment.rb spec/test.rb config.ru Gemfile Rakefile README.md).each do |file| FileUtils.touch file end end
make_dirs()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 15 def make_dirs FileUtils.cd(Dir.pwd) do |dir| %w(app app/controllers app/models app/views config public public/css public/images public/js db/migrate spec).each do |directory| FileUtils.mkdir_p(directory) end end end
write_to_app_controllers_app_rb()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 29 def write_to_app_controllers_app_rb FileUtils.cd(Dir.pwd) do |dir| file = File.open("app/controllers/app.rb", 'w') file.puts "require_relative 'config/environment'\n\nclass App < Sinatra::Base\nend" file.close end end
write_to_app_models_model_rb()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 37 def write_to_app_models_model_rb FileUtils.cd(Dir.pwd) do |dir| file = File.open("app/models/model.rb", 'w') file.puts "#WRITE YOUR MODEL HERE" file.close end end
write_to_app_views_erb_file_erb()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 45 def write_to_app_views_erb_file_erb FileUtils.cd(Dir.pwd) do |dir| file = File.open("app/views/erb_file.erb", 'w') file.puts "#WRITE YOUR TEMPLATE HERE" file.close end end
write_to_config_environment_rb()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 53 def write_to_config_environment_rb FileUtils.cd(Dir.pwd) do |dir| file = File.open("config/environment.rb", 'w') file.puts "ENV['SINATRA_ENV'] ||= \"development\"\n\nrequire 'bundler/setup'\nBundler.require(:default, ENV['SINATRA_ENV'])\n\n# SET CONNECTION TO DATABASE\ndef fi_check_migration\n\tbegin\n\t\tActiveRecord::Migration.check_pending!\n\trescue ActiveRecord::PendingMigrationError\n\t\traise ActiveRecord::PendingMigrationError.new \"Migrations are pending.\nTo resolve this issue, run: \nrake db:migrate SINATRA_ENV=\#{ENV['SINATRA_ENV']}\"\n\tend\nend\n\nActiveRecord::Base.establish_connection(\n\t:adapter => \"sqlite3\",\n\t:database => \"db/\#{ENV['SINATRA_ENV']}.sqlite\"\n)\n\nrequire_all 'app'" file.close end end
write_to_config_ru()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 61 def write_to_config_ru FileUtils.cd(Dir.pwd) do |dir| file = File.open("config.ru", 'w') file.puts "require './config/environment'\n\nbegin\n\tfi_check_migration\n\n\tuse Rack::MethodOverride\n\n\trun App # or whatever the app controller module/class name you want eg. ApplicationController\nrescue ActiveRecord::PendingMigrationError => err\n\tSTDERR.puts err\n\texit 1\nend" file.close end end
write_to_gemfile()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 69 def write_to_gemfile FileUtils.cd(Dir.pwd) do |dir| file = File.open("Gemfile", 'w') file.puts "source 'https://rubygems.org'\n\ngem 'sinatra'\ngem 'thin'\ngem 'require_all'\ngem 'activerecord', '5.2'\ngem 'sinatra-activerecord'\ngem 'database_cleaner'\ngem 'rake'\n\ngroup :development do\n\tgem 'capybara'\n\tgem 'shotgun'\n\tgem 'pry'\n\tgem 'tux'\n\tgem 'sqlite3', '~> 1.3.6'\nend" file.close end end
write_to_rakefile()
click to toggle source
# File lib/sinatrabase_fs/structure_me.rb, line 77 def write_to_rakefile FileUtils.cd(Dir.pwd) do |dir| file = File.open("Rakefile", 'w') file.puts "require \"./config/environment\"\nrequire \"sinatra/activerecord/rake\"" file.close end end