Sha256: 0b2a08f5f3acaa920d531f92e64098b78c9eec1e839a19060a20347f8217c6b1

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

require 'avm/eac_writings_base0/project_build'
require 'eac_cli/core_ext'
require 'eac_ruby_utils/console/docopt_runner'

module Avm
  module Tools
    class Runner < ::EacRubyUtils::Console::DocoptRunner
      class LocalProject < ::EacRubyUtils::Console::DocoptRunner
        class EacWritingsBase0
          class BuildChapters
            runner_with :help do
              arg_opt '-o', '--output-dir', 'Output chapters to specific directory.'
            end

            def run
              runner_context.call(:project_banner)
              output_dir.mkpath
              project.chapters.each_with_index do |c, i|
                ::Avm::EacWritingsBase0::ProjectBuild.new(project, chapter_build_options(c, i))
              end
            end

            private

            def chapter_build_options(chapter, index)
              output_name = "#{(index + 1).to_s.rjust(3, '0')}_#{chapter}.pdf"
              { output_file: output_dir.join(output_name), chapter: chapter }
            end

            def output_dir_uncached
              (
                parsed.output_dir || project.default_output_dir.join('chapters')
              ).to_pathname
            end

            def project
              runner_context.call(:project)
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
avm-tools-0.86.0 lib/avm/tools/runner/local_project/eac_writings_base0/build_chapters.rb
avm-tools-0.85.1 lib/avm/tools/runner/local_project/eac_writings_base0/build_chapters.rb