Class: Safedep::AbstractDependency
- Inherits:
-
Object
- Object
- Safedep::AbstractDependency
show all
- Defined in:
- lib/safedep/abstract_dependency.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of AbstractDependency.
17
18
19
20
21
|
# File 'lib/safedep/abstract_dependency.rb', line 17
def initialize(node, rewriter)
fail 'Invalid node.' unless self.class.valid_node?(node)
@node = node
@rewriter = rewriter
end
|
Instance Attribute Details
#node ⇒ Object
Returns the value of attribute node.
5
6
7
|
# File 'lib/safedep/abstract_dependency.rb', line 5
def node
@node
end
|
#rewriter ⇒ Object
Returns the value of attribute rewriter.
5
6
7
|
# File 'lib/safedep/abstract_dependency.rb', line 5
def rewriter
@rewriter
end
|
Class Method Details
.method_names ⇒ Object
13
14
15
|
# File 'lib/safedep/abstract_dependency.rb', line 13
def self.method_names
fail NotImplementedError
end
|
.valid_node?(node) ⇒ Boolean
7
8
9
10
11
|
# File 'lib/safedep/abstract_dependency.rb', line 7
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
|
Instance Method Details
#groups ⇒ Object
27
28
29
|
# File 'lib/safedep/abstract_dependency.rb', line 27
def groups
fail NotImplementedError
end
|
#name ⇒ Object
23
24
25
|
# File 'lib/safedep/abstract_dependency.rb', line 23
def name
name_node.children.first
end
|
#options ⇒ Object
45
46
47
|
# File 'lib/safedep/abstract_dependency.rb', line 45
def options
{}
end
|
#version_specifiers ⇒ Object
31
32
33
|
# File 'lib/safedep/abstract_dependency.rb', line 31
def version_specifiers
@version_specifiers ||= version_nodes.map { |node| Literal.value(node) }.flatten
end
|
#version_specifiers=(*specifiers) ⇒ Object
35
36
37
38
39
40
41
42
43
|
# File 'lib/safedep/abstract_dependency.rb', line 35
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
|