gemのコードリーディング手法

sidekiq-cronを題材にする

いつも調べてしまうので、自分用メモとして残しておく

# Gemfile
# frozen_string_literal: true

source 'https://rubygems.org'

git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }

gem 'sidekiq'
gem "sidekiq-cron", "~> 1.1"
gem 'pry-byebug'
# debug.rb

require "bundler/setup"
Bundler.require

hash = {
  'name_of_job' => {
    'class' => 'MyClass',
    'cron'  => '1 * * * *',
    'args'  => '(OPTIONAL) [Array or Hash]'
  },
  'My super iber cool job' => {
    'class' => 'SecondClass',
    'cron'  => '*/5 * * * *'
  }
}

Sidekiq::Cron::Job.load_from_hash hash

bundle install --path vendor/bundle を実行後、vendor/bundleの該当箇所に、binding.pryを差し込む。その後、ruby debug.rb を実行

require "bundler/setup"Bundler.requireが肝です。後は、普段開発しているように地味にデバックしていくだけ