ぴよログ

↓に移転したのでこっちは更新されません、多分。

Ruby

テキスト欄に書いたRubyのコードをAutomatorで評価する

昨日つぶやいたこれについてです。 選択したテキストをRubyのコードとして評価して結果を置き換えるというやつ。これ結構前に知って使ってなかったけどいざやってみるとめちゃくちゃ便利。ちょっとした計算とか。 / “Mac を…” http://t.co/qztBDb4wUY #ruby …

bundle installするパスを一箇所にまとめる

リスク回避のためにソースコードはDropboxの管理下に置いています(一人プロジェクトだと% git pushを忘れる可能性も少なくありません)。 プロジェクトに関わるソースファイルだけであれば大した容量にはならないのですが、依存するライブラリのソースコー…

Rails4.1のsecrets.ymlはfigaroと違うの?

Rails4.1が正式にリリースされたらしいので少し見てみたけど、secrets.ymlとかいうのがサポートされるようになったんですね。 公開したくないAPIキーなどの情報をconfig/secrets.ymlに書いておくとRails内でアクセスできるのだとか。 こうやって書いておくと…

Pryからソースコードをエディタで開く

RubyのREPLはpryを使っています。 pryを使うことでshow-sourceというコマンドを使えるようになります。このコマンドを使うとRuby本体のコードではないコードに限りすぐに参照することができるというものです。 $ pry [1] pry(main)> show-source Pry From: /…

Railsで"invalid byte sequence in UTF-8"

これ面白かったので紹介。 Rack/Ruby on Rails: ArgumentError: invalid byte sequence in UTF-8 | Running with Rails - Dev Blog not only for Rails fanatics! RailsアプリケーションのURLにこのパラメータ=>?%28t%B3odei%29をつけるとエラーになることが…

Rubyの知られざるコマンドラインオプション

知られざるとか言ってるけど自分が知らなかっただけです。 グローバル変数やらコマンドラインオプションやらを駆使して、10数行あるコードを最終的には1行にまで圧縮するという技をやってのけている記事がめっちゃ面白かったので、登場したオプションなんか…

XMLとRubyのHashを相互変換する方法

XMLからHashへの変換とその逆変換を考えます。ここでは2つの方法を取り上げますが、結論としてはXmlSimpleを使うほうがよさそうです。 サンプルXML XMLのサンプルとしてはてなブログのAPIで返ってくるXMLを使います。入っている値は実際とは異なっていますが…

RSpec: SonicGarden Study #08 参加しました

UStreamでやってたので参加しました。 RSpec初心者に送るRSpec最強チュートリアル ~RubyMineもあるよ!~ SonicGarden Study #08 - SonicGarden Study | Doorkeeper 勉強会の内容自体は復習的なものだったので自分にとっての新しさはありませんでしたが、Q&…

ActiveRecordのようなselectやwhereをObjective-Cで使う

RailsのActiveRecordやC#のLINQではデータ列に対して選択や絞り込みなどを行う際、SelectやWhereなどを用いて要素を絞りこんだり要素のプロパティの集合を取り出したりすることができます。言い換えるとある集合に対する操作の結果として別の集合(または値…

RubyのOPMLパーサー

結論 これ使えば一発です。 feedbin/opml_saw あとは雑談 2013年6月末のGoogleリーダーのシャットダウンの際、OPMLというフォーマットを初めて知りました。なんのことはないただのXMLなんですが、一応アウトラインプロセッサーのためのMLということでOPMLと…

ウェブサイトやブログ記事中の本文を抽出するgem

大元はこちらで、 Webページの本文抽出 (nakatani @ cybozu labs) Ruby1.9対応され、gemになったものがこちら。 mono0x/extractcontent Bundlerを使ってリポジトリ指定でインストールできます。 gem 'extractcontent', :git => 'https://github.com/mono0x/e…

Rails: form_forでの数値用のコントロールとvalidates numericality

form_forで何が使えるのかって全然把握していなかったのですが、number_fieldってのがあるんですね。 Hamlで書くとこういう感じに。 = form_for @my_model, method: :put, role:"form", remote:true, class:"form-horizontal" do |f| .form-group = f.label …

Rubyでcronのような定期実行を実現するclockwork

先日の記事でもちょろっと紹介しましたが、RSSリーダーを開発した際にフィード更新ジョブを定期的に発行するためにclockworkというgemを使用しました。 RSSリーダーの記事更新のバックグラウンドジョブ概要 - PILOG 単独で使う まずはRuby単独で使う方法です…

RSSリーダーの記事更新のバックグラウンドジョブ概要

RSSリーダーを作ったときのことをまとめておくシリーズ。 これまでの記事はこちら。 RSSリーダー - PILOG 僕が知る限り全てのRSSリーダーは登録フィードをバックグラウンドで更新し記事を追加します。RSSリーダーのユーザー側、システム側から見てみます。 …

CocoaPods: pod installが失敗する問題

今日(2014/02/04)1週間ぶりにぐらいに$ pod installしたら妙なエラーが出てライブラリのインストールができなくなりました。 エラーメッセージの最後はこんな感じでした。 Pull is not possible because you have unmerged files. Please, fix them up in …

