Sha256: d7d4b19c7d18591e167eda8e5209df023bede4466edb10cc813591b8a97de3ea

Contents?: true

Size: 1.91 KB

Versions: 1

Compression:

Stored size: 1.91 KB

Contents

namespace :build do

  desc 'Build use case markdown'
  task :use_cases do
    File.open('use_cases.md', 'w') do |use_case_file|
      use_case_file.puts(<<EOT
# Use Cases

EOT
      )
      dir_path = File.dirname(__FILE__)
      use_case_file_paths = []
      tbs_file_paths = []
      Dir.chdir(dir_path) do
        use_case_dirs = {
            :include => %w/
                reuse_text
                include_with_added_comments
            /,
            :resolve => %w/
            /
        }
        use_case_dirs.each_pair do |section, dir_names|
          use_case_file.puts(<<EOT
## #{section.to_s.capitalize}

EOT
) unless dir_names.empty?
          dir_names.each do |dir_name|
            ruby_file_path = File.join(
                dir_path,
                section.to_s,
                dir_name,
                "#{dir_name}.rb"
            )
            if File.exist?(ruby_file_path)
              command = "ruby #{ruby_file_path}"
              system(command)
            end
            use_case_file_path = File.join(
                dir_path,
                section.to_s,
                dir_name,
                "#{dir_name}.md"
            )
            if File.exist?(use_case_file_path)
              title_line = File.open(use_case_file_path).grep(/^#/).first.chomp
              title = title_line.split(/\s/, 2).pop
              use_case_file_name = File.basename(use_case_file_path)
              use_case_name = File.basename(use_case_file_path, '.md')
              use_case_anchor = use_case_name.gsub('_', '-')
              use_case_relative_url = File.join(
                  section.to_s,
                  dir_name,
                  use_case_file_name + '#' + use_case_anchor,
              )
              use_case_file.puts("* [#{title}](#{use_case_relative_url})")
            end
          end
        end
      end
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
markdown_helper-1.8.0 markdown/use_cases/Rakefile