告発/再審請求

Just another WordPress.com site

Archive for the ‘Ruby’ Category

Twitter APIから取得したテキストのハイパーリンクを生成(Ruby)

leave a comment »

Twitter APIから取得したテキストをHTMLに変換するための公式ライブラリ – xmallocのプログラミングノート.

昨夜このページを見つけてからRubyのライブラリについて調べたのですが、情報が乏しくて時間がかかりました。

Rubyのライブラリ自体は、見当を付けて、
sudo gem install twitter-text
でインストール出来ました。

使い方に関する情報はほとんど見つからず、
https://github.com/mzsanford/twitter-text-rb

README.rdoc
を参考にしました。

具体的には次のようにメソッドを定義しました。

require ‘rubygems’

require ‘twitter-text’
の宣言をやっておきます。

def html_link(x)
	include Twitter::Extractor
	usernames = extract_mentioned_screen_names(x)
	include Twitter::Autolink
	html = auto_link(x)
	return html
end

というメソッドを定義しました。extract_mentioned_screen_namesに文字列の変数を渡すと、@付きのスクリーンネームを配列に取り込むようです。ここに格納されたものだけが、リンクの変換の対象になるみたいです。有効なアカウントのチェックもしているのかもしれないです。
それで再度auto_linkに文字列を渡しますが、ここでURLと、先ほど配列に登録されたTwitterのスクリーンネームがリンクに変換されるみたいです。

ちなみにirbで実行すると有効にはならないリンクが生成されました。単純に文字列を置換しているだけはなさそうです。

あとは次のような感じでメソッドを呼び出しています。使うのはツイートの本体部分のみです。

h[“text”] = html_link(i.text);

Written by 廣野秀樹

2011/05/15 at 10:35

カテゴリー: Ruby

Tagged with

Rubyのコマンドライン引数

leave a comment »

 ちょっと適当に作ってみましたが、メモです。

実行結果:
u9x@G31M-U1104:~/tmp % ./optparse.rb こんにちは ありがとう いただきます
0 こんにちは
1 ありがとう
2 いただきます

スクリプトのコード:
#!/usr/bin/ruby -Ku

if ARGV.size > 0 then
0.upto(ARGV.size-1) do |x|
print “#{x} #{ARGV[x]}\n”
end
end

Written by 廣野秀樹

2011/05/14 at 12:35

カテゴリー: Ruby

Rubyのコマンドラインオプション処理(optparse)

leave a comment »

class OptionParser.

 ややこしいですが、ある程度基本的なところは理解できてきました。使わないでいるとすぐに忘れそうなのでメモしておきます。

#!/usr/bin/ruby -Ku

require ‘optparse’

