lib/fcb.rb in markdown_exec-2.3.0 vs lib/fcb.rb in markdown_exec-2.4.0

- old
+ new

@@ -2,11 +2,10 @@ # frozen_string_literal: true # encoding=utf-8 require 'digest' require_relative 'namer' -# require_relative 'poly' module MarkdownExec class Error < StandardError; end # Fenced Code Block (FCB) @@ -157,203 +156,5 @@ # def test_method_missing_with_unknown_method # assert_raises(NoMethodError) { @fcb.unknown_method } # end end end - -# #!/usr/bin/env ruby -# # frozen_string_literal: true - -# # encoding=utf-8 -# require 'digest' -# require_relative 'poly' - -# # require 'ostruct' - -# module MarkdownExec -# class Error < StandardError; end - -# # Fenced Code Block (FCB) -# # -# # This class represents a fenced code block in a markdown document. -# # It allows for setting and getting attributes related to the code block, -# # such as body, call, headings, and more. -# # -# class FCB -# def initialize(options = {}) -# # @attrs = ({ -# @attrs = Poly.new({ -# body: nil, -# call: nil, -# headings: [], -# dname: nil, -# indent: '', -# name: nil, -# nickname: nil, -# oname: nil, -# reqs: [], -# shell: '', -# title: '', -# random: Random.new.rand, -# text: nil # displayable in menu -# }.merge(options)) -# end - -# def is?(name) -# (save_name == name).tap{|ret|pp [__LINE__,"is?(#{name})",'->',ret]} -# end - -# # fenced_name: text from code -# # save_name: for file system -# # logical_name: used for requires, not displayed -# # menu_name: displayed in menu - -# # used for requires, not displayed -# def logical_name -# (@attrs.fetch(:nickname, nil) || @attrs.fetch(:oname, nil)).tap{|ret|pp [__LINE__,"logical_name()",'->',ret]} -# end - -# # displayed in menu -# def menu_name # displayed in menu -# @attrs.fetch(:nickname, nil).tap{|ret|pp [__LINE__,"menu_name()",'->',ret]} -# end - -# # for file system -# # block name in commands and documents -# def save_name(id_len: 4, max_len: 48) -# full = @attrs.fetch(:nickname, nil) || @attrs.fetch(:oname, nil) -# trimmed = if full && full[max_len] -# r = rand((10**(id_len - 1) + 1)..10**id_len).to_s -# dig = Digest::MD5.hexdigest(full)[0, id_len] -# full[0..max_len - id_len] + dig -# else -# full -# end - -# trimmed&.to_blockname.tap{|ret|pp [__LINE__,"save_name()",'->',ret]} -# end - -# def title=(value) -# @attrs[:title] = value -# end - -# # Derives a title from the body of an FCB object. -# # @param fcb [Object] The FCB object whose title is to be derived. -# # @return [String] The derived title. -# def derive_title_from_body -# unless (body_content = @attrs[:body]) -# # empty body -> empty title -# @attrs[:title] = '' -# return -# end - -# # body -> title -# @attrs[:title] = if body_content.count == 1 -# body_content.first -# else -# format_multiline_body_as_title(body_content) -# end -# end - -# private - -# # Formats multiline body content as a title string. -# # indents all but first line with two spaces so it displays correctly in menu -# # @param body_lines [Array<String>] The lines of body content. -# # @return [String] Formatted title. -# def format_multiline_body_as_title(body_lines) -# body_lines.map.with_index do |line, index| -# index.zero? ? line : " #{line}" -# end.join("\n") << "\n" -# end - -# # :reek:ManualDispatch -# def method_missing(method, *args, &block) -# method_name = method.to_s -# if @attrs.respond_to?(method_name) -# @attrs.send(method_name, *args, &block) -# elsif method_name[-1] == '=' -# @attrs[method_name.chop.to_sym] = args[0] -# else -# @attrs[method_name.to_sym] -# end -# rescue StandardError => err -# warn("ERROR ** FCB.method_missing(method: #{method_name}," \ -# " *args: #{args.inspect}, &block)") -# warn err.inspect -# warn(caller[0..4]) -# # raise StandardError, error -# raise err # Here, we simply propagate the original error instead of wrapping it in a StandardError. -# end - -# public - -# def respond_to_missing?(method_name, include_private = false) -# @attrs.key?(method_name.to_sym) || super -# end - -# def to_h -# @attrs.to_h -# end - -# def to_yaml -# @attrs.to_yaml -# end -# end -# end - -# if $PROGRAM_NAME == __FILE__ -# require 'bundler/setup' -# Bundler.require(:default) - -# require 'minitest/autorun' -# require 'yaml' - -# class FCBTest < Minitest::Test -# def setup -# @fcb_data = { -# body: 'Sample body', -# call: 'Sample call', -# headings: %w[Header1 Header2], -# dname: 'Sample name', -# indent: '', -# nickname: nil, -# name: 'Sample name', -# oname: 'Sample name', -# reqs: %w[req1 req2], -# shell: 'bash', -# text: 'Sample Text', -# title: 'Sample Title' -# } -# @fcb = MarkdownExec::FCB.new(@fcb_data) -# end - -# def test_initialization_with_correct_data -# assert_equal 'Sample body', @fcb.body -# assert_equal %w[Header1 Header2], @fcb.headings -# end - -# def test_to_h_method -# assert_equal @fcb_data.merge({ random: @fcb.random }), @fcb.to_h -# end - -# def test_to_yaml_method -# assert_equal YAML.load(@fcb_data.merge({ random: @fcb.random }).to_yaml), -# YAML.load(@fcb.to_yaml) -# end - -# def test_method_missing_getter -# assert_equal 'Sample Title', @fcb.title -# end - -# def test_method_missing_setter -# @fcb.title = 'New Title' -# assert_equal 'New Title', @fcb.title -# end - -# # 2023-10-09 does not trigger error; treats as option name -# # -# # def test_method_missing_with_unknown_method -# # assert_raises(NoMethodError) { @fcb.unknown_method } -# # end -# end -# end