2013-06-01から1ヶ月間の記事一覧

String#[]の括弧内に正規表現

Rubyベストプラクティス -プロフェッショナルによるコードとテクニック作者: Gregory Brown,高橋征義,笹井崇司出版社/メーカー: オライリージャパン発売日: 2010/03/26メディア: 大型本購入: 9人 クリック: 307回この商品を含むブログ (47件) を見るを読んで…

作業ディレクトリをスクリプトのあるディレクトリに変更するイディオム(Win環境の日本語パス関連で追記有り)

Dir.chdir(File.expand_path(File.dirname(__FILE__))) Dir.chdir(File.dirname(File.expand_path(__FILE__))) 他のスクリプトからrequire/loadで読み出されるスクリプトで、そのスクリプトファイルからの相対ディレクトリのファイルを(永続化などで)指定…

clockwork gemの使い方

自転車ロードレース放送予告bot[twitter:@cycletvschedule]を最近作った[twitter:@riocampos]です。 当初はtweetするRubyスクリプトを5分毎に起動するようcronというかlaunchdに5分刻みの時刻を指定する設定を行っていました。しかし(Mac miniの動作環境の…

スクリプトの時刻付きログ出力メソッド

log_pathにlog_textを出力。 なおMac OS Xでのローカルユーザのlogファイルは ~/Library/Logs/ に置かれます。 def log_with_time(log_path, log_text) open(File.expand_path(log_path), "a+") do |f| f.puts Time.now.strftime("%Y-%m-%d %H:%M:%S") + " "…

launchdの時刻指定を複数時刻にしたい

Mac

launchdの作業ディレクトリ(Lingon 3を使ってplist作成) - 別館 子子子子子子(ねこのここねこ) の続きです。 cronだと次のような"*"(ワイルドカード)記法が使えます。 # 毎2時間おきに date コマンドを実行 0 0,2,4,6,8,10,12,14,16,18,20,22 * * * da…

rubyでGmailのfrom・subject・本文を読み込みたい(mail gem編)

参考: File: README — Documentation for mail (2.7.1) Class: Mail::IMAP — Documentation for mail (2.7.1) 初期設定 require 'mail' require 'kconv' require 'sanitize' mail = Mail.defaults do retriever_method :imap, { :address => "imap.googlema…

twitter gemを用いずにtwitter APIを扱う(OAuthのあるjsonの取扱練習)

まともな記事をOAuth gemだけでTwitter APIを使ってみる - 別館 子子子子子子(ねこのここねこ)に書きましたのでそちらをご覧ください (註:元記事が古い(2009年)ので、若干修正しています) #!/usr/bin/env ruby # coding: utf-8 require 'oauth' require…

rubyでGmailのfrom・subject・本文を読み込みたい(Net::IMAP編)

twitterへ流し込みたいので。 参考: Google サイト RubyでIMAPを使ってGMailにアクセスする | netswitch! Blogger IMAP4のコマンド一覧 IMAP4のFETCHオプションの一覧 class Net::IMAP (Ruby 1.9.3) module Kconv (Ruby 1.9.3) 初期設定 require 'net/imap'…

Sinatra設定

参考サイト: Sinatra: README (Japanese) http://grow.pe/dojo/tips/41/Sinatra%E3%81%AB%E3%82%88%E3%82%8BWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80/ モバイルアプリ開発者のた…

twitter gemを使ったruby一行野郎(ツイート・トレンド・検索・フォロー&フォロワー一覧・リスト一覧&操作…)

注意:Twitter gemのバージョンが5未満の設定ですので、5以上だと以下の手順は無効ですゴメンナサイ 目次 ▼ツイート ▼タイムライン ▼数字idとアカウント名との変換 ▼ツイートIDで表示 ▼キーワード検索 ▼トレンド ▼フォロワー関連 ▼フォロー関連 ▼リストメン…

twitter OAuthのアクセストークンを取得

参考:http://weblog.nabetama.com/post/29954082449/ruby-twitter-bot-oauth 残念ながら参考サイトのsite指定が古くなってますorz (既にTwitter Application Managementでアプリケーション登録してCONSUMER_KEYとCONSUMER_SECRETを取得済みであることが前…

launchdの作業ディレクトリ(Lingon 3を使ってplist作成)

Mac

おことわり Yosemiteにしたあとで若干変更が必要になったので追記しました(2015/8/31)。 では 最近のMac OS Xはcronで繰り返し実行をさせるのではなく、launchdを使って実行させます。 その設定ファイルなんたら.plistは以下のディレクトリに登録します。 …

NHKラジオの現在放送中の番組名を返すスクリプト

番組表API(非公式)があるのでNokogiriで切って出力形式に。 何度も繰り返しアクセスするのはNHK側に迷惑だろうから、一度取ったデータはtabledataディレクトリにYAMLで保存します。 また番組表は当日午前5時〜翌日午前5時となっているので、午前5時を一日…

twitter gem設定で転ける→opensslかと思いきやSSL証明書のせい

注意:Twitter gemのバージョンが5未満の設定ですので、5以上だと以下の手順の一部(Twitter.configure周辺)は無効ですゴメンナサイとても簡単なのだけどメモ。 gemを入れる $ gem install twitter だけ。 twitterに登録 Twitter Application Management か…

rubyで画像の拡大縮小(RMagickの拡大縮小関係メソッドの違い)

RMagick RMagickでは画像を require 'RMagick' img = Magick::Image.read('original.png').first として読み込みます*1。 RMagickには拡大縮小のメソッドとして何種類かあります。パラメータとしては拡大(縮小)率scaleを指定、または縦横ピクセル(width, h…

(1..7).to_a.sort { |a, b| a[0] b[0] } ?

イテレータ解説である PHPer 向け Ruby のイテレータ解説 - まちゅダイアリー(2007-10-11) を読んでいて、気になる表記を見かけた。 ちなみに、イテレータの説明のために array_map メソッドを自作したけど、これらのメソッドは Array クラス(がインクルー…

Ruby再インストール

OpenSSLとreadlineを含めたインストールをしていなかったので再度入れ直してみる。 というのは Mac OSX Snow Leopard でRVMを使って1.8.7と1.9.xを共存 | Pistolfly http://alifedesign.net/2012/06/irb%E3%81%A8pry%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E3…

Rubyで分散を求める

Enumerableモジュールに追加する。(と、Array, Dir, File, Hash, IO, Range, Stringなどがインクルードしてるので、それらのオブジェクトで使える) module Enumerable def sum inject(0){ |accum, i| accum + i } end def mean sum / length.to_f end def …

論理演算子の自己代入について、ほとんどのRubyテキストで誤った説明をしている

などと大上段に構えた私はまだRuby(ほぼ)一年生です。でも気になったのです。 a += b a = a + b なのは直ぐに分かります。 しかし、 a ||= b a &&= b は a = (a || b) a = (a && b) ではなく a || (a = b) a && (a = b) だと Ruby 1.9.3 リファレンスマニ…

image_optimメモ

画像ファイルのロスレス圧縮(というかメタファイル削り)を行う。 ImageOptim — better Save for WebのRuby版。 もちろん不可逆圧縮も可能。 Optimize (lossless compress) images (jpeg, png, gif) GitHub - toy/image_optim: Optimize images using multi…

「Ruby 1 はじめてのプログラミング」tipsめも

近所の図書館にあったので今更ながら借りてきた。プログラミング学習シリーズ Ruby 1 はじめてのプログラミング作者: arton,宇野るいも出版社/メーカー: 翔泳社発売日: 2009/01/29メディア: 大型本購入: 5人 クリック: 95回この商品を含むブログ (30件) を見…

ruby-opencvメモ

OpenCV::IplImageのメソッド IPL(Intel Image Processing Library) Image class. IplImage is subclass of CvMat. IplImage support ROI(region of interest) and COI(color of interest). Most of CvMat method support ROI, and some of CvMat method supp…

ruby-vipsメモ

VIPS::Imageのメソッド グレーアウトしているのはObjectクラスのMethods。 pry(main)> VIPS::Image.new("image.jpg").methods.sort => [:!, :!=, :!~, :%, :&, :*, :**, :+, :-, :/, ::, :==, :===, :=~, :>>, :[], :^, :__binding__, :__id__, :__send__, :…

rbenvでsystemを選択するには

実はとても単純。 $ rbenv global system でおk。 参考サイト紹介 What do you get when you do rbenv global system ruby -v or rbenv local system ruby -v The special version name system tells rbenv to use the system Ruby (detected by searching …