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
が肝です。後は、普段開発しているように地味にデバックしていくだけ