Ruby

Ruby インストール

estis2016/10/10 (月) 06:02 に投稿

wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar xvf ruby-2.3.1.tar.gz
cd ruby-2.3.1/
./configure --prefix=/home/myaccount/
make
make install

$ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

Debian ほぼ最小インストールにrubyをソースインストール、rails開始

estis2011/10/23 (日) 07:25 に投稿

と、rails new store とかしたら、

Installing sqlite3 (1.3.4) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/usr/local/bin/ruby extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite3-devel' and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more

Debian ほぼ最小インストールにrubyをソースインストール

estis2011/10/23 (日) 07:10 に投稿

とりあえずは、gccインストール。
後は、ソースダウンロード、解凍、configure, make, make install でひとまず完了。
しかし、gem install rails したら、

ERROR:  Loading command: install (LoadError)
    no such file to load -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand

とエラー。

zlib1g-dev をインストール後、再度 configure, make, make install で解決。
zlib-develとかいう名前ではないので、少し捜した。

invalid multibyte char (US-ASCII)

estis2010/09/05 (日) 14:09 に投稿

invalid multibyte char (US-ASCII)
というエラーが出てしまいました。

Rubyのバージョンが、1.9.1なので、

# -*- encoding: utf-8 -*-

のように、ソースの先頭行(先頭行がシェバングの場合は2行目)で、文字エンコーディングを指定する必要があり、
指定しないと、7ビットASCII(US-ASCII)だと想定されるのだそうです。

# coding: utf-8

# encoding: utf-8
など、先頭行(先頭行がシェバングの場合は2行目)にあるコメント行の中に「coding:」という文字列を探し、その後の文字列がエンコーディング名だと判断します。
エンコーディング名は大文字小文字を区別しない。だから、
# This file is coding: uTf-8
としてもかまわないのです。(こんなことしないでしょうけど)
coding:の後の空白も必須ではないのです。
#coding:utf-8
でも、動くことは動きます。
見にくいので、空白を入れて # coding: utf-8 の方が好きです。

UTF-8のバイトオーダーマークを、Rubyは理解してくれるそうです。

Twitterで特定アカウントあてのメッセージだけを表示してみるスクリプトをrubyで作ってみた

estis2010/05/19 (水) 00:15 に投稿

参考にしたのは、
http://ruby.g.hatena.ne.jp/garyo/20100512/p2
http://twitter.rubyforge.org/

ほとんど参考情報のまま。

#!/usr/local/bin/ruby

require 'twitter'

httpauth = Twitter::HTTPAuth.new('USERNAME', 'PASSWORD')

client = Twitter::Base.new(httpauth)

Twitter::Search.new.to('SEARCH_ACCOUNT').each do |r|
  puts
  puts r.created_at
  puts r.from_user
  puts r.text
end

なお、rubyのバージョンは
ruby 1.9.1p378 (2010-01-10 revision 26273) [i686-linux]

irb

estis2007/09/17 (月) 00:00 に投稿
irbで直前の値は_に格納されている。
bcでは.に。
直前だけではなく更に以前の値を参照したいときは、eval history機能を使う。
.irbrcに
IRB.conf[EVAL_HISTORY] = 0
とすると全ての値を記憶する。
個数制限したい場合はその数を記入する。
こうするとirbで__で履歴が表示される。
__[1]などとすると個別の値が取り出せる。

ERB

estis2007/05/06 (日) 06:18 に投稿

ERBはRuby1.8系から標準添付だからeRuby使用できるはずということで、ここのサーバーでの方法を試してみた。

.htaccess に、

AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby /rb/erb.cgi

みたいに書く。
ここでのポイントは、/rb/erb.cgi 。
これは自分のホームディレクトリが、ルートディレクトリになっているから、
public_html/rb/erb.cgi ってこと。
もちろん、ディレクトリもファイル名もお好みに。
問題は中身だ。
http://tnomura9.exblog.jp/3118941/
こちらを参考にさせていただいて、

#!/usr/bin/ruby
require 'erb'
print "Content-Type: text/html¥r¥n¥r¥n"
ERB.new(IO.read(ENV['PATH_TRANSLATED'])).run