Sha256: 2929c21d75c242934953a9d08972ce3b67d9932e7d8a4e4a62f0d8a762fdd4c3

Contents?: true

Size: 1.87 KB

Versions: 2

Compression:

Stored size: 1.87 KB

Contents

require 'rake_factory'

require_relative '../tasks'

module RakeGithub
  module TaskSets
    class Repository < RakeFactory::TaskSet
      prepend RakeFactory::Namespaceable

      parameter :repository, required: true
      parameter :access_token, required: true
      parameter :deploy_keys, default: []

      parameter :deploy_keys_namespace, default: :deploy_keys
      parameter :deploy_keys_destroy_task_name, default: :destroy
      parameter :deploy_keys_provision_task_name, default: :provision
      parameter :deploy_keys_ensure_task_name, default: :ensure

      task Tasks::DeployKeys::Provision,
          name: RakeFactory::DynamicValue.new { |ts|
            ts.deploy_keys_provision_task_name
          }
      task Tasks::DeployKeys::Destroy,
          name: RakeFactory::DynamicValue.new { |ts|
            ts.deploy_keys_destroy_task_name
          }
      task Tasks::DeployKeys::Ensure,
          name: RakeFactory::DynamicValue.new { |ts|
            ts.deploy_keys_ensure_task_name
          },
          provision_task_name: RakeFactory::DynamicValue.new { |ts|
            ts.deploy_keys_provision_task_name
          },
          destroy_task_name: RakeFactory::DynamicValue.new { |ts|
            ts.deploy_keys_destroy_task_name
          }
      task Tasks::PullRequests::Merge, argument_names: [:branch_name]

      def define_on(application)
        around_define(application) do
          self.class.tasks.each do |task_definition|
            ns = case task_definition.klass.to_s
            when /DeployKeys/
              deploy_keys_namespace
            when /PullRequests/
              :pull_requests
            else
              nil
            end

            application.in_namespace(ns) do
              task_definition
                  .for_task_set(self)
                  .define_on(application)
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rake_github-0.8.0.pre.9 lib/rake_github/task_sets/repository.rb
rake_github-0.8.0.pre.8 lib/rake_github/task_sets/repository.rb