class ModuleSync::SourceCode
Provide methods to retrieve source code attributes
Attributes
given_name[R]
options[R]
Public Class Methods
new(given_name, options)
click to toggle source
# File lib/modulesync/source_code.rb, line 12 def initialize(given_name, options) @options = Util.symbolize_keys(options || {}) @given_name = given_name return unless given_name.include?('/') @repository_name = given_name.split('/').last @repository_namespace = given_name.split('/')[0...-1].join('/') end
Public Instance Methods
git_service()
click to toggle source
# File lib/modulesync/source_code.rb, line 51 def git_service return nil if git_service_configuration.nil? @git_service ||= GitService::Factory.instantiate(**git_service_configuration) end
git_service_configuration()
click to toggle source
# File lib/modulesync/source_code.rb, line 57 def git_service_configuration @git_service_configuration ||= GitService.configuration_for(sourcecode: self) rescue GitService::UnguessableTypeError nil end
open_pull_request()
click to toggle source
# File lib/modulesync/source_code.rb, line 63 def open_pull_request git_service.open_pull_request( repo_path: repository_path, namespace: repository_namespace, title: ModuleSync.options[:pr_title], message: ModuleSync.options[:message], source_branch: ModuleSync.options[:remote_branch] || ModuleSync.options[:branch] || repository.default_branch, target_branch: ModuleSync.options[:pr_target_branch] || repository.default_branch, labels: ModuleSync::Util.parse_list(ModuleSync.options[:pr_labels]), noop: ModuleSync.options[:noop], ) end
path(*parts)
click to toggle source
# File lib/modulesync/source_code.rb, line 47 def path(*parts) File.join(working_directory, *parts) end
repository()
click to toggle source
# File lib/modulesync/source_code.rb, line 23 def repository @repository ||= Repository.new directory: working_directory, remote: repository_remote end
repository_name()
click to toggle source
# File lib/modulesync/source_code.rb, line 27 def repository_name @repository_name ||= given_name end
repository_namespace()
click to toggle source
# File lib/modulesync/source_code.rb, line 31 def repository_namespace @repository_namespace ||= @options[:namespace] || ModuleSync.options[:namespace] end
repository_path()
click to toggle source
# File lib/modulesync/source_code.rb, line 35 def repository_path @repository_path ||= "#{repository_namespace}/#{repository_name}" end
repository_remote()
click to toggle source
# File lib/modulesync/source_code.rb, line 39 def repository_remote @repository_remote ||= @options[:remote] || _repository_remote end
working_directory()
click to toggle source
# File lib/modulesync/source_code.rb, line 43 def working_directory @working_directory ||= File.join(ModuleSync.options[:project_root], repository_path) end
Private Instance Methods
_repository_remote()
click to toggle source
# File lib/modulesync/source_code.rb, line 78 def _repository_remote git_base = ModuleSync.options[:git_base] git_base.start_with?('file://') ? "#{git_base}#{repository_path}" : "#{git_base}#{repository_path}.git" end