Class: Renamespace::RenameWithinFileContent

Inherits:
Object
  • Object
show all
Defined in:
lib/renamespace/rename_within_file_content.rb

Instance Method Summary collapse

Constructor Details

#initialize(paths:, content:, can_omit_prefixes_count:, replacements_logger:) ⇒ RenameWithinFileContent

Returns a new instance of RenameWithinFileContent.



7
8
9
10
11
12
# File 'lib/renamespace/rename_within_file_content.rb', line 7

def initialize(paths:, content:, can_omit_prefixes_count:, replacements_logger:)
  @paths = paths
  @content_orig = content
  @can_omit_prefixes_count = can_omit_prefixes_count
  @replacements_logger = replacements_logger
end

Instance Method Details

#callObject



14
15
16
17
18
# File 'lib/renamespace/rename_within_file_content.rb', line 14

def call
  content_orig
    .then(&method(:replace_require_paths))
    .then(&method(:replace_references))
end

#namespace_elements_destObject



50
51
52
# File 'lib/renamespace/rename_within_file_content.rb', line 50

def namespace_elements_dest
  @namespace_elements_dest ||= paths.destination_namespace_elements
end

#namespace_elements_sourceObject



46
47
48
# File 'lib/renamespace/rename_within_file_content.rb', line 46

def namespace_elements_source
  @namespace_elements_source ||= paths.source_namespace_elements
end

#replace_references(content) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/renamespace/rename_within_file_content.rb', line 24

def replace_references(content)
  (1 + can_omit_prefixes_count).times do
    replacements_logger.log(search_str, replace_str)
    content = content.gsub(search_regex, replace_str)
    namespace_elements_source.shift
    namespace_elements_dest.shift
  end
  content
end

#replace_require_paths(content) ⇒ Object



20
21
22
# File 'lib/renamespace/rename_within_file_content.rb', line 20

def replace_require_paths(content)
  content.gsub(paths.source_require_path, paths.destination_require_path)
end

#replace_strObject



42
43
44
# File 'lib/renamespace/rename_within_file_content.rb', line 42

def replace_str
  namespace_elements_dest.join('::')
end

#search_regexObject



34
35
36
# File 'lib/renamespace/rename_within_file_content.rb', line 34

def search_regex
  /\b#{namespace_elements_source.join('::')}\b/
end

#search_strObject



38
39
40
# File 'lib/renamespace/rename_within_file_content.rb', line 38

def search_str
  namespace_elements_source.join('::')
end