I'd like to view Devise::RegistrationsController
(out of curiosity, as I'll inherit from it as shown here)
I tried the obvious rails c
then puts Devise::RegistrationsController
and a few variations (e.g. .to_s
) but no luck..
Is it available somewhere for viewing, and can I print it to the rails console to view it?
Pry which is a replacement console for IRB has built in source browsing.
Install the pry-rails
gem and start the console with rails c
and it will start up Pry instead of IRB.
You can then use show-source
to view the source code of the gem right from the console:
max@pop-os ~/p/sandbox> rails c
Running via Spring preloader in process 29286
Loading development environment (Rails 6.0.2.1)
[1] pry(main)> show-source Devise::RegistrationsController
From: /home/linuxbrew/.linuxbrew/lib/ruby/gems/2.7.0/gems/devise-4.7.2/app/controllers/devise/registrations_controller.rb @ line 3:
Class name: Devise::RegistrationsController
Number of monkeypatches: 4. Use the `-a` option to display all available monkeypatches
Number of lines: 166
class Devise::RegistrationsController < DeviseController
prepend_before_action :require_no_authentication, only: [:new, :create, :cancel]
prepend_before_action :authenticate_scope!, only: [:edit, :update, :destroy]
prepend_before_action :set_minimum_password_length, only: [:new, :edit]
# GET /resource/sign_up
def new
build_resource
yield resource if block_given?
respond_with resource
end
# POST /resource
def create
build_resource(sign_up_params)
resource.save
yield resource if block_given?
if resource.persisted?
if resource.active_for_authentication?
set_flash_message! :notice, :signed_up
sign_up(resource_name, resource)
respond_with resource, location: after_sign_up_path_for(resource)
else
set_flash_message! :notice, :"signed_up_but_#{resource.inactive_message}"
expire_data_after_sign_in!
respond_with resource, location: after_inactive_sign_up_path_for(resource)
end
else
clean_up_passwords resource
set_minimum_password_length
respond_with resource
end
end
:
If you don't want to depend on Pry and stick with IRB you can cobble something together with Method#source_location
and IO.readlines. But IMHO it seems like a waste of time