Class: Infinum::Omniauth::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/infinum/omniauth/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_routesObject

create_the_omniauth_controller



40
41
42
43
44
45
46
47
48
49
# File 'lib/generators/infinum/omniauth/install_generator.rb', line 40

def add_routes
	routes = "\n"\
			 "  get '/auth/:provider/callback', to: 'omniauth#success'\n"\
			 "  get '/auth/failure'	, to: 'omniauth#failure'\n"\
	 		 "  get '/login/:provider', to: 'omniauth#login', as:\"login\"\n"\
	 		 "  get '/logout', to: 'omniauth#logout', as:\"logout\"\n"

	append_to_file 	"config/routes.rb", routes, 
					after: Regexp.new("^.*" + Regexp.escape("Application.routes.draw do") + ".*$", Regexp::IGNORECASE)
end

#add_url_to_applicationObject

ask_for_configuration



18
19
20
21
22
# File 'lib/generators/infinum/omniauth/install_generator.rb', line 18

def add_url_to_application
	append_to_file 	"config/application.rb", 
					"\n	ENV['omniauth_infinum_url'] = \"http://accounts.infinum.co\#{Rails.env.development? ? '.dev' : ''}\"", 
					after: Regexp.new("^.*" + Regexp.escape("class Application < Rails::Application") + ".*$", Regexp::IGNORECASE)
end

#ask_for_configurationObject



12
13
14
15
16
# File 'lib/generators/infinum/omniauth/install_generator.rb', line 12

def ask_for_configuration
	@standalone = options[:standalone]
	return nil if options.no_config? 
	@standalone = yes? "Use OmniAuth Infinum as a standalone method of authentification?"
end

#create_a_config_fileObject

add_url_to_application



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/generators/infinum/omniauth/install_generator.rb', line 24

def create_a_config_file
	if File.exists? "config/initializers/omniauth.rb"
		# An initializer exists, jus append to it
		append_to_file 	"config/initializers/omniauth.rb",
						"\n  provider :infinum, INFINUM_APP_KEY, INFINUM_APP_SECRET\n", 
						after: Regexp.new("^.*" + Regexp.escape("Rails.application.config.middleware.use OmniAuth::Builder do") + ".*$", Regexp::IGNORECASE)
	else
		# Create a new initializer
		copy_file "rails/config/initializers/omniauth.rb", "config/initializers/omniauth.rb"
	end
end

#create_the_omniauth_controllerObject

create_a_config_file



36
37
38
# File 'lib/generators/infinum/omniauth/install_generator.rb', line 36

def create_the_omniauth_controller
	copy_file "rails/app/controllers/omniauth_controller.rb", "app/controllers/omniauth_controller.rb"
end

#prompt_userObject

add_routes



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/generators/infinum/omniauth/install_generator.rb', line 51

def prompt_user
	if @standalone
		system 	"rails g infinum:omniauth:auth --no_warnings;"\
				"rails g infinum:omniauth:config;"
		say "Installation finished!", :green
	else
		say "Installation finished!", :green
		say ""
		say "To use this gem as a standalone authentification method run:"
		say "  rails generate omniauth_infinum:auth"
		say ""
		say "To configure the authentification parameters run:"
		say "  rails generate omniauth_infinum:config"
	end
end