ネットの海の片隅で

技術ネタの放流、あるいは不法投棄。

gem

Net::FTPでNAT越えする

解決したいこと FTPはActiveモードを使った時にデフォルトでNATを越えられない。 NAT越えのためにはFTPのPORTコマンドを適切に使用する必要がある。 RubyのNet::FTPにはPORTコマンドあるいは似たようなオプションが無い。 RubyアプリケーションでNAT越えのFT…

エンコードしない文字を指定できるURIエンコーダ「uri_encoding」

世間がRubyKaigiで盛り上がっていて寂しかったので、URIエンコード・デコードを行うgemを書きました。 s-osa/uri_encoding · GitHub インストール uri_encoding | RubyGems.org | your community gem host に置いてあるので、テキトーにbundle installとかge…

不揃いなHashから長方形の配列をつくるgem「Emmental」

ソースはここに置いてあります。 s-osa/emmental · GitHub インストールはgem i emmentalとかbundle installとかのいつものやつで。 使い方 基本 emmental = Emmental.new emmental << {foo: 1, bar: 2} emmental << {fizz: 3, "buzz" => 5} emmental << {fo…

RailsのモデルでJANコードのバリデーションをするgem 「jan_validator」

つくったもの Rails*1向けのJANコードバリデータ。 先日のgemをベースにしています。 参考にしたページ ActiveModel::Validator balexand/email_validator · GitHub 使い方 JANコードのバリデーションがRails標準のpresence: trueのようなカタチで書けるよう…

JANコード用のgem「jan」

作ったもの JANコードを便利に扱うためのgemを作りました。 JANコードっていうのはバーコードに使われているこんなやつです。 国際的にはEANコードと呼ばれていたりします。 JANコードとは│JANコード登録│ 一般財団法人流通システム開発センター ean | RubyG…

正規乱数を生成するgem「RandomBell」

Rubyで一様な乱数が欲しければRandomやSecureRandomを使えば良いと思うのですが、「偏った乱数」が欲しいこともあると思います。 イメージとしてはゲームのパラメータとかですかね。 例えば、あるダンジョンで出てくる敵のレベルを20-30の間でランダムに決め…