Vim で実行する ruby のバージョンについて
Vim 上で ruby を単純に実行するには、:!ruby % を実行すればよいのですが、たまたま Nokogiri でエラーがでてしまった。
`require': no such file to load -- nokogiri (LoadError)
ターミナルから、ruby hoge.rb は実行できているのに。Vim で ruby のバージョンを確認すると
ruby 1.8.7 だった。rbenv で設定している バージョンが指定されていないようだ。
ググってもなかなか見つからない情弱orz.. やっと見つけた以下の記事。
VimからrbenvのRubyが呼び出せない問題が発生してハマった
感謝です! .zshrc にあった以下の記述を、.zshenv に書かないといけないみたい。
if [ -d ${HOME}/.rbenv ] ; then PATH=${HOME}/.rbenv/bin:${PATH} export PATH eval "$(rbenv init -)" fi
source ~/.zshenv して再度バージョンを確認すると
rbenv で設定しているバージョンが指定されました。
開発環境
RubyでTwitterのapiを使ってみる
rubyでTwitterのbot作成依頼などがあり、apiなどを使ってみたのでメモ。まあこれまた今さらネタですけど。
環境は、MaxOSX 10.6.7 Ruby 1.9.2
1.Twitterのライブラリをインストール
$ gem install twitter
2.Twitterアプリケーション登録申請
botに使いたいTwitterアカウントでログインしてTwitterアプリケーション登録申請にアクセスして以下の項目を入力します。
アプリケーション名: 任意の名称
アプリケーションの説明: 説明を10文字以上
アプリケーションのウェブサイトURL: 自分のTwitterのURLなど
アプリケーションの種類: クライアントアプリケーションを選択
標準のアクセスタイプ: Read & Writeを選択
Twitterでログインする: チェックをつける
登録完了後に表示される、「Consumer key」と「Consumer secret」をメモしておく。
3.TwitterのOAuth登録
gemでライブラリをインストールして実行
$ gem install oauth get-twitter-oauth-token $ get-twitter-oauth-token
・Consumer keyとConsumer secretを聞かれるのでメモしておいたのをコピペする。
・ブラウザが起動してアプリケーションを許可するか聞かれるので、許可するとPIN番号が表示される。
・ターミナル側で、PIN入力待ちになっているのでブラウザで表示されたPIN番号をコピペする。
・OAuthのtokenとtoken_secretが表示されるのでメモっておく。
メモった4つのkey情報を以下の該当箇所に入れて実行するとツイートされます。
# -*- coding: utf-8 -*- require "twitter" Twitter.configure do |cnf| cnf.consumer_key = "Consumer key" cnf.consumer_secret = "Consumer secret" cnf.oauth_token = "OAuth token" cnf.oauth_token_secret = "OAuth token secret" end Twitter.update("Hello World!!!")
タイムラインや自分のつぶやき、検索など
#タイムライン Twitter.friends_timeline.each do |res| p "#{res.from_user}: #{res.text}" end #自分のつぶやき最新10件 options = {"count" => 10} Twitter.user_timeline("t_ramu", options).each do |res| p "#{res.from_user}: #{res.text}" end #「rails」をキーワードで検索して日本語のもののみ取得する search = Twitter::Search.new search.containing("rails").language("ja").result_type("recent").per_page(5).each do |r| p "#{r.from_user}:#{r.text}" end
参考サイト
30分で誰でも作れるTwitter Bot開発・運用手順 – Ruby Twitter bot | はるかなる熊
File: README — Documentation for twitter (4.8.1)
サービスが開始した時に案内をもらう「Notify Me」を試してみた
MOONGIFTさんで紹介されていた、「Notify Me」を試してみた。
サービスが開始した時に案内をもらう。メールアドレス登録システム「Notify Me」|オープンソース・ソフトウェア、ITニュースを毎日紹介するエンジニア、デザイナー向けブログ
フレームワークはsinatraでデータベースはsqlite3を使用しているシンプルなWebアプリケーションです。
■導入手順(OS: CentOS5.2)
sqlite3をいれてから、sqlite3-rubyをgemでインストールします
$ gem install sqlite3-ruby
sinatraを入れます
$ gem install sinatra sinatra-sequel
次のコマンドを実行すると、notify-me.dbというデータベースファイルが作られてサーバが起動します
$ ruby -rubygems notify_me.rb
sinatraなので、http://localhost:4567 にアクセスします。
メールアドレスを入力して「NotifyMe!」ボタンをクリックすると完了画面が表示されます。
データベースを見てみる
$ sqlite3 notify-me.db SQLite version 3.7.4 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from subscriptions; 1|test1111@yahoo.co.jp|2011-02-09 11:34:31.491670+0900 sqlite>
ちゃんと入ってますね!