23 件中 11 - 20 件を表示
« 前の 10 件 | 次の 3 件 »
Displaying posts with tag: ruby (reset)
Ruby/MySQL 2.9.9

Ruby/MySQL 2.9.9 を作りました。

Ruby/MySQL

Ruby/MySQLRuby から MySQL を使用するためのライブラリです。

特徴:

  • Ruby だけで書かれているためコンパイル不要
  • Ruby 1.9 の Encoding 対応
[さらに読む]
Ruby/MySQL

最近 Rails でプログラム作ったりしてるのですが、Ruby/MySQLRails で使えないことがわかったので、1年以上放置していた Ruby/MySQL をいじって使えるようにしてみました。

Ruby/MySQL というのは Ruby スクリプトから MySQL

[さらに読む]
UTF-8 のサニタイズ

UTF-8 文字列中に UTF-8 として正しくないコードが入っていた場合に、その文字を「?」などに置き換えたいことがあります。

たとえば MySQL に登録するときは不正な文字を消しとかないと、その文字以降すべて消えてしまいます。

mysql> insert into t (c) values (0x414243FF58595A);
Query OK, 1 row affected, 1 warning (0.06 sec)

Warning (Code 1366): Incorrect string value: '\xFFXYZ' for column 'c' at row 1
mysql> select * from t;
+------+
| c    |
+------+
| ABC  |
+------+
1 row in set (0.00 sec)

ということで、Ruby では Iconv を使ってこんな感じで対処してます。

require 'iconv'
def sanitize_utf8(str)
  ret = ''
  i = Iconv.open(' …
[さらに読む]
MySQL/Ruby 2.8.2

MySQL/Ruby にバグがあったので 2.8.2 をリリースしました。

ダウンロードはこの辺から→ http://rubyforge.org/projects/mysql-ruby/

Mysql#insert_id が 32bit を超える場合に不正な値を返すというものです。

具体的には BIGINT AUTO_INCREMENT の場合に、自動的に 2147483648(UNSIGNED BIGINT の場合は 4294967296)以上の場合に、不正な値を返します。

mysql> create table t (id bigint auto_increment, unique(id));
mysql> alter table t auto_increment=2147483645;
m.query('insert into t values (0)')
m.insert_id #=> 2147483645
m.query('insert into t values (0)')
m.insert_id #=> …
[さらに読む]
Ruby/MySQL 2.9

Ruby から MySQL を使うための pure Ruby ライブラリ Ruby/MySQL 2.9 を公開しました。まだベータ版です。 http://github.com/tmtm/ruby-mysql/tree/2.9

前の Ruby/MySQL は 0.2.6 だったのですが、今回 2.9 とした理由は:

  • Cライブラリ版の MySQL/ …
[さらに読む]
Ruby/MySQL 3.0.2 alpha

Ruby/MySQL 3.0.2 です。相変わらずアルファ版です。

インストール方法:

# sudo gem install tmtm-ruby-mysql --source http://gems.github.com

3.0.1 からの変更点。 Ruby 1.9 対応

これまでのでもちゃんと動くんじゃないかなぁ…と漠然と思っていたのですが、全然動いていないことが判明したので、修正しました。
テストコードを RSpec で書いてしまったので Ruby 1.9 でテストしてなかったのですが、Ruby会議2009 の IRC

[さらに読む]
Ruby/MySQL 3.0.1 alpha

Ruby/MySQL 3.0.1 を作りました。相変わらずアルファ版です。

インストールは次のように。

# sudo gem install tmtm-ruby-mysql --source http://gems.github.com

3.0.0 からの変更点

  • Mysql#query で勝手にプリペアドステートメントを使うのをやめました。いろいろと複雑になってたので。ただし、クエリ文字列以外の引数がついている場合はプリペアドステートメントを使用します。
mysql.query("select 1,2,3")           # プリペアドステートメントではない
mysql.query("select ?,?,?", 1, 2, 3)  # プリペアドステートメント
  • Mysql::Result#fetch 等が返すレコードの値は、Ruby の適切な値に変換するようにしました。
[さらに読む]
AGPLのライセンス互換性の問題について - 解決策はRoR

Webの世界にもGPLと同様の自由や相互運用性をもたらす小粋なAGPLであるが、運用に際しては注意点がある。それは、ライセンスの互換性である。結論から言うと、AGPLはGPLv2と互換性がない。GPLv2を利用したソフトウェアを改変またはリンクして、AGPLとしてリリースすることは出来ない。それが最大の問題である。GPLv3では一部互換で、GPLv3のソフトウェアを改変してAGPLとしてリリースすることは出来ないが、GPLv3のコードをリンクしたソフトウェアをAGPLv3としてリリースすることが可能である。

[さらに読む]
Ruby/MySQL 3.0.0 alpha

github に Ruby/MySQL 3.0.0 を置きました。

git にも gem にも慣れてないので試行錯誤でしたが、なんとか置けたようです。

github は gemspec を置いておけば自動的に gem を作ってくれるはずなのですが、罠に嵌まってもがいてました。

GitHub では *.gemspec ファイルのバージョン番号が更新されたときにのみ Gem を生成する。だから *.gemspec を最初に commit & push したときは、Gem が生成されない(バージョン番号が更新されているわけではないから)。まずは *.gemspec ファイルをバージョン 0.0.0 とかで commit & push し、そのあとバージョンを上げて commit & push し直す。

[さらに読む]
MySQLにアクセスするRubyアプリ

DB自体の話が最近多くなってきたので、アプリ層のことも少し書いてみようと思います。
今回はプログラミング言語RubyからMySQLにアクセスするベーシックなプログラムを作ってみようと思います。最低限の要素が入っているようなものを作成したいと思います。

1. Rubyのインストール
今回はお手軽版ということで、以下を使ってみました。
One-Click Ruby Installer 186-26 Final Release
ダウンロードはこちらからできます

[さらに読む]
23 件中 11 - 20 件を表示
« 前の 10 件 | 次の 3 件 »