Sha256: bf8bc6d4c4f05ccb25cd59d1cdbb70305b9924005151b31d198c8e2af1a225cb

Contents?: true

Size: 1.27 KB

Versions: 13

Compression:

Stored size: 1.27 KB

Contents

require_relative '../tasklib'

module RakeDependencies
  module Tasks
    class Ensure < TaskLib
      parameter :name, default: :ensure

      parameter :dependency, required: true
      parameter :version
      parameter :path, required: true

      parameter :binary_directory, default: 'bin'

      parameter :needs_fetch, default: lambda { |_| true }

      parameter :clean_task, default: :clean
      parameter :download_task, default: :download
      parameter :extract_task, default: :extract

      def process_arguments args
        super(args)
        self.name = args[0] if args[0]
      end

      def define
        clean = Rake::Task[scoped_task_name(clean_task)]
        download = Rake::Task[scoped_task_name(download_task)]
        extract = Rake::Task[scoped_task_name(extract_task)]

        desc "Ensure #{dependency} present"
        task name do
          parameters = {
              path: path,
              version: version,
              binary_directory: binary_directory
          }
          if needs_fetch.call(parameters)
            [clean, download, extract].map(&:invoke)
          end
        end
      end

      private

      def scoped_task_name(task_name)
        Rake.application.current_scope.path_with_task_name(task_name)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
rake_dependencies-0.16.1.pre1 lib/rake_dependencies/tasks/ensure.rb
rake_dependencies-0.16.0 lib/rake_dependencies/tasks/ensure.rb
rake_dependencies-0.15.2.pre1 lib/rake_dependencies/tasks/ensure.rb
rake_dependencies-0.15.1 lib/rake_dependencies/tasks/ensure.rb
rake_dependencies-0.15.0 lib/rake_dependencies/tasks/ensure.rb
rake_dependencies-0.14.1 lib/rake_dependencies/tasks/ensure.rb
rake-dependencies-0.14.1 lib/rake_dependencies/tasks/ensure.rb
rake-dependencies-0.14.0 lib/rake_dependencies/tasks/ensure.rb
rake-dependencies-0.13.0 lib/rake_dependencies/tasks/ensure.rb
rake-dependencies-0.12.0 lib/rake_dependencies/tasks/ensure.rb
rake-dependencies-0.11.0 lib/rake_dependencies/tasks/ensure.rb
rake-dependencies-0.10.0 lib/rake_dependencies/tasks/ensure.rb
rake-dependencies-0.9.0 lib/rake_dependencies/tasks/ensure.rb