class Octofart::Tasks::DataMapping

Public Instance Methods

clear(params) click to toggle source
# File lib/octofart/tasks/data_mapping.rb, line 57
def clear(params)
  params.delete(:items)
  params.delete(:tasks)
end
init_repo_data(repo_name, repositories) click to toggle source
# File lib/octofart/tasks/data_mapping.rb, line 33
def init_repo_data(repo_name, repositories)
  puts "Initializing metadata for #{repo_name}..."

  repositories[repo_name] ||= {}
  repositories[repo_name][:tasks] ||= []
  repositories[repo_name][:base_branch] ||= {}
  repositories[repo_name][:head_branch] ||= {}

  puts repositories[repo_name]
end
register_task(repositories, tasks, options = {}) click to toggle source
# File lib/octofart/tasks/data_mapping.rb, line 44
def register_task(repositories, tasks, options = {})
  puts "Registering task for #{options[:repo_name]}..."

  task = tasks.find { |t| t[:id] == options[:task_id] }
  repositories[options[:repo_name]][:tasks] << task.merge(path: options[:path])

  puts task
end
run(params) click to toggle source
# File lib/octofart/tasks/data_mapping.rb, line 5
def run(params)
  params[:tasks].each do |task|
    items = search(text: task[:find], org: params[:organization])
    items.each do |item|
      repo_name = item.repository.full_name

      init_repo_data(repo_name, params[:repositories])

      task_attrs = {
             path: item.path,
          task_id: task[:id],
        repo_name: repo_name,
      }

      task_args = [
        params[:repositories],
        params[:tasks],
        task_attrs
      ]

      register_task(*task_args)
    end
  end

  clear(params)
  params
end