class GraphqlDevise::InstallGenerator
Public Instance Methods
execute_devise_installer()
click to toggle source
# File lib/generators/graphql_devise/install_generator.rb, line 12 def execute_devise_installer generate 'devise:install' end
execute_dta_installer()
click to toggle source
# File lib/generators/graphql_devise/install_generator.rb, line 16 def execute_dta_installer # Necessary in case of a re-run of the generator, for DTA to detect concerns already included if File.exist?(File.expand_path("app/models/#{user_class.underscore}.rb", destination_root)) gsub_file( "app/models/#{user_class.underscore}.rb", 'GraphqlDevise::Concerns::Model', 'DeviseTokenAuth::Concerns::User' ) end gsub_file( 'app/controllers/application_controller.rb', 'GraphqlDevise::Concerns::SetUserByToken', 'DeviseTokenAuth::Concerns::SetUserByToken' ) generate 'devise_token_auth:install', "#{user_class} #{mount_path}" end
mount_in_schema()
click to toggle source
# File lib/generators/graphql_devise/install_generator.rb, line 77 def mount_in_schema return if options['mount'] == 'separate_route' inject_into_file "app/graphql/#{options['mount'].underscore}.rb", after: "< GraphQL::Schema\n" do <<-RUBY use GraphqlDevise::SchemaPlugin.new( query: Types::QueryType, mutation: Types::MutationType, resource_loaders: [ GraphqlDevise::ResourceLoader.new(#{user_class}) ] ) RUBY end end
mount_resource_route()
click to toggle source
# File lib/generators/graphql_devise/install_generator.rb, line 34 def mount_resource_route routes_file = 'config/routes.rb' dta_route = "mount_devise_token_auth_for '#{user_class}', at: '#{mount_path}'" if options['mount'] != 'separate_route' gsub_file(routes_file, /^\s+#{Regexp.escape(dta_route + "\n")}/i, '') else gem_route = "mount_graphql_devise_for '#{user_class}', at: '#{mount_path}'" if file_contains_str?(routes_file, gem_route) gsub_file(routes_file, /^\s+#{Regexp.escape(dta_route + "\n")}/i, '') say_status('skipped', "Routes already exist for #{user_class} at #{mount_path}") else gsub_file(routes_file, /#{Regexp.escape(dta_route)}/i, gem_route) end end end
replace_controller_concern()
click to toggle source
# File lib/generators/graphql_devise/install_generator.rb, line 61 def replace_controller_concern gsub_file( 'app/controllers/application_controller.rb', /^\s+include DeviseTokenAuth::Concerns::SetUserByToken/, ' include GraphqlDevise::Concerns::SetUserByToken' ) end
replace_model_concern()
click to toggle source
# File lib/generators/graphql_devise/install_generator.rb, line 53 def replace_model_concern gsub_file( "app/models/#{user_class.underscore}.rb", /^\s+include DeviseTokenAuth::Concerns::User/, ' include GraphqlDevise::Concerns::Model' ) end
set_change_headers_on_each_request_false()
click to toggle source
# File lib/generators/graphql_devise/install_generator.rb, line 69 def set_change_headers_on_each_request_false gsub_file( 'config/initializers/devise_token_auth.rb', '# config.change_headers_on_each_request = true', 'config.change_headers_on_each_request = false' ) end
Private Instance Methods
file_contains_str?(filename, regex_str)
click to toggle source
# File lib/generators/graphql_devise/install_generator.rb, line 95 def file_contains_str?(filename, regex_str) path = File.join(destination_root, filename) File.read(path) =~ /(#{Regexp.escape(regex_str)})/i end