柳生Classの野望

歴史の流れをUMLを使って書き出す、というのをtwitterで見てから面白いな、と思いつつVS CodeにPlantUML の機能拡張を入れたまま放置していたのだが、クラス図を使って家系図を書けるのでは、と思って柳生一族の家系図を書いてみた。

Yの文字がちょっとダサかったり、並びが左→右の順なので本来の家系図に沿うならば逆に書かないといけないけど、細かい点は抜きにして結構楽しく書けた。 githubで管理すれば随時拡張して、履歴も残せるので便利。

https://github.com/taka-yoko/yagyu_family_tree/blob/master/out/yagyu/yagyu.png

参考

qiita.com

ruby のプライベートメソッドにアクセスする方法

その名の通りprivateなmethodなので、レシーバーから呼び出せないが、sendを使えば呼ぶことができる。 他にもinstance_evalを使っても呼ぶことができる。

通常のコードでは当然使ってはいけないが、テストなどで重宝する。

class C
  private
  
  def private_method
    "private_method"
  end
end

puts C.new.send(:private_method) # => private_method
puts C.new.instance_eval{ private_method } # => private_method

stackoverflow.com

Rubyのメソッド数

Rubyのメソッド数を調べる方法について、以下のサイトでよくまとまっていたのでメモ。 Array含めすべてのクラスはClassクラスのインスタンスであることを踏まえて、methodsinstance_methodsを考えると 一貫性が見えてくる。

Rubyのメソッドを数えましょう♫ Rubyのメソッドをもう一度、数えましょう♫

Animate.css 機能一覧

Animate.css

CSSアニメーションのフレームワーク Animate.css の一通りの機能を試せるものを作った。 上記のトップページで同じことができるが、セレクトボックスから機能を選ぶのが面倒だったので ラジオボタンにした。

See the Pen move box(with animate.css) by tamoriinu (@yokoyama) on CodePen.

HTML5 inputのrange属性

HTML5のinputタグ、range属性を触る機会があったのでメモ

素の状態

See the Pen input range type by tamoriinu (@yokoyama) on CodePen.

CSSデザインを当てたもの

See the Pen input range type by tamoriinu (@yokoyama) on CodePen.

参考: How To Create Range Sliders

Vue.jsを使ってSVG画像と同期

See the Pen input range type with vue.js by tamoriinu (@yokoyama) on CodePen.

参考: 基礎から学ぶ Vue.js

Rubyのメソッド探索

Rubyがメソッドを探索する流れについて、色々な本やWebサイトをあたってみた。

www.shoeisha.co.jp 最初に読んだのがこの本だったと思う。
第2章 クラス、オブジェクト、モジュール 項目6 Rubyが継承階層をどのように組み立てるかを頭に入れよう がメソッド探索に関わる継承階層について説明している所だが、いまいち頭にはいってこなかった。ただ以下の本、サイトを見てから再読すると違うと思う。言っている内容は同じなのだから当然だが、イメージがしやすくなる。

www.oreilly.co.jp 2章 月曜日:オブジェクトモデル でメソッド探索に関わる説明をしている。くだけた感じでわかりやすく説明してくれる。図解も何度も行われているので非常に理解しやすい。

gihyo.jp Ruby技術者認定試験の対策で買ったが、この本の 第4章 オブジェクト指向 の説明がかなりわかりやすかった。

at-grandpa.hatenablog.jp ここの説明が一番全体を網羅している。個人的には一番わかりやすく腑に落ちた。