Pascal では、構造体のメンバを表記する際に省略記法があります。

  foo.bar.baz.a := foo.bar.baz.b;
  foo.bar.baz.c := foo.bar.baz.d;

上記は下記の様に書けます。

  with foo.bar.baz do
  begin
    a := b;
    c := d;
  end

Ruby でも同様の記述をしたいのですが、なにか方法はありますか?
やっとこさ思いついたのは以下のようなものです。

  foo.bar.baz.with do |x|
    x.a = x.b
    x.c = x.d
  end

できれば、以下ぐらいで書きたいのですが。

  foo.bar.baz.with do |x|
    .a = .b
    .c = .d
  end

「Ruby/Gtk によるプログラミング」のサンプルコードを例にしますと

style = Gtk::Style.new
style.set_font Gdk::Font.fontset_load '-adobe-helvetica-bold-r-normal--18-*'
style.set_fg(Gtk::STATE_NORMAL, 10000, 50000, 60000)
style.set_bg(Gtk::STATE_NORMAL, 65535, 50000, 50000)
Gtk::Widget.push_style style

以上を以下のように書けるといいなと思っています。

Gtk::Style.new.with do |style|
  .set_font Gdk::Font.fontset_load '-adobe-helvetica-bold-r-normal--18-*'
  .set_fg(Gtk::STATE_NORMAL, 10000, 50000, 60000)
  .set_bg(Gtk::STATE_NORMAL, 65535, 50000, 50000)
  Gtk::Widget.push_style style
end

--
 有馬 康弘 <fit0298 / fitec.co.jp>