読者です 読者をやめる 読者になる 読者になる

kmasdaの日記

rubyとかrailsとかそれっぽいことを

failとraise

fail

例外は基本こっちで発生させる。

raise

例外をキャッチして再度例外を発生させる場合に使う。

参考リンクみたほうが早い。

参考

github.com

keymap-memo

:h key-map map-overview map-modes Overview of which map command works in which mode. More details below.

COMMANDS MODES ~
:map :noremap :unmap Normal, Visual, Select, Operator-pending
:nmap :nnoremap :nunmap Normal
:vmap :vnoremap :vunmap Visual and Select
:smap :snoremap :sunmap Select
:xmap :xnoremap :xunmap Visual
:omap :onoremap :ounmap Operator-pending
:map! :noremap! :unmap! Insert and Command-line
:imap :inoremap :iunmap Insert
:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg
:cmap :cnoremap :cunmap Command-line
nnoremap <LEFT> :bp<CR>
nnoremap <RIGHT> :bn<CR>
noremap <CR> o<ESC>

手に馴染んできた気がs

ホップ、ステップ、tap

tap

しらなかったんです。tap。

tap便利だし、ちょっとかわっってる。

instance method Object#tap (Ruby 2.3.0)

self を引数としてブロックを評価し、self を返します。 メソッドチェインの途中で直ちに操作結果を表示するために メソッドチェインに "入り込む" ことが、このメソッドの主目的です。 (1..10) .tap {|x| puts "original: #{x.inspect}"}. to_a .tap {|x| puts "array: #{x.inspect}"}. select {|x| x % 2 == 0} .tap {|x| puts "evens: #{x.inspect}"}. map { |x| x * x } .tap {|x| puts "squares: #{x.inspect}"}

object毎にif文とか書いて処理振り分けるとか、初期値設定とかすごいきれいに書けそう。

中規模アプリで検索機能実装する時こまった

rails, postgres(similar to)

やりたいこと

Article title:string content:text みたいなとこに検索ワードが複数飛んできてor検索とかやってみたくなった。

ひたすらwhereに条件くっつけてやるのもいいけどとにかく可読性が悪い。

similar to

PostgreSQL: Documentation: 9.0: Pattern Matching

keyword_array = c[:search].gsub(/[\s ]+/, "|")
@articles = Article.where("title similar to :word OR content similar to :word", word: "%(#{keyword_array})%")

ベストかどうかは知らない。

recuireとrecuire_relativeについて

recuire_relative

現在のファイルから相対パスでrecuireする。

recuire

Ruby ライブラリ feature をロードします。拡張子補完を行い、 同じファイルの複数回ロードはしません。 ruby1.9.2以降はカレントディレクトリをロードしなくなった。

recuire 'foo'
recuire_relative 'foo'

とすれば良い。 railsでconfig/environments/staging.rb とかでproductionとほっとんど同じだけど一部だけ修正したい時とかに

# config/environments/staging.rb
recuirerelative 'production'

Rails.application.configure do
  ##変更したい修正を上書き
end

とかするversionのアップデートとかにdiffとるのが便利になる。

githubで公開鍵公開してた

全然知らなかった。

https://github.com/${USERNAME}.keys

でアクセスすれば表示される。 「公開鍵教えて下さい」とか発言してごめんなさい。