новичок, просящий предложение для структуры драгоценного камня - PullRequest
3 голосов
/ 22 сентября 2011

Я планирую написать гем, который создаст zip-файл, загрузив его по ссылке или получив из файловой системы или из строки, и загрузив на s3.Это хорошая идея, что я украду модуль Zip от rubyzip?

Zip::Voidzip.upload! do |zip|
  zip.add "http://example.com/example.png", :as => "image/zzz.png"
  zip.add "asdasdasdads"
  zip.add "asd/asd.png"
end

Так как код, скорее всего, будет таким:

module Zip
  class Voidzip
    def initialize zipname
      t = Tempfile.new(zipname)
      ZipOutputStream.open(t.path) do |zos|

      end
    end
  end
end

Есть предложения для новичков, которые хотят внести свой вклад?

Ответы [ 2 ]

2 голосов
/ 22 сентября 2011

Рекомендуется назвать ваш драгоценный камень voidzip.

Если вы хотите, чтобы ваш драгоценный камень был плагином для zip, и если zip действительно поддерживает плагинархитектура, тогда практикой будет назвать ваш камень zip-voidzip (но я не думаю, что это так).

Ваша структура модуля / пространства имен должна отражать имя вашего камня.

Есливаш драгоценный камень называется voidzip, тогда я ожидаю, что весь ваш код будет в пределах Voidzip, и я ожидаю, что смогу require "voidzip".

Если ваш драгоценный камень назван zip-voidzip, тогда я ожидаювесь ваш код будет в пределах Zip::Voidzip, и я ожидаю, что смогу require "zip-voidzip" или require "zip/voidzip" по моему выбору.

1 голос
/ 22 сентября 2011

// Не по теме, то, что ОП пытается сделать, - это не обезьянье по сути (см. Комментарий @ Beerlington)

Обычно я стараюсь держаться подальше от мартышек, если я не могу поступить иначе. Всегда больно что-то отлаживать и обнаруживать, что создатель драгоценного камня думал, что это хорошая идея - переопределить функциональность, от которой вы зависите.

Но не верь мне, верь ему , он гораздо опытнее меня.

// Конец не по теме

Вы можете попытаться быть немного креативным и придумать красивое название для драгоценного камня :-).

Не могли бы вы просто пойти с именем Voidzip, не вкладывая его в Zip?

...