成らぬは人の為さぬなりけり

エンジニアライフをエンジョイする為のブログ

Ruby

Rubiniusを試す #1 (Install,Benchmark)

だいぶ久しぶりの投稿です。 ちょいとふと思い立ってやってみたので、メモ。 Macにrbenv(ruby-build)でRubiniusをインストールする。 Rubiniusとは http://rubini.us/doc/ja/what-is-rubinius/ Rubinius は プログラミング言語 Ruby の実装です。 Rubiniusに…

Faraday パラメータのエンコードを差し替えてみる

前回に引き続きFaradayネタです。 Faradayはquery_stringをescapeする時に半角スペースを+にescapeするようなので %20にescapeするようにERB::Util#url_encodeでescapeするようにしてみます。 参考 : http://stackoverflow.com/questions/21283414/how-to-av…

Faradayを触ってみた

実はこれが、2014年最初のエントリー。サボりすぎ。 WebAPIを呼ぶスクリプト書くのにFaradayを使ってみたので、使い方などをメモっておこうと思います。 Faraday自体は前から知ってたんですが、リダイレクトとかめんどくさい事考えなくて良い場合に、 特にHT…

CLI for Redmine - climine (クリミネ) を書いてみた

Rubyを書きたくなったので、gemを作りました。 普段、タスク管理はRedmineを使ってるのですが、 わざわざRedmine見る為にブラウザにCommand+TABするのがめんどくさくて さくっと、コマンド打ってチケット確認したいなぁ、という思いがあったので、 ひとまず…

Chef-solo+knife-solo+Vagrantでサーバ構築を自動化してみる - その4 redis

今回は、githubのcookbookを使って、redisをインストールしてみます。 ※環境は前回と同じです。 今回の流れ Berksfileでgithubのリポジトリを指定する サーバに適用してみる forkして修正する サーバに適用してみる 超シンプル。

Chef-solo+knife-solo+Vagrantでサーバ構築を自動化してみる - その3 nginx

さて、今日は前回に引き続き nginxのインストール&設定をやってみたいと思います。 ※環境は前回と同様です。 今回の流れ Berksfileをいじる jsonファイルに設定を書く サーバに適用してみる 自前のconfを用意する サーバに適用してみる 今日もシンプル。

Chef-solo+knife-solo+Vagrantでサーバ構築を自動化してみる - その2 sudoers

さて、前回に引き続き、 今日はsudoersをいじってみようと思います。※環境は前回と同じです。今回までのコードは、以下においてあります。yagince/chef-sample · GitHub 今回の流れ Berksfileをいじる berks install jsonファイルで設定を書く サーバに適用…

Chef-solo+knife-solo+Vagrantでサーバ構築を自動化してみる - その1 ユーザー追加

本日(8/24)、LL祭りで、 Inftastructure as LLというセッションを見てきました。 最近、Chef-solo+knife-soloをいろいろいじっていたので、今日は一番興味深いセッションでした。いい機会なので、最近自分がChef+Vagrantでやった事を、メモしていきたいと…

Heroku+Rails4+Devise+MySQL+Redis

今日いろいろやってみて、はまったポイント等をメモ。 環境 MacOSX 10.8.3 Ruby 2.0.0p0 (アップデートしなきゃ、、、) Rails 4.0.0

Gitのコミットメッセージを書き換えるフックをRubyで書いてみる

コミットメッセージにチケット番号を埋め込みたい! チケット番号はブランチ名から判断してほしい みたいな事、ありせんか? 僕はあります。というわけで、コミットメッセージをいじるフックをRubyで書いてみたいと思います。

Perl勉強日誌 - FizzBuzz

Perlを勉強し始めたので、 現状の知識でFizzBuzzってみます。 PerlでFizzBuzz use 5.012; my @fizz = qw/Fizz/; my @buzz = qw/Buzz/; foreach (1..100) { say ("$fizz[$_%3]"."$buzz[$_%5]" || $_); } 実行結果 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz…

Ruby2.0の新機能を勉強してみる その3 Refinements

前回に引き続き、 Ruby2.0の新機能のお勉強です。今回は、実験的に追加された機能である「Refinemens」をやってみようと思います。 今回のテーマ 「Refinements」 環境 MacOSX 10.8.3 ruby 2.0.0-p0 RVM 1.19.1

Ruby2.0の新機能を勉強してみる その2 Module#prepend

前回は、キーワード引数をテーマにしました。 で、次は遅延リストを書こうかと思ったんですが。 Module#prependの方が面白かったので、 今日はこっちを書きたいとおもいます。

TypeScript+Jasmine+PhantomJs+GuardでTDDしてみる

