class BranchIOCLI::RakeTask

Public Class Methods

new(name = :branch) click to toggle source
# File lib/branch_io_cli/rake_task.rb, line 8
def initialize(name = :branch)
  namespace name do
    add_branch_task :report, "Generate a brief Branch report"
    add_branch_task :setup, "Set a project up with the Branch SDK"
    add_branch_task :validate, "Validate Universal Links in one or more projects"
  end
end

Public Instance Methods

add_branch_task(task_name, description) click to toggle source
# File lib/branch_io_cli/rake_task.rb, line 16
def add_branch_task(task_name, description)
  command_class = Command.const_get("#{task_name.to_s.capitalize}Command")
  configuration_class = Configuration.const_get("#{task_name.to_s.capitalize}Configuration")

  desc description
  task task_name, %i{paths options} do |task, args|
    paths = args[:paths]
    paths = [paths] unless paths.respond_to?(:each)
    options = args[:options] || {}

    paths.each do |path|
      Dir.chdir(path) do
        begin
          command_class.new(configuration_class.wrapper(options)).run!
        rescue StandardError => e
          say "Error from #{task_name} task in #{path}: #{e.message}"
          say e.backtrace if options[:trace]
        end
      end
    end
  end
end