Class: Yoda::Services::CurrentNodeExplain::CommentSignature

Inherits:
Object
  • Object
show all
Defined in:
lib/yoda/services/current_node_explain/comment_signature.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(comment:, location:, node_info:) ⇒ CommentSignature

Returns a new instance of CommentSignature.

Parameters:



17
18
19
20
21
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 17

def initialize(comment:, location:, node_info:)
  @comment = comment
  @location = location
  @node_info = node_info
end

Instance Attribute Details

#commentAST::CommentBlock (readonly)

Returns:



6
7
8
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 6

def comment
  @comment
end

#locationParsing::Location (readonly)

Returns:



9
10
11
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 9

def location
  @location
end

#node_infoTyping::NodeInfo (readonly)

Returns:



12
13
14
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 12

def node_info
  @node_info
end

Instance Method Details

#defined_filesArray<String>

Returns:

  • (Array<String>)


39
40
41
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 39

def defined_files
  objects.map { |value| Model::PrimarySourceInferencer.new.infer_for_object(value) }.compact
end

#descriptionsArray<Model::Descriptions::Base>

Returns:



34
35
36
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 34

def descriptions
  [node_type_description, *type_descriptions].compact
end

#node_rangeRange?

Returns:

  • (Range, nil)


29
30
31
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 29

def node_range
  current_comment_token&.range
end

#node_type_descriptionModel::Descriptions::Base?

Returns:



44
45
46
47
48
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 44

def node_type_description
  if constants_type
    Model::Descriptions::CommentTokenDescription.new(current_comment_token, constants_type)
  end
end

#providable?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 24

def providable?
  node_range
end

#type_descriptionsArray<Descriptions::Base>

Returns:

  • (Array<Descriptions::Base>)


51
52
53
# File 'lib/yoda/services/current_node_explain/comment_signature.rb', line 51

def type_descriptions
  objects.map { |object| Model::Descriptions::ValueDescription.new(object) }
end