Class: Orcid::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#install_devise_multi_authObject



9
10
11
12
13
14
15
# File 'lib/generators/orcid/install/install_generator.rb', line 9

def install_devise_multi_auth
  if options[:devise]
    generate 'devise:multi_auth:install --install_devise'
  else
    generate 'devise:multi_auth:install'
  end
end

#install_initializerObject



42
43
44
# File 'lib/generators/orcid/install/install_generator.rb', line 42

def install_initializer
  template 'orcid_initializer.rb.erb', 'config/orcid_initializer.rb'
end

#install_migrationsObject



17
18
19
# File 'lib/generators/orcid/install/install_generator.rb', line 17

def install_migrations
  rake "orcid:install:migrations"
end

#install_omniauth_strategiesObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/generators/orcid/install/install_generator.rb', line 21

def install_omniauth_strategies
  config_code = ", :omniauthable, :omniauth_providers => [:orcid]"
  insert_into_file 'app/models/user.rb', config_code, { :after => /:validatable/, :verbose => false }

  init_code = %(
    config.omniauth(:orcid, Orcid.provider.id, Orcid.provider.secret,
                    scope: Orcid.provider.authentication_scope,
                    client_options: {
                      site: Orcid.provider.site_url,
                      authorize_url: Orcid.provider.authorize_url,
                      token_url: Orcid.provider.token_url
                    }
                    )
  )
  insert_into_file 'config/initializers/devise.rb', init_code, {after: /Devise\.setup.*$/, verbose: true}
end

#mount_orcid_engineObject



38
39
40
# File 'lib/generators/orcid/install/install_generator.rb', line 38

def mount_orcid_engine
  route 'mount Orcid::Engine => "/orcid"'
end