Sha256: 0926871fd0c438f5f86ff88725444ef017a04ceb96095c69d782f4b5e4884a96

Contents?: true

Size: 1.28 KB

Versions: 77

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'
require 'eac_ruby_utils/fs/clearable_directory'

module Avm
  module EacAsciidoctorBase0
    module Sources
      class Build
        require_sub __FILE__
        enable_speaker
        enable_simple_cache
        enable_listable
        lists.add_symbol :option, :target_directory
        common_constructor :project, :options, default: [{}] do
          self.options = self.class.lists.option.hash_keys_validate!(options.symbolize_keys)
        end

        SOURCE_EXTNAMES = %w[.adoc .asc].freeze

        def run
          infov 'Files to build', source_files.count
          target_directory.clear
          source_files.each(&:run)
        end

        def default_target_directory
          project.path.join('build')
        end

        def target_directory
          ::EacRubyUtils::Fs::ClearableDirectory.new(
            options[OPTION_TARGET_DIRECTORY] || default_target_directory
          )
        end

        def source_files_uncached
          r = []
          project.path.children.each do |child|
            next unless SOURCE_EXTNAMES.include?(child.extname)

            r << ::Avm::EacAsciidoctorBase0::Sources::Build::File.new(self, child.basename)
          end
          r
        end
      end
    end
  end
end

Version data entries

77 entries across 77 versions & 3 rubygems

Version Path
avm-eac_asciidoctor_base0-0.8.0 lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.40.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.39.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.38.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.37.2 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.37.1 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.37.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.36.1 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.36.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.35.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.34.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.33.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
avm-eac_asciidoctor_base0-0.7.1 lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.32.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.31.1 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.31.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.30.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.29.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb
avm-eac_asciidoctor_base0-0.7.0 lib/avm/eac_asciidoctor_base0/sources/build.rb
eac_tools-0.28.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/sources/build.rb