quattro_4 scribble

scribble 落書き (調べた事をただ落書きする)

RubyTapas #115 - #119

115 pp

★★

p = puts + .inspect

pp -> pretty print

indentation, nested hashes

出力を変数に格納して後で扱うことができる

pretty = repo.pretty_inspect
pretty
puts pretty

116 Extract Command Object

12分

RubyNation Conference

fundamental refactoring

200 lines

pull method out to extract command object

/commands/ folder

module Commands

arguments -> initializer

create and inherit Base class

@inspect_proc = -> { ... }

最終的に

Commands::Mimic.new(self, ...

@builderがたくさん出てきているから、さらにリファクタリングを考えても良い

avdi/naught · GitHub

117 Client Session Object

★★

Mechanizeでページを扱うプログラム

毎回ログインをするのもどうかと思うからclassに抜き出す話

class AdminSession
  def initialize(login, password, options={})
  def agent
  def established?
  def establish(login=@login, password=@password)
    login_page    = @agent.get('https://getdpd.com/login')

Mechanize良く使うから今度意識してみたい

118 Even And Odd

1分

i % 2 == 0
# ↓
2.even?

much more readable

119 Intention Revealing Argument

★★

store.transaction(true) do

のtrueは何を意図しているかわかりにくい

ローカル変数で名前をつける、シンボル渡す、引数のところで代入とかいろいろ可能なパターンはあるが、混乱を招きやすいものもある

結局、だれにでも比較的分かりやすい書き方は

read_only = true
store.transaction(read_only) do