Мне часто приходится создавать SVG-файлы, и мне нравится делать это с помощью Nokogiri Ruby. Хорошая вещь о Nokogiri является то, что она позволяет создавать атрибуты, проходящие хэш их «функции», например, такИменованные параметры Ruby с дефисами
doc.rect(:x => 0, :y => 0, :width => 100, :height => 100)
, который является большим. Есть некоторые признаки, которые имеют дефис: в этом случае вы можете просто воспользоваться удивительностями Руби и сделать что-то вроде
doc.rect(:x => 0, :y => 0, :width => 100, :height => 100, :stroke => 'black', 'stroke-width' => 3)
и все относительно хорошо. Введите Ruby 2.0 и названные параметры. Я предпочитаю этот синтаксис, это немного более кратким и немного более мелким, что мне нравится. Однако единственный способ создать переносимые атрибуты теперь состоит в том, чтобы смешивать два подхода, при условии, что вы поместите «хэш» после именованных параметров (я предполагаю, что это должно быть так, но я не проверял). В любом случае, это уродливо.
Есть ли какой-то способ, которым вы мудрым люди, может вызвать воображение, чтобы создать переносимые атрибуты с использованием синтаксиса именованных параметров?
EDIT: Для уточнения, названные параметры выглядят следующим образом:
doc.rect(x: 0, y: 0, width: 100, height: 100)
Как вы используете синтаксис именованных параметров? не могли бы вы привести пример метода с именованными параметрами, который вы собираетесь его написать? –
@ uri-agassi Я уточнил, редактируя вопрос. – Morpheu5
Это не [именованные параметры] (http://stackoverflow.com/questions/15308163/named-parameters-in-ruby-2) (также известный как [аргументы ключевого слова] (http://brainspec.com/blog/2012/10/08/keyword-arguments-ruby-2-0 /), это новый (ish) [хэш-синтаксис] (http://www.shanison.com/2013/05/19/ruby-1-9 -2-хэш-синтаксис /), введенный в ruby 1.9.2 ... –