ruby
最近Elixirが人気ですよね。Erlang VM上でOTPの恩恵を受けながら簡潔な記法で並行処理を書ける言語ということで話題になっていますな? Elixirは関数型プログラミングのエッセンスを取り入れていると言われており、そのひとつにPipe演算子(|>) がある。 Enume…
スライドです 本当は怖いオープンクラスとDuckTyping - 表参道.rb #4まぁたいした話じゃないんですが、マッドマックスの画像をスクリーンに大写しできたのでその点だけで個人的には満足しています「型を讃えよ」
あまりにもテスト通らないのでデスメタル聴き始めた— ⁰⁰⁰⁰null (@yuroyoro) 2015, 7月 2このような事があったので自動化した。 Mac限定。 こんな感じ。successだとレベルがアガる。事前にbash-itunes というコマンドラインツールを入れておく。 iTunesを日本…
何をいっているのかというと、こういうことですrubyで、obj.send(pred) がtrueならばselfを、装で無い場合はnil を返すメソッド欲しい— ⁰⁰⁰⁰null (@yuroyoro) August 28, 2014foo.present? ? foo : other みたいなの書くのダルいので— ⁰⁰⁰⁰null (@yuroyoro) …
今まで、rspecコマンドでは任意の引数を渡すことはできなかったので、環境変数経由で引き渡すという方法をとっていた。 ( ;゚皿゚)ノシΣ フィンギィィーーッ!!! MY_OPT1=true rspec spec/my_spec.rb環境変数で渡すのはダルいのでなんとかしたいと思い、`--tag`オプション…
3年ほど前に、GitterbというGitリポジトリのコミットログを可視化するツールを作った。 ぼくのかんがえたさいきょうのGit Repository Browser - ( ꒪⌓꒪) ゆるよろ日記 Gitterb by yuroyoro yuroyoro/gitterb · GitHub このアプリケーションはRuby1.9/Rails3…
arr = [ ["foo", "", "bar"], nil, ].sample arr.try(:reject, &:blank?) #=> [“foo”, “bar”] Object#tryはnil-safeなcallとして使える blockを取るメソッドのsymbolを渡した場合に、第二引数にprocを渡しても動作する 要activesupport.gem tryと関数合成は…
前回から一年以上が経過しているけど、最近lambda_driver.gemに機能を追加したので、そのことについて書こうと思う。 Rubyで、モナ……っぽい関数合成を実装した話だ。Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日…
こんなコードがあった。 blockの評価結果が偽だったらエラーにする、という意図だと。 def die!(&block)! yield || raise("error") end 実行 irb(main):008:0> die! { true } RuntimeError: error from (irb):6:in `die!' from (irb):8 from /usr/local/var/…
LambdaDriver by yuroyoroRubyで、Procやlambdaで関数合成できるようにしたかったので、lambda_driver.gemというのを作った。 内容的にはこの辺で書いたヤツをgemにした感じ。 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 …
yajl(Yet Another JSON Library)っていう高速なJSONライブラリがあって、yajl こいつをrubyから使えるようにするyajl-rubyってgemがあって、これをMultiJsonのBackendに変更することで、RailsにおけるJSON処理の高速化が期待できるデス。brianmario/yajl-rub…
やっつけで適当に書いてみた。yuroyoro/rmruby · GitHub一体何がしたいのか……。 irb(main):001:0> require 'rmruby' => true irb(main):002:0> Rmruby.eval('3.times do |n| puts "hello #{n}!" end') hello 0! hello 1! hello 2! 3 => nil 毎回mrbインスタ…
ブランチングモデルとしてgit-flowを使っていて、メインラインとして、本番適用中のmasterブランチと、次期リリース用のrelease/9999ブランチと、メイン開発ブランチのdevelopがある。 ところが、開発中は頻繁にブランチを移動するし、ブランチによってDBの…
前回からかなり期間を空けてしまったが、今回からRubyにおいてnilといかに闘うかについて書く。 本記事は以下略。わかれ( ゚д゚)。 Object#try Object#tryはActiveSupportで提供されるメソッド、レシーバーがnilじゃない場合に引数のSymbolのメソッドを呼び出…
Rubyのデフォルト引数では、他の引数に依存した式を書ける。地味に便利。 [1] pry(main)> def foo(a, b = a * 2) [1] pry(main)* puts b [1] pry(main)* end => nil [2] pry(main)> foo(3) 6 => nil 再帰もかける。デフォルト引数で再帰させてフィボナってみ…
本記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。「lambdaの暗黒面」に堕ちたプログラマが可読性とかメンテナンス性とか無視して好き放題コード書いたらこうなった。悪気はなかった。もしかしたら有益…
本記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 プログラマ厨二病をこじらせるとこんなヒドいことになるという実例を示すものであって、可読性やメンテナンス性についてのツッコミはご遠慮願いたい。…
本記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 注意点として、この記事は、プログラマ厨二病のひとつである「ラムダ症候群(λ-Syndrome)」に罹患した患者にRubyを書かせると、どんなヒドいことになる…
この記事は、Rubyを書くにあたって「いかにブロックを書かずにすませるか」を追求した、誰得な連載である。 だって、ブロックって汚いじゃん?仮引数の|x|とかキモイ。 Symbol#to_proc 基本中の基本。instance method Symbol#to_proc以下のようなArrayがあっ…
というのを作ったました。ちょこちょこ機能改善してます。 yuroyoro/git-issue · GitHub git-issue | RubyGems.org | your community gem host 仕事では、異臭管理システムはRedmineを使っていて、作業はsshでサーバに入ってコード書いてるわけです。 で、次…
以前書いた、「 ちょっとの手間でRSpecの出力をキレイにするためにnamed_letというのを書いてみた - ゆろよろ日記」を、 ちゃんとしたGemにしてrubygems.orgに登録しました。 named_let | RubyGems.org | your community gem host ソースコードはGithubにあ…
Java使いはおなじみのOGNL(Object Notation Graph Language)っぽい記法で、Rubyのオブジェクトグラフを辿るアレを書いてみた。evalすればってツッコミはなしで、な。 厳密にOGNLになってなくて、どっちかっていうとRubyっぽい表現になってるけど、違和感ない…
RSpecの話です。 RSpecは、テストコードがそのまま仕様を記述するドキュメントになる、というのが大きな利点の一つです。 しかし、rspecコマンドに-dオプションを渡して出力されるドキュメントは、必ずしも読める文章になっているとは限りません。 例として…
こんなヤツデモサイトはこちら http://gitterb.yuroyoro.net/ Gitである程度運用してると、ブランチがいっぱいになっていつどこから生えたのかわからなくなったり、どのブランチがマージされてるか把握できなかったりとかがあると思う。 たとえばgit log --g…
俺得メモ。もう3回くらい同じこと調べたんでいい加減メモ残しておく。 Net::HTTP にset_debug_outputってメソッドがあってコイツに出力先を渡せばいい。残念ながらこのset_debug_outputはドキュメントには載ってないのでnet/httpのソース見てね。 require 'n…
scanl関数は、(a -> b -> a)型の関数と、初期値aとリスト[b]が与えられて、順番に引数に渡された関数を適用した計算をして計算結果のリストを返す関数。foldlの計算の中間結果を集めたリストを返すとイメージしてもらえば。 scanl :: (a -> b -> a) -> a -> …
行ってきました。大森まで。 参加された皆さん、お疲れ様でした。 named_scopeについてくわしく もろはしさんのセッション。 資料はこれ→ named_scopeについてくわしく - moroの日記プレゼン資料、説明ともにわかりやすかったです。 JavaのORM(Hibenateやiba…