module RailsGrpc::Dependencies
Public Class Methods
cache_classes?()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 42 def cache_classes? ::Rails.application.config.cache_classes end
clear_dependencies!()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 72 def clear_dependencies! @@loaded = false end
find_grpc_model_files()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 34 def find_grpc_model_files Dir.glob(File.join(rails_root, grpc_model_dir, "**/*.rb")) end
find_grpc_service_files()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 38 def find_grpc_service_files Dir.glob(File.join(rails_root, grpc_service_dir, "**/*.rb")) end
find_proto_lib_files()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 17 def find_proto_lib_files Dir.glob(File.join(rails_root, proto_lib_dir, "**/*.rb")) end
find_proto_message_definitions()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 21 def find_proto_message_definitions messages = find_proto_lib_files.reject do |t| File.basename(t).include?("_services_pb.rb") end messages.sort_by { |m| m.include?("_model_pb.rb") ? 0 : 1 } # FIXME: temporary patch to load model first end
find_proto_service_definitions()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 28 def find_proto_service_definitions find_proto_lib_files.select do |t| File.basename(t).include?("_services_pb.rb") end end
load_and_watch(file_path, const_name)
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 76 def load_and_watch(file_path, const_name) watch_file_and_dir(file_path) unless self.cache_classes? ActiveSupport::Dependencies.require_or_load(file_path, const_name.to_sym) end
load_dependencies!()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 46 def load_dependencies! return if @@loaded find_proto_message_definitions.each do |f| parent_const_name = File.basename(f).gsub(".", "::").split("::")[0].classify load_and_watch(f, parent_const_name) end find_proto_service_definitions.each do |f| parent_const_name = File.basename(f).gsub(".", "::").split("::")[0].classify load_and_watch(f, parent_const_name) end find_grpc_model_files.each do |f| parent_const_name = File.basename(f).gsub(".", "::").split("::")[0].classify load_and_watch(f, parent_const_name) end find_grpc_service_files.each do |f| parent_const_name = File.basename(f).gsub(".", "::").split("::")[0].classify load_and_watch(f, parent_const_name) end @@loaded = true end
rails_root()
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 13 def rails_root ::Rails.root end
watch_file_and_dir(file_path)
click to toggle source
# File lib/rails_grpc/dependencies.rb, line 82 def watch_file_and_dir(file_path) dir_path = File.dirname(file_path) ::Rails.application.config.watchable_dirs[dir_path] = [:rb] unless ::Rails.application.config.watchable_files.include?(file_path) ::Rails.application.config.watchable_files.concat([file_path]) end end