Class: MetaCommit::Extension::MarkdownSupport::Diffs::AnchorAddition
- Inherits:
-
Diff
- Object
- Contracts::Diff
- Diff
- MetaCommit::Extension::MarkdownSupport::Diffs::AnchorAddition
- Defined in:
- lib/meta_commit_markdown_support/diffs/anchor_addition.rb
Constant Summary
Constants inherited from Diff
Constants included from ContextualAstAccessor
ContextualAstAccessor::ELEMENT_TYPE_ANCHOR, ContextualAstAccessor::ELEMENT_TYPE_CODE, ContextualAstAccessor::ELEMENT_TYPE_HEADER, ContextualAstAccessor::ELEMENT_TYPE_IMAGE, ContextualAstAccessor::ELEMENT_TYPE_LISTS, ContextualAstAccessor::ELEMENT_TYPE_LIST_ITEM, ContextualAstAccessor::ELEMENT_TYPE_PARAGRAPH, ContextualAstAccessor::ELEMENT_TYPE_TEXT
Instance Method Summary collapse
Methods inherited from Diff
#inspect, #supports_parser?, #to_s, #type_addition?, #type_deletion?, #type_replace?
Methods included from ContextualAstAccessor
#anchor?, #anchor_context?, #anchor_target, #anchor_title, #closest_header_of_list, #code?, #code_context?, #code_first_line, #context_node_neighbours, #context_nodes_on_line, #contextual_ast_has_target_node, #element_closest_to, #elements_of_type_on_line, #header?, #header_content, #image?, #list?, #list_context?, #list_item?, #nested_list_context?, #paragraph?, #paragraph_context?, #parent_list_item_title, #starts_on_line?, #string_content, #text?, #text_context?
Instance Method Details
#string_representation ⇒ String
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/meta_commit_markdown_support/diffs/anchor_addition.rb', line 12 def string_representation parent_anchor = change_context.new_contextual_ast .context_nodes .find {|node| anchor?(node)} if !parent_anchor.children.first.nil? && text?(parent_anchor.children.first) new_anchor_title = parent_anchor.element.first_child.string_content parent_anchor.element.first_child.string_content return "add #{new_anchor_title} link" end if !parent_anchor.children.first.nil? && image?(parent_anchor.children.first) new_anchor_title = parent_anchor.element.first_child.first_child.string_content parent_anchor.element.first_child.first_child.string_content return "add #{new_anchor_title}" end anchor_target = anchor_target(change_context.new_contextual_ast) "delete #{anchor_target} link" end |
#supports_change(context) ⇒ Boolean
5 6 7 8 9 |
# File 'lib/meta_commit_markdown_support/diffs/anchor_addition.rb', line 5 def supports_change(context) context.type == TYPE_ADDITION && contextual_ast_has_target_node(context.new_contextual_ast) && anchor_context?(context.new_contextual_ast) end |