chk=false
OptionParser.new {|opt|

opt.on(‘-a VAL’) {|v|
chk = v; p “こちらは[]がないので引数は必須になっています。値をありがとうです。→ #{v}”
}
opt.on(‘-b’) {|v| chk=v; p “真偽値は、#{v}です。よろしくです!” }
opt.on(“-n”, “–nameset VALUE”, {“hi” => “hirono_hideki”, “ks” => “kokuhatu_hirono”}){|w|
p “こちらは[]がないので引数は必須になっています。値をありがとうです。→ #{w}”
}
opt.on(“-o”, “–osset [VALUE]”, {“ln” => “Linux”, “ub” => “Ubuntu 11.04”}){|w|
p w ||= “未定義です。引数はオプションなので代わりに入れました。よろしくです!”
}
opt.parse!(ARGV)
}

if (chk) then
p “#{chk} OK\n”
end

#実行例:
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -a xxx
#”こちらは[]がないので引数は必須になっています。値をありがとうです。→ xxx”
#”xxx OK\n”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -b
#”真偽値は、trueです。よろしくです!”
#”true OK\n”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -n ks
#”こちらは[]がないので引数は必須になっています。値をありがとうです。→ kokuhatu_hirono”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -o
#”未定義です。引数はオプションなので代わりに入れました。よろしくです!”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -o “値です。”
#”未定義です。引数はオプションなので代わりに入れました。よろしくです!”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -o ln
#”Linux”
#u9x@G31M-U1104:~/tmp %

Written by 廣野秀樹

2011/05/14 at 10:43

カテゴリー: Ruby

ヒアドキュメントによる複数行文字列の作成 – 文字列 – Ruby入門

leave a comment »

また「print」メソッドなどの引数に指定する場合は次のような記述方法となります。

また「print」メソッドなどの引数に指定する場合は次のような記述方法となります。

print(<<"EOS")
こんにちは
お元気ですか
ではさようなら
EOS

引用元: ヒアドキュメントによる複数行文字列の作成 – 文字列 – Ruby入門.

 これは知らなかったです。初めての発見ですが、気になることはありました。ヒアドキュメントが使えなかったら”とかの処理に困るのです。特にHTMLは”が多いです。

Written by 廣野秀樹

2011/05/14 at 05:27

カテゴリー: Ruby

LinuxとRubyでのクリップボード操作

leave a comment »

CUIでクリップボードを操作する「Clipboard」 – MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ.

 前にも何度か調べたことがあったのですが、「Ruby クリップボード Linux」などと検索をしても見つかるのはWindows環境のものばかりでした。地道に探せばあるに違いないとは思っていましたが、このページが解決のきっかけになりました。

git clone http://github.com/janlelis/clipboard

でダウンロードをしても中身は

CHANGELOG.rdoc Gemfile.lock README.rdoc VERSION doc spec
Gemfile LICENSE Rakefile clipboard.gemspec lib

な状態で、README.rdocをみると、

=== Non-gem requirements
* *Linux*: +xclip+, you can install it on debian/ubuntu with sudo apt-get install xclip

なことが書いてありました。別のソフトをすすめているようにも読めました。

require ‘clipboard’とあるぐらいだからgemにあるだろうと見当を付け、

sudo gem install clipboard

とやると、めでたくインストールできました。

 なんかこの3つしか使い道はないみたいですが、これでも十分です。
=== Usage
You have Clipboard.copy,

Clipboard.paste and

Clipboard.clear

 xclipというのもインストールしてみたのですが、ネットで調べても情報は少ないみたいでした。
http://d.hatena.ne.jp/aki-yam/20080705/1215209992
によると、

echo -n `pwd` | xclip -i -selection clipboard

という使い方をするみたいです。試すと使えました。

 もともと自分は数年前からコマンドラインのクリップボード操作にはxselを使っていました。

pwd | xsel -b

 同様のことはこれで出来ますが、よりシンプルです。これも情報の少ないコマンドでしたが、割と機能が多いです。manコマンドで見てもけっこうオプションの数があります。

Written by 廣野秀樹

2011/05/14 at 04:59

カテゴリー: Ruby, Ubuntu

Rubyで外部プログラムの呼び出しに変数を使う

leave a comment »

Rubyで外部プログラムの呼び出しに変数を使う – 睡眠不足?!.

irb(main):043:0* $filename=”12665.tmp”
=> “12665.tmp”
irb(main):044:0> `xsel -b “再審請求の専用ブログ、そのまま金沢地方裁判所提出資料です。”
irb(main):045:0> `cat #$filename`
=> “xxxxx\nyyyyy\n”

という感じでirbでやってみたのですが、Rubyのコマンド置換演算子でシェルを呼び出してもリダイレクトは使えないみたいです。

Written by 廣野秀樹

2011/05/14 at 04:11

カテゴリー: Ruby

systemu で外部コマンドを実行する

leave a comment »

Written by 廣野秀樹

2011/05/14 at 03:47

カテゴリー: Ruby

Rubyでの標準入力からの変数代入と分岐処理

leave a comment »

雛形みたいな感じで作ってみました。ファイル名には$$のプロセス番号を使っています。普通は処理が終わり次第削除する一時ファイルです。個人的にスクリプトはUNIXシステムに一体化したbashを使うことが多いです。

今回はTwitterAPIを操作するライブラリの関係で、Rubyでスクリプトを作成したのですが、余り使うこともないので忘れてしまうことが多いです。なお、ネットでちょこちょこ調べながら自己流で適当に作っています。


fw=File.open("#{$$}.tmp", "w");

puts "選択してください。's'で保存 'q'でスキップ 'Q'で終了";
while chk = gets.chomp
	case chk
	when 'q'
		break;
	when 's'
		fw.write(`date`);
		puts "保存しました。"
	when 'Q'
		fw.close;
		exit;
	else
		puts "'s'で保存 'q'でスキップ 'Q'で終了"
	end
end

fw.close;


Written by 廣野秀樹

2011/05/12 at 06:51

カテゴリー: Ruby