関数で自身の名前を取得する
__method__
で取得できる
example
# frozen_string_literal: true
require 'colorize'
def assert_equal(expected, result)
puts "expected: #{expected}"
puts "result: #{result}"
if expected == result
puts "succeeded in #{__method__}.".green
else
puts "failed in #{__method__}.".red
end
end
def assert_not_equal(expected, result)
puts "expected: #{expected}"
puts "result: #{result}"
if expected != result
puts "succeeded in #{__method__}.".green
else
puts "failed in #{__method__}.".red
end
end
assert_equal(1, 1)
assert_not_equal(1, 2)
result
% ruby assert_equal.rb
expected: 1
result: 1
succeeded in assert_equal.
expected: 1
result: 2
succeeded in assert_not_equal.
org でコードを貼り付ける
今までは#+begin_src と #end_src の中身にコードを直書きしていた。が、#+include を使えば、どっかのタイミング(予想では qiita_org で org から md を生成するとき)でファイルの中身を展開してくれるらしい。ただし、ファイルの先頭と末尾に #+begin_src ruby と #+end_src を記述する必要がある。
# frozen_string_literal: true
require 'colorize'
def print_expected_and_result(expected, result)
puts "expected: #{expected}"
puts "result: #{result}"
end
def assert_equal(expected, result)
print_expected_and_result(expected, result)
if expected == result
puts "succeeded in #{__method__}.".green
else
puts "failed in #{__method__}.".red
end
end
def assert_not_equal(expected, result)
print_expected_and_result(expected, result)
if expected != result
puts "succeeded in #{__method__}.".green
else
puts "failed in #{__method__}.".red
end
end
if $PROGRAM_NAME == __FILE__
assert_equal(1, 1)
assert_not_equal(1, 2)
end
Rubular
https://rubular.com/ a Ruby regular expression editor正規表現、よく使うけど毎回よくわからなくなるから、interactive に結果を返してくれるのは試行錯誤がとてもやりやすいので嬉しい。
scan と match
ref: 【Ruby】scanとmatchの違い
- source ~/ghq/github.com/TeamNishitani/grad_members_20f/members/syasin-5d/9th.org