たのしいRuby 第8章 クラスとモジュール

今日も元気にRubyでいきまっしょう。

アクサ便利

class HelloClass
  attr_accessor :name
  def initialize(name="Ruby")
    @name = name
  end
  # def name
  #   @name
  # end
  # def name=(name)
  #   @name = name
  # end
  def hello
    print "Hello, " , @name , " World!!\n"
  end
end

# test
ruby = HelloClass.new
p ruby.name
p ruby.name = "JavaScript"
ruby.hello
HelloClass.new("C").hello
  • attr_accessor :nameするとコメント部分がいらない。便利。
  • def name=(name)でスペースを開けるとコンパイルエラー。

8章終わり。

クラスに入ったらコード量が増えてきた。ペースダウン。

Vimキーバインドruby用に改造。

if (has('gui'))
  inoremap <M-}> <ESC>A<Space>{}<Left><CR><ESC>O
  nnoremap <M-}> A<Space>{}<Left><CR><ESC>O
  aug CloseBlock
    au!
    au FileType ruby,eruby imap <M-}> <ESC>oend<ESC>O
    au FileType ruby,eruby nmap <M-}> oend<ESC>O
  aug END

  inoremap <M-l> <C-X><C-L>
  inoremap <M-o> <C-X><C-O>
endif

auで、Ruby用を追加。

class Hoge|

まで打って、A-}すると・・・

class Hoge
  |
end

こうなる。グレイト&セクシー。ruby以外はは括弧になる。要ruby.vim&gvim

補完がめんどいので、M-l,M-oも割り当てた。