class Gemologist::AbstractDependency
Attributes
node[R]
rewriter[R]
Public Class Methods
method_names()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 16 def self.method_names raise NotImplementedError end
new(node, rewriter)
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 20 def initialize(node, rewriter) raise 'Invalid node.' unless self.class.valid_node?(node) @node = node @rewriter = rewriter end
valid_node?(node)
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 9 def self.valid_node?(node) return false unless node.send_type? _receiver_node, message, name_node, = *node method_names.include?(message) && name_node.str_type? end
Public Instance Methods
groups()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 31 def groups raise NotImplementedError end
name()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 27 def name name_node.children.first end
options()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 49 def options {} end
version_specifiers()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 35 def version_specifiers @version_specifiers ||= version_nodes.map { |node| AST.concretize(node) }.flatten end
version_specifiers=(*specifiers)
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 39 def version_specifiers=(*specifiers) source = specifiers.flatten.map { |specifier| "'#{specifier}'" }.join(', ') if version_nodes.empty? rewriter.insert_after(name_node.loc.expression, ", #{source}") else rewriter.replace(version_range, source) end end
Private Instance Methods
method_name()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 55 def method_name node.children[1] end
name_node()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 59 def name_node node.children[2] end
trailing_nodes()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 63 def trailing_nodes node.children[3..-1] end
version_nodes()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 67 def version_nodes raise NotImplementedError end
version_range()
click to toggle source
# File lib/gemologist/abstract_dependency.rb, line 71 def version_range version_nodes.first.loc.expression.join(version_nodes.last.loc.expression) end