アイデアカードとかいうツールをrubygem化

アイデアカードとかいうアイデア出しのサポートツールを見つけました。 アイデアカード公式サイト 目的、着眼点、どう変えるかという3種類のカードがあってカードを引くことでランダムなフレーズが完成するってやつです。昔そういう遊びをしたことはありませ…

RubyMine:rbenvのRubyを切り替える

RubyMine入れてみました。少しずつ慣れていきたいです。 起動時はコマンドラインで使っていたrbenvのバージョンと異なるバージョンのRubyを使おうとして何やら怒られたました。明示的にバージョンを切り替える必要があるようです。 やりかた コマンドキー+,…

RubyでGrowlに通知を出してみる

Growl、有料になっちゃったけど使ってます。guardで監視してrspec動かしたり、重いコマンドが終わったら通知させたり。 実行時間の長いコマンドの終了をGrowlやメール通知するRubyスクリプト - 株式会社CFlatの明後日スタイルのブログ とある用途で、いくつ…

Feedzirraのupdateメソッドを読み解く

少し前にRSSフィードをパースするgem、Feedzirraの紹介記事で次のようなことを書きました。 そうするとupdateメソッドが使えるようになります。このような流れで更新された記事だけを取り出すことができるようになりました。 なお、Feedzirra::Parser::RSS以…

RubyでRSSフィードをパースするgem、Feedzirra

RailsでRSSリーダーを作ったときに得たノウハウ第2弾、RSSフィードのパースのところを書いてみようと思います。 第1弾としてこんなん書きました。 個別ページのURLからRSSフィードURLを取得するfeedbag - PILOG サイトURLを渡すとHTMLを解析してRSSフィード…

webmockでHTTPリクエストをstubしてファイルの中身を返す

ユニットテストのときのAPIリクエストは本当にAPIをたたくのではなくstubしておくことで、決まったレスポンスを受け取ってテストしやすくするという話です。よくある話ですね。 RubyでRSpecを使っている場合です。 RSpecを含めいろいろなテストフレームワー…

期間を表すRangeオブジェクトが便利

Rubyで日付・日時を扱うときはDateTimeなどのクラスを使いますよね。これらのインスタンスは不等号で大小を比較することができるようになっています。 あるDateTimeインスタンスが指定した期間に含まれるか、というようなことを調べたいときはRubyのRangeク…

個別ページのURLからRSSフィードURLを取得するfeedbag

自分用のメモも兼ねて今は亡きRSSリーダーを作ったときのノウハウを少しずつときどき書いていこうと思います。 RSSリーダーによくある機能として現在開いているページのRSSフィードを購読するというフローがあるんですが、それと同じ機能を実現しようとした…

SimpleOAuthでAPI呼び出し

TwitterAPIのRuby用ラッパーのソース(sferik/twitter )を読んでいてSimpleOAuthというライブラリを知ったので、はてなブックマークのAPIを例にしてちょっとした使い方の例を書いてみます。 laserlemon/simple_oauth はてなのAPIについてはこちらを参考にし…

Ruby単体でローカルWebサーバーを起動する方法

先日の記事内でも触れたけど、ちゃんと見出しを付けて記事にしておいたほうがいいかなと思い抜粋しました。シングルカットみたいなもんです。 md2review+ReVIEW+guard+livereloadで快適ドキュメントライティング - PILOG Rubyが入っていれば以下のコマンドで…

Railsでログインとは別に複数のサービスとの連携を行う方法

ログインはメールアドレスでさせておいてログイン後に各種SSOサービスとの連携を済ませる方法を考えてみます。 まず、お手軽にやりたいのでDeviseとOmniauthを使うのは確定です。omniauth-facebookやomniauth-twitterなどを使うと簡単に連携できますよね。 …

Gitで追跡されていないファイルを消したりignoreしたり

Gitを使い始めてから使っている俺々スクリプトの紹介。Gitで管理したくないファイルを消したり.gitignoreに追加したりを簡単にするスクリプトです。 git status -s $ git statusの出力って色々うるさくないですか?あれがすげー見づらいので僕は$ git status…

resque-schedulerで予約済みのJobを複数削除

公開されているresque-schedulerで条件に該当するジョブをまとめて削除する方法が見当たらなかったのでハックしたという話です。 resque-schedulerはバックグラウンド用gemであるResqueをさらに拡張したもので、cronのような定期的な動作をさせたり、特定の…

md2review+ReVIEW+guard+livereloadで快適ドキュメントライティング

先日はてなで見かけたこちらの記事みて自分なりにやってみたいことがでてきたのでそれについてメモってみます。 Markdown記法+Git+md2review+ReVIEWで原稿・ドキュメント管理 - プログラマになりたい やりたいことというのはこんな流れです。 Markdownでドキ…

railsのサブコマンドが使えなくなる問題の原因はbinstubs

半年ほど前ですがアプリケーションをデプロイした先でコンソールを起動できない問題に遭遇しました。よくわからなかったのでQA@ITで質問を投げたのですが、結局解決には至らず。 AWSにデプロイしたRailsアプリケーションのコンソールを起動したいがUsageが…