Используйте instance_exec
или instance_eval
area.window.create_cairo_context.instance_exec do
set_source_rgb(0, 0, 0)
set_line_width(0.5)
arc(x + width - radius, y + radius, radius, -90 * degrees, 0 * degrees)
arc(x + width - radius, y + height - radius, radius, 0 * degrees, 90 * degrees)
arc(x + radius, y + height - radius, radius, 90 * degrees, 180 * degrees)
arc(x + radius, y + radius, radius, 180 * degrees, 270 * degrees)
close_path
stroke_preserve
set_source_rgb(0.7, 1.0, 1.0)
fill
end
Просто чтобы заметить: вы можете опустить скобки вокруг аргументов. Это больше напоминает настройку конфигурации, чем написание кода. Люди из Ruby on Rails, к которым я не принадлежу, похоже, предпочитают этот способ.
area.window.create_cairo_context.instance_exec do
set_source_rgb 0, 0, 0
set_line_width 0.5
arc x+width-radius, y+radius, radius, -90*degrees, 0*degrees
arc x+width-radius, y+height-radius, radius, 0*degrees, 90*degrees
arc x+radius, y+height-radius, radius, 90*degrees, 180*degrees
arc x+radius, y+radius, radius, 180*degrees, 270*degrees
close_path
stroke_preserve
set_source_rgb 0.7, 1.0, 1.0
fill
end