update.mozilla.org をセーフリストに入れてるのに .xpi をインスコできない。いみふ。当たり前だけど他のサイトからはできる。HTTPS だから?

それと、mozdev.org はサブドメインに拡張のアレふってるからいちいちセーフリスト加えるのがメンドイ。ワイルドカードとかできないのかなぁ。

  1. トップ
  2. soft
  3. Mozilla Update

これ全く使えないんですけれど、何か他にモジュールとか、もしくはバージョン制限とかあるんですかね。

p REXML::Version
#=> "3.1.2" or "2.7.3"
src = REXML::SourceFactory.create_from("<a attr='val'>text<b/></a>")
puts (e = REXML::Element.new(src))
#=> </>
puts REXML::Element.new("child", e)
#=> <child/>
puts e
#=> <><child/></>
puts REXML::Element.new(e)
#=> </>

これは 私家版REXML APIリファレンス のやつをそのままコピって実行してみた結果。

自力でエレメンツちまちま追加してくとか DOM 並に面倒臭いのですが!

rexml/element.rb の initialize に Source クラスのインスタンス渡したときの処理が 3.1.2 でも 2.7.3 でも見当たらない。コメントにはちゃんと書いてあるんだけど、未実装なのかな。

それと REXML::Element.new("<ele>") の結果が <<ele>/> なのはどうなのよ。使用できない文字渡されたら例外のほうがいいと思うんだけど。

Document と同じ build メソッドを作ってやればいいのかな。あとで試そう。

module REXML
class Element
def initialize( arg = UNDEFINED, parent=nil, context=nil )
super(parent)
@elements = Elements.new(self)
@attributes = Attributes.new(self)
@context = context
if arg.kind_of? String
self.name = arg
elsif arg.kind_of? Element
self.name = arg.expanded_name
arg.attributes.each_attribute{ |attribute|
@attributes << Attribute.new( attribute )
}
@context = arg.context
elsif arg.kind_of? Source
build arg
self.name = @elements[1].expanded_name
@attributes = @elements[1].attributes
@elements = @elements[1].elements
@children = @children[0].instance_eval("@children")
end
end
private
def build(source)
Parsers::TreeParser.new(source, self).parse
end
end
end

無理やりなんだけどこれでいいのかなぁ。表示的には思い通りだけど何か穴がありそうだ……

  1. トップ
  2. prog
  3. REXML, SourceFactory, Element

テスト終わったはずなんだけど終わった感じがしない。始まってもいない。

模試の結果が返ってきた。なんか普通だった。さらにやる気がなくなった。

  1. トップ
  2. life
  3. テストの終り。寝る。