Rubyで別ファイルの変数を読み込む方法

Rubyで設定値だけをconfig.rbとかにあつめて
読み込んで使うとき

config.rb
[ruby]
$user = "Yamada Taro"
$password = "secret"
[/ruby]

main.rb
[ruby]
require "./config"

p $user
p $password
[/ruby]
でできます

ポイント

  • “$”をつけるとグローバル変数になる
  • requireには”./”をつける

セキュリティ的にはだめだめです

UbuntuでPHPUnitをComposerでインストールしてみる

Ubuntu 12.04でComposerでPHPUnitを入れてみました
システム全体で使えるようにしています

まずComposerをインストール

# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer

入ったことを確認
composer

PHPUnitを入れます
# composer global require ‘phpunit/phpunit:*’

パスを通してどこでも実行できるようにします
# echo ‘export PATH=$HOME/.composer/vendor/bin:$PATH’ >> ~/.profile

パスをすぐに効くようにします
# source ~/.profile

確認
phpunit

試しに
PHPUnit マニュアル
第2章 PHPUnit 用のテストの書き方 2.1: PHPUnit での配列操作のテスト

にあるテストをStackTest.phpとして保存して


<?php
// 引用: http://phpunit.de/manual/4.1/ja/writing-tests-for-phpunit.html
class StackTest extends PHPUnit_Framework_TestCase
{
    public function testPushAndPop()
    {
        $stack = array();
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}

テスト実行してみます
phpunit StackTest

できました

Google連絡先をガラケー用にphpで変換して取り込む

(((((コードと手順がやっつけすぎますが、公開しておきます)))))

Nexus5を買ったので、auのスマフォを昔使っていたガラケーに変えました

Google連絡先を、vcf形式でエクスポートすれば
そのまま取り込めるのですが読み仮名がつかず、すべて英語のところへまとめられるので
読み仮名も取れるようにしてみました

phpを使っているのでphpの実行できる環境が必要、
ガラケーはauのiida G9を使っています
※違う携帯だと異なるかもしれません

まず、Google連絡先をエクスポートします
Gmailにアクセス、赤枠のところをクリックし、連絡先を選びます
google-address1

その他>エクスポートをクリックします
google-address2

出力したい連絡先を選び、Google CSV形式でエクスポートします
google-address3

ダウンロードしたgoogle.csvのYomi Nameを読み仮名として使います
Yomi Nameに読み仮名が入ってない、もしくは、半角カナでないと効きません

下記、phpコードをconvert.phpなどのファイルに保存し


<?php

$fp = fopen('./google.csv', 'r');
if ($fp === false) {
    echo 'cannot open google.csv';
    exit;
}

$row = 0;
while (($data = fgetcsv($fp, 100000, ',')) !== false) {
    $row++;
    // skip first header
    if ($row == 1) continue;

    echo "BEGIN:VCARD", PHP_EOL;
    echo "VERSION:3.0", PHP_EOL;
    echo "FN:$data[0]", PHP_EOL;
    echo "N:$data[0]", PHP_EOL;
    echo "SORT-STRING:$data[4]", PHP_EOL;
    echo "TEL;TYPE=PREF:$data[34]", PHP_EOL;
    echo "TEL:$data[36]", PHP_EOL;
    echo "EMAIL;TYPE=PREF:$data[28]", PHP_EOL;
    echo "EMAIL:$data[30]", PHP_EOL;
    echo "EMAIL:$data[32]", PHP_EOL;
    echo "END:VCARD", PHP_EOL;
}
fclose($fp);
exit;

phpファイルと同じ所にgoogle.csvを設置してphp実行
# php -f convert.php > google.vcf

google.vcfをサクラエディタなどで開いて文字コードをsjisに変更し
ガラケーへ送付、アドレス帳に登録します

変換してくれるソフトやサービスがほしいところです
vcfに足りないものやcsvの取り込むものが違えば、phpを修正してください