Синхронизация ювелирной версии Jeweler со строкой версии в самой программе - PullRequest
2 голосов
/ 29 ноября 2010

Итак, я использую Ювелир для поддержки моего маленького драгоценного камня , и он предоставляет набор удобных rake version:* задач для управления номером версии. Очевидно, Jeweler хранит номер версии в файле с именем VERSION, который затем читается на rake gemspec. Единственная проблема в том, что реальный код Ruby в библиотеке также содержит версию, например. отправлены в заголовках HTTP-запросов, созданных библиотекой:

module MediaWiki
  class << self
    def version
      "0.1.6"
    end
    ...

Есть какие-нибудь идеи для автоматической синхронизации этих двух? Альтернативно, есть ли способ, которым библиотека MediaWiki может запросить гем, в который она была превращена, чтобы найти свою собственную версию?

1 Ответ

4 голосов
/ 29 ноября 2010

Почему у вас метод версии не возвращает константу?

# lib/media_wiki/version.rb
module MediaWiki
  VERSION = "1.0.6"
end

# lib/media_wiki.rb (or wherever)
module MediaWiki
  class << self
    def version
      MediaWiki::VERSION
    end
  end
end

РЕДАКТИРОВАТЬ (в ответ на комментарий):

Также вы должны обновить свой Rakefile, чтобы использовать константу:

# Rakefile
Jeweler::Tasks.new do |gemspec|
  ...
  gemspec.version     = MediaWiki::VERSION
  ...
end

Пир

...