Class: Orcid::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Orcid::InstallGenerator
- Defined in:
- lib/generators/orcid/install/install_generator.rb
Overview
If you want to quickly add Orcid integration into your application. This assumes the use of the ubiqutous Devise gem.
Instance Method Summary collapse
- #copy_locale ⇒ Object
- #create_application_yml ⇒ Object
- #install_devise_multi_auth ⇒ Object
- #install_initializer ⇒ Object
- #install_migrations ⇒ Object
- #migrate_the_database ⇒ Object
- #mount_orcid_engine ⇒ Object
- #update_devise_omniauth_provider ⇒ Object
- #update_devise_user ⇒ Object
Instance Method Details
#copy_locale ⇒ Object
35 36 37 38 39 40 |
# File 'lib/generators/orcid/install/install_generator.rb', line 35 def copy_locale copy_file( '../../../../../config/locales/orcid.en.yml', 'config/locales/orcid.en.yml' ) end |
#create_application_yml ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/generators/orcid/install/install_generator.rb', line 12 def create_application_yml unless [:skip_application_yml] create_file 'config/application.yml' do orcid_app_id = ask('What is your Orcid Client ID?') orcid_app_secret = ask('What is your Orcid Client Secret?') [ '', "ORCID_APP_ID: #{orcid_app_id}", "ORCID_APP_SECRET: #{orcid_app_secret}", '' ].join("\n") end end end |
#install_devise_multi_auth ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/generators/orcid/install/install_generator.rb', line 27 def install_devise_multi_auth if [:devise] generate 'devise:multi_auth:install --install_devise' else generate 'devise:multi_auth:install' end end |
#install_initializer ⇒ Object
79 80 81 82 83 84 |
# File 'lib/generators/orcid/install/install_generator.rb', line 79 def install_initializer template( 'orcid_initializer.rb.erb', 'config/initializers/orcid_initializer.rb' ) end |
#install_migrations ⇒ Object
42 43 44 |
# File 'lib/generators/orcid/install/install_generator.rb', line 42 def install_migrations rake 'orcid:install:migrations' end |
#migrate_the_database ⇒ Object
75 76 77 |
# File 'lib/generators/orcid/install/install_generator.rb', line 75 def migrate_the_database rake 'db:migrate' end |
#mount_orcid_engine ⇒ Object
71 72 73 |
# File 'lib/generators/orcid/install/install_generator.rb', line 71 def mount_orcid_engine route 'mount Orcid::Engine => "/orcid"' end |
#update_devise_omniauth_provider ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/generators/orcid/install/install_generator.rb', line 54 def update_devise_omniauth_provider 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 |
#update_devise_user ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/generators/orcid/install/install_generator.rb', line 46 def update_devise_user config_code = ', :omniauthable, :omniauth_providers => [:orcid]' insert_into_file( 'app/models/user.rb', config_code, after: /:validatable/, verbose: false ) end |