class MobileWorkflow::Cli::AppBuilder
Public Instance Methods
ability_generator()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 51 def ability_generator copy_file 'ability.rb', 'app/models/ability.rb' end
active_storage()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 55 def active_storage rails_command 'active_storage:install' copy_file 'storage.s3.yml', 'config/storage.yml' gsub_file 'config/environments/production.rb', 'config.active_storage.service = :local', 'config.active_storage.service = :amazon' end
administrate_generator()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 32 def administrate_generator generate 'administrate:install' file 'app/assets/config/manifest.js', <<-CODE //= link administrate/application.css //= link administrate/application.js CODE file 'app/controllers/admin/application_controller.rb', <<-CODE module Admin class ApplicationController < Administrate::ApplicationController http_basic_authenticate_with(name: ENV["ADMIN_USER"], password: ENV["ADMIN_PASSWORD"]) end end CODE generate 'administrate:routes' end
dokku(dokku_host)
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 111 def dokku(dokku_host) @dokku_host = dokku_host dokku_backend.create dokku_backend.configure_activestorage if options[:s3_storage] dokku_backend.deploy dokku_backend.sync_dotenv end
factory_bot()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 20 def factory_bot inject_into_file 'spec/rails_helper.rb', after: "RSpec.configure do |config|\n" do "\tconfig.include FactoryBot::Syntax::Methods\n" end end
format_source()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 68 def format_source `rufo .` end
gemfile()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 7 def gemfile template 'Gemfile.erb', 'Gemfile' end
generate_dot_env()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 72 def generate_dot_env admin_user = 'admin' admin_password = SecureRandom.base64(12) file '.env', <<-CODE ADMIN_USER=#{admin_user} ADMIN_PASSWORD=#{admin_password} CODE end
git_commit(message = 'Initial commit')
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 82 def git_commit(message = 'Initial commit') git add: "." git commit: %Q{ -m '#{message}'} end
heroku()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 103 def heroku heroku_backend.create heroku_backend.configure_activestorage if options[:s3_storage] heroku_backend.deploy heroku_backend.seed_db heroku_backend.sync_dotenv end
migrate_db()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 26 def migrate_db rails_command("db:drop") rails_command("db:create") rails_command("db:migrate") end
mobile_workflow_generator(open_api_spec_path)
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 61 def mobile_workflow_generator(open_api_spec_path) copy_file open_api_spec_path, 'config/open_api_spec.json' gen_opts = "" gen_opts += "--doorkeeper_oauth" if options[:doorkeeper_oauth] generate "mobile_workflow:install #{gen_opts}" end
procfiles()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 11 def procfiles copy_file 'Procfile', 'Procfile' copy_file 'Procfile.dev', 'Procfile.dev' end
readme()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 3 def readme template 'README.md.erb', 'README.md' end
rspec_generator()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 16 def rspec_generator generate 'rspec:install' end
s3_backend(region)
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 87 def s3_backend(region) @region = region aws_backend.create aws_backend.write_env if options[:heroku] heroku_backend.sync_dotenv sleep 10 # Wait for the server to restart aws_backend.create_topic_subscription(heroku_backend.notifications_endpoint) elsif options[:dokku] dokku_backend.sync_dotenv aws_backend.create_topic_subscription(dokku_backend.notifications_endpoint) end end
Private Instance Methods
aws_backend()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 120 def aws_backend @aws_backend ||= AwsBackend.new(app_name: app_name, region: @region) end
dokku_backend()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 124 def dokku_backend @dokku_backend ||= DokkuBackend.new(app_name: app_name, dokku_host: @dokku_host) end
heroku_backend()
click to toggle source
# File lib/mobile_workflow/cli/app_builder.rb, line 128 def heroku_backend @heroku_backend ||= HerokuBackend.new(app_name: app_name) end