class I18n::Tasks::Scanners::PrismScanners::TranslationCall
Attributes
Public Class Methods
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 50 def initialize(node:, key:, receiver:, options:, parent:) @node = node @key = key @receiver = receiver @options = options @parent = parent end
Public Instance Methods
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 86 def full_key return nil if key.nil? return nil unless key.is_a?(String) return nil if relative_key? && !support_relative_keys? parts = [scope] if relative_key? parts.concat(parent&.path || []) parts << key # TODO: Fallback to controller without action name elsif key.start_with?('.') parts << key[1..] else parts << key end parts.compact.join('.').gsub('..', '.') end
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 82 def occurrences(file_path) occurrence(file_path) end
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 58 def relative_key? @key&.start_with?('.') && @receiver.nil? end
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 72 def with_node(node) self.class.new( node: node, key: @key, receiver: @receiver, options: @options, parent: @parent ) end
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 62 def with_parent(parent) self.class.new( node: @node, key: @key, receiver: @receiver, options: @options, parent: parent ) end
Private Instance Methods
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 116 def occurrence(file_path) local_node = @node location = local_node.location final_key = full_key return nil if final_key.nil? [ final_key, ::I18n::Tasks::Scanners::Results::Occurrence.new( path: file_path, line: local_node.respond_to?(:slice) ? local_node.slice : local_node.location.slice, pos: location.start_offset, line_pos: location.start_column, line_num: location.start_line, raw_key: key ) ] end
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 137 def occurrences_from_comments(file_path) Array(@comment_translations).flat_map do |child_node| child_node.with_context( path: @path, options: { **@context_options, comment_for_node: @node } ).occurrences(file_path) end end
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 109 def scope return nil if @options.nil? return nil unless @options['scope'] Array(@options['scope']).compact.map(&:to_s).join('.') end
Source
# File lib/i18n/tasks/scanners/prism_scanners/nodes.rb, line 151 def support_relative_keys? parent.is_a?(ParsedMethod) && parent.support_relative_keys? end
Only public methods are added to the context path Only some classes supports relative keys