项目

常规

个人资料

插件目录 » 插件视图修订

作者 弗拉基米尔·克里莫夫
网站 https://redmine.ruby-lang.org.cn/boards/3/topics/31183
代码仓库 -
注册于 2012-06-06(约12年前)
当前版本 0.0.1
兼容 Redmine 1.3.x, 1.4.x, 2.0.x, 2.1.x
用户评分   (0)

Redmine插件视图修订插件

此插件试图解决在Redmine中无法monkey-patch视图所引起的问题。

因此,插件的作者无法在他们的插件发行包中维护不同版本的.erb文件集合。

因此,作者必须为每个不同版本的.erb文件创建不同的发行集,或者仅仅支持最新的一个。

使用此插件提供的rake任务和特殊的文件夹结构和视图名称,允许作者保持一个支持不同Redmine版本的发行包。

Rake任务

Rake任务名为redmine:plugins:process_version_change,具有以下属性

插件 要处理的插件文件夹列表,可以省略。在这种情况下,处理所有插件
日志 日志文件的名称。如果不存在,则使用stdout

如何工作

为此任务处理插件,插件在其根文件夹中应有一个名为rev的文件夹。此文件夹中的文件夹反映了插件文件夹树的文件夹结构。

文件夹中的每个文件都具有以下模式

修订(=|!)-version_high.version_low.version_tiny(=|!)-original_filename

  • 修订
    此文件应使用的最低修订号。如果存在版本,则可以省略。
  • version_high.version_low.version_tiny
    此文件应使用的最低版本号,格式为major.minor.tiny。如果存在修订,则可以省略。
  • (=|!)
    可选。以下符号之一
    = - 表示此文件仅用于此确切版本/修订
    ! - 表示如果Redmine版本/修订高于此,则应从插件文件夹中删除此文件

示例

假设我们有一个修改了文件 app/views/issues/new.html.erbapp/views/messages/_form.html.erb 的插件。

Redmine从修订 7723 开始有不同版本的第一文件,此文件在版本 1.4.1 中更改。第二个文件在版本 1.4.1 中更改。此外,对于版本 1.3.1 存在另一个特殊的文件版本。并且从版本 2.0.0 开始不再使用此文件(重命名,比如说)。

在这种情况下,我们应该在插件根文件夹中具有以下文件夹和文件结构

rev/
   app/
      views/
         issues/
            0000-new.html.erb
            7723-new.html.erb
            1.4.1-new.html.erb
         messages/
            1.3.0-_form.html.erb
            1.3.1=-_form.html.erb
            1.4.1-_form.html.erb
            1.9.9!-_form.html.erb

现在让我们考虑以下情况

  1. Redmine版本 1.3.2,修订为 7800
    选择的文件: 7723-new.html.erb1.4.1-_form.html.erb
  2. Redmine版本 1.3.1,修订未知但小于 7723
    选择的文件: 0000-new.html.erb1.3.1!-_form.html.erb
  3. Redmine版本2.0.0,修订版本未知
    已选择文件1.4.1-new.html.erb,文件form.html.erb已从_app/views/messages文件夹中删除

请查看我的看板监视器插件以获取“真实场景”示例

文件选择规则

文件有效性检查

  1. 文件名仅包含修订版本
    如果Redmine的修订版本未知,则从redmine_revisions.yml文件中获取修订版本。如果Redmine的修订版本更高或相等,则文件有效。如果存在等号,则文件仅当修订版本与Redmine修订版本匹配时有效。
  2. 文件名仅包含版本
    如果Redmine的版本更高或相等,则文件有效。如果存在等号,则文件仅当版本与Redmine版本匹配时有效。
  3. 文件名同时包含版本和修订版本
    1. 如果Redmine的修订版本已知,则应用修订版本的规则
    2. 如果Redmine的修订版本未知,则应用版本的规则

选择规则

如果有文件包含等号,则选择该文件,否则选择修订版本或版本最高的文件。

特殊文件

插件在Rails根目录中检查两个特殊文件

  1. .version
    如果存在,则用于覆盖当前版本。应包含格式为XX.YY.ZZ(主版本、次版本、修订版本)的字符串。
  2. .revision
    如果存在,则用于确定Redmine的当前修订版本。应包含被认为是修订数字的数值或单词.ignore - 在这种情况下,修订版本将不会包含在处理过程中。
  3. <plugin_root>/config/redmine_revisions.yml
    此文件包含Redmine修订版本和版本之间的映射。

更改日志

0.0.1 (2012-06-06)

兼容Redmine 1.3.x、1.4.x、2.0.x、2.1.x。

redmine_plugin_views_revisions_v001.zip (14.4 KB) redmine_plugin_views_revisions_v001.zip 维塔利·克利莫夫,2012-06-06 18:29