Redmineflux Icon Compat

Compatibility helper gem for Redmine plugin icons.

This gem gives one helper API (rf_icon_link) that works in both:

  • Redmine 5 style icons (icon icon-* classes)
  • Redmine 6 SVG sprite icons (sprite_icon)

Use This Gem In A Redmine Plugin

1) Add gem declaration in your plugin Gemfile

Create or update plugins/<your_plugin>/Gemfile.

For local development:

gem 'redmineflux_icon_compat', path: '../redmineflux_icon_compat'

For published usage from RubyGems:

gem 'redmineflux_icon_compat', '~> 0.1.0'

2) Install dependencies

From Redmine root:

bundle install

3) Load gem in plugin init file

In plugins/<your_plugin>/init.rb:

require 'redmineflux_icon_compat'

Example:

module MyPluginHelper
  include RedminefluxIconCompat::Helper
end

Example in ERB:

<%= rf_icon_link(:add, 'Add Checklist', '#', class: 'add-checklist-btn') %>

Example in helper:

rf_icon_link(:edit, l(:button_edit), edit_path(record))

6) Restart Redmine server

After gem or helper changes, restart app server so Rails reloads plugin code.

Troubleshooting

If you still see old icons:

  • run rm -rf tmp/cache/*
  • run bundle install again
  • restart Redmine
  • hard refresh browser (Ctrl+Shift+R)

Run Tests

From Redmine root:

ruby plugins/redmineflux_icon_compat/test/helper_test.rb

Or from gem directory:

cd plugins/redmineflux_icon_compat
ruby test/helper_test.rb

Publish To RubyGems

  1. Create RubyGems account: https://rubygems.org/sign_up
  2. Login from terminal:
gem signin
  1. Bump version in:
  2. plugins/redmineflux_icon_compat/lib/redmineflux_icon_compat/version.rb

  3. Run tests:

ruby plugins/redmineflux_icon_compat/test/helper_test.rb
  1. Build the gem:
cd plugins/redmineflux_icon_compat
gem build redmineflux_icon_compat.gemspec
  1. Push to RubyGems:
gem push redmineflux_icon_compat-<VERSION>.gem
  1. Verify publication:
  2. Open https://rubygems.org/gems/redmineflux_icon_compat
  3. Check docs page after indexing: https://www.rubydoc.info/gems/redmineflux_icon_compat
  4. Install smoke test:
gem install redmineflux_icon_compat

Add backup owners:

gem owner redmineflux_icon_compat --add teammate@example.com

Require MFA on RubyGems account for push/yank.