Ruby2.0の勉強そっちのけで、gem作ってました。。。仕事でTypescript使ってjsのライブラリ的な物を作る事があるので、Jasmineでテスト書きながらTypeScriptコンパイルしてPhantomJsでテスト流す、という仕組みを、Guard使ってplugin作ってみた。github.com/y…

Ruby2.0の新機能を勉強してみる その1 キーワード引数

久々のRubyネタです。 2013年2月14日にRuby2.0.0-p0がリリースされました。 2ヶ月程経ってしまいましたが、自称Rubyistとして、 新機能を勉強したいと思います。 Ruby 2.0.0-p0 リリースちなみに、本シリーズは1回1テーマでお送り致します。 今回のテーマ 表…

PhantomJs+Vert.x(JRuby)でSockJsの疎通確認をしてみる

さて今回は、最近なにかとよく見るPhantomJsを使ってみようと思います。 背景 今、ちょっといろいろあって、 Vert.x+SockJsをやろうとしるんですが、以下のような問題が、、、 SockJsのクライアントがブラウザ用かnode.js用しかない node.js用は、XHRStream…

RubyでSkypeにメッセージを投稿(Mac専用)

githubのnotifyやjenkinsのrssを常に気にしていたいのですが MacのFireFoxのJenkinsRSSリーダーがどうも上手く通知してくれないし、 常にブラウザ開いているわけでもないので、 今仕事で常に開いているSkypeに通知するbotを作ってみようかと思いました。 Rub…

jpmobileでiPhoneの絵文字対応

iPhoneの絵文字は iOS2.2から絵文字を扱えるようになりましたが、 当初はSoftbankのUnicodeマッピングになっていました。しかし、現在のiOS5.1ではUnicode6.0の絵文字が使用されているようです。Railsで、Opensocialのアプリを作っているのですが、 jpmobile…

ifの条件式で代入もしてしまう

好みの問題なのかもしれません。 (と、思っているのは、自分の知識が浅いからかな?) 以下のようなコードがあったとします。 def hoge foo = Something.foo if foo foo.do_something end end こういう場合、私はこう書きたい。 def hoge if foo = Somethin…

case式の対象オブジェクトのメソッドの戻り値を条件に使用する

うん、タイトルだけだと、意味わからん、という感じかと、、、 わかるかな? なんて書いたらいいのか、悩んだので、 とりあえず、書いてみました。 コードで示した方が分かりやすいかと。 ※やりたいと思った事(以下のコードは間違ってます) case hoge when…

RVMとEmacs

EmacsでRubyの開発を行う場合、 おそらくみなさんFlymakeを使っているのではないかと 勝手に思い込んでおりまして、 私はFlymakeを使っている次第でございます。 「emacs flymake ruby」とかググると、 まぁ、いろいろ出てくるわけですが、 例えば、 EmacsWi…

知らない内に活用してるメソッド to_proc

Ruby1.9を使用している人は知らないうちに(?)活用してると思いますが。 Ruby1.9から、Symbol#to_procを使用するのにライブラリは不要になりました。 初めて見た時は、なんじゃこりゃーー、と思ったけど、 意味が分かれば、どうってことは無い。 例えば、…

クラスメソッドの定義

初歩的な事なのだけど、 改めてクラスメソッドの定義方法にいろんな書き方がある事を忘れていたのでメモ。 # 特異メソッド方式。 class Hoge def Hoge.foo end def self.foo2 end end Rubyではクラスは定数であり、つまりオブジェクトである。 そのオブジェ…

OpenSocialアプリ開発の便利ライブラリ「opensocial-wap」

Rails/SinatraでOpenSocialアプリを開発する上で、 面倒な部分を楽にしてくれるライブラリがあるらしい。その名も「opensocial-wap」 Rails/Sinatraでガラケー向けOpenSocialアプリを開発する「opensocial-wap」|オープンソース・ソフトウェア、ITニュースを…

bool値に変換する「!!」

Rubyの条件式の結果は、 nilとfalse以外はすべてtrue となりますよね?なので、 def hoge "a" end if hoge p "TRUE" else p "FALSE" end これの結果は "TRUE" となります。しかし、 hogeメソッドの戻り値は、あくまで「a」であり、 「true」ではありません。…

empty?とnil?を判定するような感じのblank?

通常、Rubyプログラムで、 nilじゃなく、かつ空ではない ことを確かめたい場合、 !obj.nil? && !obj.empty みたいな事になるのではないかと思います。 ※すいません、自分が知らないだけかもしれません。が、しかし、 Railsアプリでは、 こーなる。 rails con…