def each_child_snippet(snippet, context, base_tag)
      raise "must be passed snippet" unless snippet.is_a?(Snippet)

      snippet.snip_tags.each do |tag_info|
        t = tag_info[:tag].set_by_tag(base_tag)
        new_context = context.clone

        if new_context.root_text?
          new_context.set_path ""
          move_context_by_tag! new_context, t
        else
          move_context_by_tag! new_context, t
          overwrite_tag_in_same_repository! new_context, t
          update_tag_path_by_context! new_context, t
        end

        resolve_tag_repo_ref! t
        child_snippet = core.repo_manager.get_snippet(new_context, t)
        t.set_path new_context.path

        if block_given?
          yield t, tag_info[:line_no], child_snippet, new_context
        end
      end
    end
def each_child_snippet(snippet, context, base_tag)
      raise "must be passed snippet" unless snippet.is_a?(Snippet)

      snippet.snip_tags.each do |tag_info|
        t = tag_info[:tag].set_by_tag(base_tag)
        new_context = context.clone

        if new_context.root_text?
          new_context.set_path ""
          move_context_by_tag! new_context, t
        else
          move_context_by_tag! new_context, t
          overwrite_tag_in_same_repository! new_context, t
          update_tag_path_by_context! new_context, t
        end

        resolve_tag_repo_ref! t
        child_snippet = core.repo_manager.get_snippet(new_context, t)
        t.set_path new_context.path

        if block_given?
          yield t, tag_info[:line_no], child_snippet, new_context
        end
      end
    end
Constructor

 @param new_core [::SocialSnippet::Core]
 Call block each snip tags

 @param snippet [Snippet]
 @param context [Context] The context of current code
 @param base_tag [Tag]