class Granule::Feature::DeviseSemantic

Constants

APPLICATION_HTML_ERB_PATH
APPLICATION_PATH
DEVELOPMENT_PATH
ROUTES_PATH

Public Class Methods

source_root() click to toggle source
# File lib/granule/feature/devise_semantic.rb, line 45
def self.source_root
  "#{File.dirname(__FILE__)}/devise_semantic"
end

Public Instance Methods

call() click to toggle source
# File lib/granule/feature/devise_semantic.rb, line 14
def call
  check_files

  copy_file 'devise.rb', './config/initializers/devise.rb'
  copy_file 'user.rb', './app/models/user.rb'
  copy_file 'devise.en.yml', './config/locales/devise.en.yml'
  copy_file 'devise_create_users.rb', "./db/migrate/#{Time.now.strftime('%Y%m%d%H%m%S')}_devise_create_users.rb"

  uncomment_lines APPLICATION_PATH, %r{sprockets/railtie}
  directory 'views', './app/views'
  insert_into_file ROUTES_PATH, "\tdevise_for :users\n",
                   after: "Rails.application.routes.draw do\n"
  insert_into_file APPLICATION_HTML_ERB_PATH,
                   "\t\t<% if current_user %>\n"\
                   "\t\t\t<div class=\"ui pointing secondary menu\">\n"\
                   "\t\t\t\t<a class=\"active item\" href=\"/\">Home</a>\n"\
                   "\t\t\t\t<div class=\"right menu\">\n"\
                   "\t\t\t\t\t<%= link_to 'Logout', destroy_user_session_url, "\
                   "method: :delete, class: 'item' %>\n"\
                   "\t\t\t\t</div>\n"\
                   "\t\t\t</div>\n"\
                   "\t\t<% end %>\n",
                   after: "<body>\n"

  insert_into_file DEVELOPMENT_PATH,
                   "\tconfig.action_mailer.default_url_options = { host: 'localhost', port: 3000 }\n"\
                   "\tconfig.action_mailer.delivery_method = :letter_opener_web\n",
                   after: "Rails.application.configure do\n"
end

Private Instance Methods

check_files() click to toggle source
# File lib/granule/feature/devise_semantic.rb, line 51
def check_files
  [APPLICATION_HTML_ERB_PATH, APPLICATION_PATH, DEVELOPMENT_PATH, ROUTES_PATH].each do |file_path|
    raise Granule::Error, "#{file_path} doesn't exist" unless File.file?(file_path)
  end
end