サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
災害への備え
motivation.drivendevelopment.jp
いろいろな処理をするファイルをプラグインとして適当なディレクトリに入れておくと、それらをロードしてオブジェクト化するやりかた。 バッチ処理とかでカスタムな方法をインプリしたいときとかに使えるかと思う。 plugin_loader.rb class PluginLoader attr_reader :plugins def initialize(plugin_base, extension = 'rb') @plugin_base = plugin_base @plugins = [] Dir.glob(@plugin_base + "*.#{extension}").each do |p| require p @plugins << Object.const_get(to_classname(p)).new end end private def to_classname(str) str
Perlでバイナリファイルをいじる場合にいろいろと同じ問題に遭遇するので、忘れないようにメモ。 バイナリファイルの読み込み 読み込む場合に”getc”使うと、ファイルが終わってないのに終了してしまうことがある。 正しくは”read”を使う。 my $filename = $ARGV[0]; open my $file,'<',$filename or die; binmode $file; my $val; while(read($file, $val, 1)){ } これで1byteづつ処理できる。実際はバイナリの構造にあわせてreadするバイト数を変える。 読んだバイナリの処理 バイナリを数値として処理するためには、その構造にあわせてunpackする。 unpack("C",$val); #unsigned byte unpack("S",$val); #unsigned short
Ruby RSS::MakerでCDATAを扱えるようにしてみる [blog]-Motivation Driven Development RubyのRSS::MakerでRSS1.0生成すると、content:encodedが自動的にhtml_escapeされてしまい、CDATAとして埋め込んでくれないので、モンキーパッチングしてみた。 rss_cdata.rb require 'rss' module RSS module BaseModel def install_cdata_element(tag_name, uri, occurs, name=nil, type=nil, disp_name=nil) name ||= tag_name disp_name ||= name self::ELEMENTS << name add_need_initialize_variable(n
ゲートウェイルータ冗長化(VRRP, HSRP)とNATの共存(cisco) [blog]-Motivation Driven Development ルータの冗長化の方式としてVRRPとHSRP(Cisco only)がある。 これは、通常「マスター側ルータ」がarp応答するのに対し、マスターダウン時には「スタンバイ側ルータ」がarp応答するようになって対応するというもの。 で、これにNATを組み合わせて下図のように組もうとすると、問題が起こった。 +-----------+ +-----+ 192.168.1.251 +-------+ 192.168.10.251 |my server |-----|L2 SW|------------------|Master |----- |192.168.1.1| | | Virtual Router +-------+ +----------
ActionMailerでメール送信@Sakuraレンタルサーバ [blog]-Motivation Driven Development Railsを使わないで、rubyからActionMailerでメールを送信したくなったので、やり方のメモ。 ActionMailerは、gemでインストール済みと仮定。 Sakuraレンタルサーバ(さくら)の場合、”POP before SMTP”なので、送信前にpop認証が必要となります。 require 'rubygems' require 'action_mailer' require 'net/pop' class MyMailer < ActionMailer::Base alias_method :base_perform_delivery_smtp, :perform_delivery_smtp @@pop3_auth_done = ni
IE javascriptではformのname属性を変更できない [blog]-Motivation Driven Development javascriptでformをname属性でアクセスする手法は良く使う。 var abc = document.formname.hoge.value; これを、動的に生成させたformで行おうと思った場合、IEで問題が起こる。 var myNode = document.getElementById('fuga'); var myForm = document.createElement('form'); myForm.name = 'formname'; var myInput = document.createElement('input'); myInput.name = 'hoge'; myInput.type = 'text'; myI
javascriptによる簡易regexでは対応できないケースがでてしまったので、いろいろ参考にしつつruby版を作った。 require 'resolv' require 'pp' class MailAddressValidator def self.validate(address) return validate_by_regex(address) && validate_by_MX(address) end def self.validate_by_regex(address) addr_spec = %r{^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(
Rubyで動的に関数定義3(for Test::Unit) [blog]-Motivation Driven Development Rubyで動的に関数定義 Rubyで動的に関数定義2 からの続き。 で、今回いろいろ調べていた大元の理由である「テストケースの自動生成」だけど、こんな感じで使えそう。 テスト対象 class Testee def login(login_user) @login_user ||=login_user end def who_am_i? @login_user end end 一つのテストケース内でログインの試験を複数回やると、初回のログイン情報が残るためにfailする。 require 'test/unit' require 'testee' class TesteeTest < Test::Unit::TestCase def test_should_lo
このページを最初にブックマークしてみませんか?
『motivation.drivendevelopment.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く