history

青木日記 RSS

<前の日 | この月 | 次の日>

2004-05-08

RAA-SOAP インターフェイス

RAA の SOAP インターフェイスが [ruby-talk:99611] で紹介されている。

% ruby -r pp -r soap/wsdlDriver -e '
raa = SOAP::WSDLDriverFactory.new(
        "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"
      ).create_driver
pp raa.gem("tmail")
'
#<SOAP::Mapping::Object:0x4038a468
 @category=#<SOAP::Mapping::Object:0x4035a2b4 @major="Library", @minor="Mail">,
 @created=#<DateTime: 13243981342437209/5400000000,3/8,2299161>,
 @id=600,
 @owner=
  #<SOAP::Mapping::Object:0x40352758
   @email=#<URI::MailTo:0x201c598c URL:mailto:aamine@loveruby.net>,
   @id=45,
   @name="Minero Aoki">,
 @pass=nil,
 @project=
  #<SOAP::Mapping::Object:0x4038a274
   @dependency=[],
   @description=
    "TMail is an email handling library.\r\nAlmost all RFC2822/MIME specification is supported.\r\n",
   @download=
    #<URI::HTTP:0x201c99ba URL:http://i.loveruby.net/archive/tmail/tmail-0.10.8.tar.gz>,
   @history=[],
   @license="LGPL",
   @name="tmail",
   @short_description="TMail",
   @status="stable",
   @updated=nil,
   @url=#<URI::HTTP:0x201cb954 URL:http://i.loveruby.net/en/tmail.html>,
   @version="0.10.8">,
 @updated=#<DateTime: 10597199881960969/4320000000,3/8,2299161>>

おおっ。これは凄い。なんか無性に凄い。

以下は、同じく ruby-talk で紹介された、 プロジェクトのバージョンアップを自動化するスクリプト。

name = 'sampleproject'
pass = 'sampleproject'
gem = raa.gem(name)
gem.project.version.succ!
gem.updated = Time.now
raa.update(name, pass, gem)

いいねえ。便利だねえ。 何かのバージョンを上げてみたいな…… (本末転倒)

どういうメソッドがあるんだろう。

~ % ruby -r pp -r soap/wsdlDriver -e '
raa = SOAP::WSDLDriverFactory.new(
        "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"
      ).create_driver
puts raa.methods(false)
' | sort
dependents
gem
list_by_category
list_by_owner
list_created_since
list_owner
list_recent_created
list_recent_updated
list_updated_since
names
owner
search
search_description
search_name
search_owner
search_short_description
search_status
search_version
size
tree_by_category
update
update_pass

へー。

(01:47)

endの重さ

class に対応する end は def に対応する end より重い。

def に対応する end は if に対応する end より重い。

だからおれとしては end か {} かというよりも、 この二種類の end を区別できるほうが嬉しい。

かと言って end class とか end def と書きたいかというと、 それはそれでまた気持ち悪い。 dne とか ssalc よりはマシだけど。

それで結局、現実的には

class C
 
  def m
    if ....
      ....
    end
  end
 
end

こんなふうに class の内側に空行を入れることで 対応しているのであった。

(02:41)

BitChannelの隠しポリシー

唐突に BitChannel のポリシーを一つ思い出した。

  • 全ページの先頭の目立つところに更新時刻を表示すること

(02:43)

本日のツッコミ(全2件) [ツッコミを入れる]
なひ (2004-05-09 09:11)

endが関係ない、classとdefの間にも空行が入ることから(なひも入ります)、「endが重い」というより「defの密度は高くあるべし」かも。凝集度も高くなったと勘違いできるし(おい

ところで99661じゃなくて99611です。

青木 (2004-05-09 23:19)

ML番号は直しておきました。

「defの密度が高い」というのはあるかもしれません。
昔はメソッドの途中でよく空行を入れてたんですが、
最近は滅多なことじゃ入れなくなりました。
(前はメソッドの長さ自体も長かった)

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS