Sha256: 08aafe2f8413650848c7f893d0375eda0bace1ca00f014e876f4ce2dc4ecb9e6

Contents?: true

Size: 1.46 KB

Versions: 2

Compression:

Stored size: 1.46 KB

Contents

# encoding: utf-8

require 'thor'

module Daiku
  class Plugins
    class DatabaseSql
      class CLI < ::Thor::Group
        include ::Thor::Actions
        argument :app
        class_option :'db-name', desc: 'development database name'
        class_option :'db-url',  desc: 'development database connection url'

        def self.source_root
          File.expand_path('../', __FILE__)
        end

        def dotenv
          dbname  = options.fetch(:'db-url') { app }
          dburl = options.fetch(:'db-name') { "postgres://localhost/#{app}" }
          append_to_file "#{app}/.env", "DATABASE_NAME=#{dbname}\n"
          append_to_file "#{app}/.env", "DATABASE_URL=#{dburl}\n"
        end

        def config
          template('_templates/db_helper.rb.tt', "#{app}/spec/db_helper.rb")
        end

        def gemfile
          insert_into_file "#{app}/Gemfile", "  gem 'database_cleaner'\n", after: "group :test do\n"
        end

        def spechelper
          insert_into_file "#{app}/spec/spec_helper.rb", "DatabaseCleaner.strategy = :truncation\n", after: "Bundler.setup(:test)\n"
        end

        def travisyml
          insert_into_file "#{app}/.travis.yml", "  - postgresql\n", after: "services:\n"
          insert_into_file "#{app}/.travis.yml", "  postgresql: 9.3\n", after: "addons:\n"
          insert_into_file "#{app}/.travis.yml", %Q(  - psql -c 'create database "#{app}_test";' -U postgres\n), after: "before_script:\n"
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
daiku-0.2.0 lib/daiku/plugins/database-sql/cli.rb
daiku-0.1.1 lib/daiku/plugins/database-sql/cli.rb