rexer 0.13.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +94 -93
- data/lib/rexer/cli.rb +2 -1
- data/lib/rexer/source/git.rb +17 -4
- data/lib/rexer/source/github.rb +5 -0
- data/lib/rexer/version.rb +1 -1
- data/lib/rexer.rb +1 -0
- metadata +16 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 03a1f270989ff656e5fd97e105ecd8d21be59755e2f3112746db636c5b2a9e7c
         | 
| 4 | 
            +
              data.tar.gz: 42154270a3d8684f58ec80537cd2d5237dd0cde468bd44b3db0dd89fe7084a7c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 3b7544710bb51bb0a6e5cb6de61deac2c6fbea1116d11b62f064c76a844af5664037083dbe30685421af467f7346676ba9655ceb59e2310a455e435ea7f7274b
         | 
| 7 | 
            +
              data.tar.gz: 91d31bf09b9dd719760ab4cc88c32542cc441f215ce68e7d95831e8e0789695215dbf49d70279e51d43c5a45886d6d6f6045540d0210c577153b706d3dcf0fa6
         | 
    
        data/README.md
    CHANGED
    
    | @@ -28,7 +28,7 @@ gem install rexer | |
| 28 28 |  | 
| 29 29 | 
             
            ## Supported Redmine
         | 
| 30 30 |  | 
| 31 | 
            -
            Rexer is tested with Redmine  | 
| 31 | 
            +
            Rexer is tested with Redmine v6.0 and trunk.
         | 
| 32 32 |  | 
| 33 33 | 
             
            ## Usage
         | 
| 34 34 |  | 
| @@ -41,9 +41,10 @@ rex init | |
| 41 41 | 
             
            This command generates a `.extensions.rb`, so define the extensions you want to install in the file like below.
         | 
| 42 42 |  | 
| 43 43 | 
             
            ```ruby
         | 
| 44 | 
            -
            theme :bleuclair, github: { repo: "farend/redmine_theme_farend_bleuclair", branch: " | 
| 44 | 
            +
            theme :bleuclair, github: { repo: "farend/redmine_theme_farend_bleuclair", branch: "master" }
         | 
| 45 45 |  | 
| 46 46 | 
             
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel", tag: "v1.0.2" }
         | 
| 47 | 
            +
            plugin :redmica_ui_extension, github: { repo: "redmica/redmica_ui_extension", ref: "4fdc298bc310be2ab295008c0ee522b0ec0e319a" }
         | 
| 47 48 | 
             
            ```
         | 
| 48 49 |  | 
| 49 50 | 
             
            Then, run the following command in the root directory of the Redmine application.
         | 
| @@ -86,7 +87,7 @@ Commands: | |
| 86 87 | 
             
              rex state                        # Show the current state of the installed extensions
         | 
| 87 88 | 
             
              rex switch [ENV]                 # Uninstall extensions for the currently installed environment and install extensions for the specified environment
         | 
| 88 89 | 
             
              rex uninstall                    # Uninstall extensions for the currently installed environment based on the state in .extensions.lock and remove the lock file
         | 
| 89 | 
            -
              rex update                       # Update extensions for the currently installed environment to the latest version
         | 
| 90 | 
            +
              rex update                       # Update extensions for the currently installed environment to the latest version if extensions are updateable
         | 
| 90 91 | 
             
              rex version                      # Show Rexer version
         | 
| 91 92 |  | 
| 92 93 | 
             
            Options:
         | 
| @@ -123,85 +124,6 @@ rex v   # means version | |
| 123 124 | 
             
            and more...
         | 
| 124 125 | 
             
            ```
         | 
| 125 126 |  | 
| 126 | 
            -
            ## Syntax of .extensions.rb file
         | 
| 127 | 
            -
             | 
| 128 | 
            -
            ### Plugin
         | 
| 129 | 
            -
             | 
| 130 | 
            -
            ```ruby
         | 
| 131 | 
            -
            plugin :plugin_name, <source>: { ... }
         | 
| 132 | 
            -
            ```
         | 
| 133 | 
            -
             | 
| 134 | 
            -
            ### Theme
         | 
| 135 | 
            -
             | 
| 136 | 
            -
            ```ruby
         | 
| 137 | 
            -
            theme :theme_name, <source>: { ... }
         | 
| 138 | 
            -
            ```
         | 
| 139 | 
            -
             | 
| 140 | 
            -
            ### Source
         | 
| 141 | 
            -
             | 
| 142 | 
            -
            #### Git
         | 
| 143 | 
            -
             | 
| 144 | 
            -
            ```ruby
         | 
| 145 | 
            -
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel" }
         | 
| 146 | 
            -
            ```
         | 
| 147 | 
            -
            ```ruby
         | 
| 148 | 
            -
            # Specify the branch
         | 
| 149 | 
            -
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel", branch: "main" }
         | 
| 150 | 
            -
            # Specify the tag
         | 
| 151 | 
            -
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel", tag: "v1.0.0" }
         | 
| 152 | 
            -
            # Specify the commit
         | 
| 153 | 
            -
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel", ref: "5cfb8ccbabb2fad2c8f2273a4dda3f16ef2de124" }
         | 
| 154 | 
            -
            ```
         | 
| 155 | 
            -
             | 
| 156 | 
            -
            #### GitHub
         | 
| 157 | 
            -
             | 
| 158 | 
            -
            ```ruby
         | 
| 159 | 
            -
            plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel", tag: "v1.0.0" }
         | 
| 160 | 
            -
            ```
         | 
| 161 | 
            -
             | 
| 162 | 
            -
            ### Env
         | 
| 163 | 
            -
             | 
| 164 | 
            -
            ```ruby
         | 
| 165 | 
            -
            plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel" }
         | 
| 166 | 
            -
             | 
| 167 | 
            -
            # This is the same as the above.
         | 
| 168 | 
            -
            env :default do
         | 
| 169 | 
            -
              plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel" }
         | 
| 170 | 
            -
            end
         | 
| 171 | 
            -
             | 
| 172 | 
            -
            env :stable do
         | 
| 173 | 
            -
              plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel", tag: "v1.0.2" }
         | 
| 174 | 
            -
            end
         | 
| 175 | 
            -
             | 
| 176 | 
            -
            env :default, :stable do
         | 
| 177 | 
            -
              theme :bleuclair, github: { repo: "farend/redmine_theme_farend_bleuclair" }
         | 
| 178 | 
            -
            end
         | 
| 179 | 
            -
            ```
         | 
| 180 | 
            -
             | 
| 181 | 
            -
            ### Hooks
         | 
| 182 | 
            -
             | 
| 183 | 
            -
            ```ruby
         | 
| 184 | 
            -
            plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel" } do
         | 
| 185 | 
            -
              installed do
         | 
| 186 | 
            -
                puts "The plugin has been installed."
         | 
| 187 | 
            -
              end
         | 
| 188 | 
            -
             | 
| 189 | 
            -
              uninstalled do
         | 
| 190 | 
            -
                puts "The plugin has been uninstalled."
         | 
| 191 | 
            -
              end
         | 
| 192 | 
            -
            end
         | 
| 193 | 
            -
             | 
| 194 | 
            -
            theme :bleuclair, github: { repo: "farend/redmine_theme_farend_bleuclair" } do
         | 
| 195 | 
            -
              installed do
         | 
| 196 | 
            -
                puts "The theme has been installed."
         | 
| 197 | 
            -
              end
         | 
| 198 | 
            -
             | 
| 199 | 
            -
              uninstalled do
         | 
| 200 | 
            -
                puts "The theme has been uninstalled."
         | 
| 201 | 
            -
              end
         | 
| 202 | 
            -
            end
         | 
| 203 | 
            -
            ```
         | 
| 204 | 
            -
             | 
| 205 127 | 
             
            ## Advanced Usage
         | 
| 206 128 |  | 
| 207 129 | 
             
            ### Defining for each environment and extension
         | 
| @@ -209,25 +131,25 @@ end | |
| 209 131 | 
             
            You can define an environment and extensions for each environment using the `env ... do - end` block.
         | 
| 210 132 |  | 
| 211 133 | 
             
            ```ruby
         | 
| 212 | 
            -
            plugin :redmine_issues_panel,  | 
| 134 | 
            +
            plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel", branch: "master" }
         | 
| 213 135 |  | 
| 214 136 | 
             
            env :stable do
         | 
| 215 | 
            -
              plugin :redmine_issues_panel,  | 
| 137 | 
            +
              plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel", tag: "v1.0.2" }
         | 
| 216 138 | 
             
            end
         | 
| 217 139 |  | 
| 218 140 | 
             
            env :default, :stable do
         | 
| 219 | 
            -
              theme :bleuclair, github: { repo: "farend/redmine_theme_farend_bleuclair" | 
| 141 | 
            +
              theme :bleuclair, github: { repo: "farend/redmine_theme_farend_bleuclair" }
         | 
| 220 142 | 
             
            end
         | 
| 221 143 | 
             
            ```
         | 
| 222 144 |  | 
| 223 145 | 
             
            Definitions other than `env ... do - end` are implicitly defined as `env :default do - end`. Therefore, the above is resolved as follows:
         | 
| 224 146 |  | 
| 225 147 | 
             
            * default env
         | 
| 226 | 
            -
              * bleuclair ( | 
| 227 | 
            -
              * redmine_issues_panel (master)
         | 
| 148 | 
            +
              * bleuclair (farend/redmine_theme_farend_bleuclair@main)
         | 
| 149 | 
            +
              * redmine_issues_panel (redmica/redmine_issues_panel@master)
         | 
| 228 150 | 
             
            * stable env
         | 
| 229 | 
            -
              * bleuclair ( | 
| 230 | 
            -
              * redmine_issues_panel (v1.0.2)
         | 
| 151 | 
            +
              * bleuclair (farend/redmine_theme_farend_bleuclair@main)
         | 
| 152 | 
            +
              * redmine_issues_panel (redmica/redmine_issues_panel@v1.0.2)
         | 
| 231 153 |  | 
| 232 154 | 
             
            If you want to install extensions for the `default` environment, run the following command.
         | 
| 233 155 |  | 
| @@ -258,12 +180,12 @@ In addition, you can define as many environments as you like, and list the defin | |
| 258 180 | 
             
            ```
         | 
| 259 181 | 
             
            $ rex envs
         | 
| 260 182 | 
             
            default
         | 
| 261 | 
            -
              bleuclair ( | 
| 262 | 
            -
              redmine_issues_panel (master)
         | 
| 183 | 
            +
              bleuclair (farend/redmine_theme_farend_bleuclair@main)
         | 
| 184 | 
            +
              redmine_issues_panel (redmica/redmine_issues_panel@master)
         | 
| 263 185 |  | 
| 264 186 | 
             
            stable
         | 
| 265 | 
            -
              bleuclair ( | 
| 266 | 
            -
              redmine_issues_panel (v1.0.2)
         | 
| 187 | 
            +
              bleuclair (farend/redmine_theme_farend_bleuclair@main)
         | 
| 188 | 
            +
              redmine_issues_panel (redmica/redmine_issues_panel@v1.0.2)
         | 
| 267 189 | 
             
            ```
         | 
| 268 190 |  | 
| 269 191 | 
             
            ### Defining hooks
         | 
| @@ -294,6 +216,85 @@ export REXER_COMMAND_PREFIX="docker compose exec -T app" | |
| 294 216 |  | 
| 295 217 | 
             
            In the above case, the `bin/rails redmine:plugins:migrate` command is executed as `docker compose exec -T app bin/rails redmine:plugins:migrate`.
         | 
| 296 218 |  | 
| 219 | 
            +
            ## Extensions.rb Syntax
         | 
| 220 | 
            +
             | 
| 221 | 
            +
            ### Plugin
         | 
| 222 | 
            +
             | 
| 223 | 
            +
            ```ruby
         | 
| 224 | 
            +
            plugin :plugin_name, <source>: { ... }
         | 
| 225 | 
            +
            ```
         | 
| 226 | 
            +
             | 
| 227 | 
            +
            ### Theme
         | 
| 228 | 
            +
             | 
| 229 | 
            +
            ```ruby
         | 
| 230 | 
            +
            theme :theme_name, <source>: { ... }
         | 
| 231 | 
            +
            ```
         | 
| 232 | 
            +
             | 
| 233 | 
            +
            ### Source
         | 
| 234 | 
            +
             | 
| 235 | 
            +
            #### Git
         | 
| 236 | 
            +
             | 
| 237 | 
            +
            ```ruby
         | 
| 238 | 
            +
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel" }
         | 
| 239 | 
            +
            ```
         | 
| 240 | 
            +
            ```ruby
         | 
| 241 | 
            +
            # Specify the branch
         | 
| 242 | 
            +
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel", branch: "main" }
         | 
| 243 | 
            +
            # Specify the tag
         | 
| 244 | 
            +
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel", tag: "v1.0.0" }
         | 
| 245 | 
            +
            # Specify the commit
         | 
| 246 | 
            +
            plugin :redmine_issues_panel, git: { url: "https://github.com/redmica/redmine_issues_panel", ref: "5cfb8ccbabb2fad2c8f2273a4dda3f16ef2de124" }
         | 
| 247 | 
            +
            ```
         | 
| 248 | 
            +
             | 
| 249 | 
            +
            #### GitHub
         | 
| 250 | 
            +
             | 
| 251 | 
            +
            ```ruby
         | 
| 252 | 
            +
            plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel", tag: "v1.0.0" }
         | 
| 253 | 
            +
            ```
         | 
| 254 | 
            +
             | 
| 255 | 
            +
            ### Env
         | 
| 256 | 
            +
             | 
| 257 | 
            +
            ```ruby
         | 
| 258 | 
            +
            plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel" }
         | 
| 259 | 
            +
             | 
| 260 | 
            +
            # This is the same as the above.
         | 
| 261 | 
            +
            env :default do
         | 
| 262 | 
            +
              plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel" }
         | 
| 263 | 
            +
            end
         | 
| 264 | 
            +
             | 
| 265 | 
            +
            env :stable do
         | 
| 266 | 
            +
              plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel", tag: "v1.0.2" }
         | 
| 267 | 
            +
            end
         | 
| 268 | 
            +
             | 
| 269 | 
            +
            env :default, :stable do
         | 
| 270 | 
            +
              theme :bleuclair, github: { repo: "farend/redmine_theme_farend_bleuclair" }
         | 
| 271 | 
            +
            end
         | 
| 272 | 
            +
            ```
         | 
| 273 | 
            +
             | 
| 274 | 
            +
            ### Hooks
         | 
| 275 | 
            +
             | 
| 276 | 
            +
            ```ruby
         | 
| 277 | 
            +
            plugin :redmine_issues_panel, github: { repo: "redmica/redmine_issues_panel" } do
         | 
| 278 | 
            +
              installed do
         | 
| 279 | 
            +
                puts "The plugin has been installed."
         | 
| 280 | 
            +
              end
         | 
| 281 | 
            +
             | 
| 282 | 
            +
              uninstalled do
         | 
| 283 | 
            +
                puts "The plugin has been uninstalled."
         | 
| 284 | 
            +
              end
         | 
| 285 | 
            +
            end
         | 
| 286 | 
            +
             | 
| 287 | 
            +
            theme :bleuclair, github: { repo: "farend/redmine_theme_farend_bleuclair" } do
         | 
| 288 | 
            +
              installed do
         | 
| 289 | 
            +
                puts "The theme has been installed."
         | 
| 290 | 
            +
              end
         | 
| 291 | 
            +
             | 
| 292 | 
            +
              uninstalled do
         | 
| 293 | 
            +
                puts "The theme has been uninstalled."
         | 
| 294 | 
            +
              end
         | 
| 295 | 
            +
            end
         | 
| 296 | 
            +
            ```
         | 
| 297 | 
            +
             | 
| 297 298 | 
             
            ## Developing
         | 
| 298 299 |  | 
| 299 300 | 
             
            ### Running the command
         | 
    
        data/lib/rexer/cli.rb
    CHANGED
    
    | @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            require "thor"
         | 
| 2 2 | 
             
            require "dotenv"
         | 
| 3 3 | 
             
            require "erb"
         | 
| 4 | 
            +
            require "active_support/core_ext/object/blank"
         | 
| 4 5 |  | 
| 5 6 | 
             
            module Rexer
         | 
| 6 7 | 
             
              class Cli < Thor
         | 
| @@ -34,7 +35,7 @@ module Rexer | |
| 34 35 | 
             
                  Commands::Switch.new.call(env&.to_sym)
         | 
| 35 36 | 
             
                end
         | 
| 36 37 |  | 
| 37 | 
            -
                desc "update", "Update extensions for the currently installed environment to the latest version"
         | 
| 38 | 
            +
                desc "update", "Update extensions for the currently installed environment to the latest version if extensions are updateable"
         | 
| 38 39 | 
             
                def update
         | 
| 39 40 | 
             
                  Commands::Update.new.call
         | 
| 40 41 | 
             
                end
         | 
    
        data/lib/rexer/source/git.rb
    CHANGED
    
    | @@ -1,4 +1,5 @@ | |
| 1 1 | 
             
            require "git"
         | 
| 2 | 
            +
            require "uri"
         | 
| 2 3 |  | 
| 3 4 | 
             
            module Rexer
         | 
| 4 5 | 
             
              module Source
         | 
| @@ -8,6 +9,7 @@ module Rexer | |
| 8 9 | 
             
                    @branch = branch
         | 
| 9 10 | 
             
                    @tag = tag
         | 
| 10 11 | 
             
                    @ref = ref
         | 
| 12 | 
            +
                    @reference = branch || tag || ref
         | 
| 11 13 | 
             
                  end
         | 
| 12 14 |  | 
| 13 15 | 
             
                  def load(path)
         | 
| @@ -20,19 +22,30 @@ module Rexer | |
| 20 22 | 
             
                  end
         | 
| 21 23 |  | 
| 22 24 | 
             
                  def updatable?
         | 
| 23 | 
            -
                     | 
| 25 | 
            +
                    branch || reference.nil?
         | 
| 24 26 | 
             
                  end
         | 
| 25 27 |  | 
| 26 28 | 
             
                  def info
         | 
| 27 | 
            -
                     | 
| 29 | 
            +
                    URI.parse(url).then do |uri|
         | 
| 30 | 
            +
                      "#{uri.host}#{uri.path}@#{reference_name}"
         | 
| 31 | 
            +
                    end
         | 
| 28 32 | 
             
                  end
         | 
| 29 33 |  | 
| 30 34 | 
             
                  private
         | 
| 31 35 |  | 
| 32 | 
            -
                  attr_reader :url, :branch, :tag, :ref
         | 
| 36 | 
            +
                  attr_reader :url, :reference, :branch, :tag, :ref
         | 
| 33 37 |  | 
| 34 38 | 
             
                  def checkout(git)
         | 
| 35 | 
            -
                     | 
| 39 | 
            +
                    reference&.then { git.checkout(_1) }
         | 
| 40 | 
            +
                  end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                  def reference_name
         | 
| 43 | 
            +
                    branch || tag || short_ref || "main"
         | 
| 44 | 
            +
                  end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                  def short_ref
         | 
| 47 | 
            +
                    return unless ref
         | 
| 48 | 
            +
                    ref.match?(/^[a-z0-9]+$/) ? ref.slice(0, 7) : ref
         | 
| 36 49 | 
             
                  end
         | 
| 37 50 | 
             
                end
         | 
| 38 51 | 
             
              end
         | 
    
        data/lib/rexer/source/github.rb
    CHANGED
    
    | @@ -2,8 +2,13 @@ module Rexer | |
| 2 2 | 
             
              module Source
         | 
| 3 3 | 
             
                class Github < Git
         | 
| 4 4 | 
             
                  def initialize(repo:, branch: nil, tag: nil, ref: nil)
         | 
| 5 | 
            +
                    @repo = repo
         | 
| 5 6 | 
             
                    super(url: "https://github.com/#{repo}", branch: branch, tag: tag, ref: ref)
         | 
| 6 7 | 
             
                  end
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  def info
         | 
| 10 | 
            +
                    "#{@repo}@#{reference_name}"
         | 
| 11 | 
            +
                  end
         | 
| 7 12 | 
             
                end
         | 
| 8 13 | 
             
              end
         | 
| 9 14 | 
             
            end
         | 
    
        data/lib/rexer/version.rb
    CHANGED
    
    
    
        data/lib/rexer.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rexer
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.14.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Katsuya Hidaka
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024- | 
| 11 | 
            +
            date: 2024-11-25 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: thor
         | 
| @@ -94,6 +94,20 @@ dependencies: | |
| 94 94 | 
             
                - - "~>"
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 96 | 
             
                    version: '3.1'
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            +
              name: activesupport
         | 
| 99 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 | 
            +
                requirements:
         | 
| 101 | 
            +
                - - ">="
         | 
| 102 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            +
                    version: '7.0'
         | 
| 104 | 
            +
              type: :runtime
         | 
| 105 | 
            +
              prerelease: false
         | 
| 106 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 | 
            +
                requirements:
         | 
| 108 | 
            +
                - - ">="
         | 
| 109 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            +
                    version: '7.0'
         | 
| 97 111 | 
             
            description: Rexer is a command-line tool for managing Redmine Extension (Plugin and
         | 
| 98 112 | 
             
              Themes). It allows you to define extensions in a Ruby DSL and install, uninstall,
         | 
| 99 113 | 
             
              update, and switch between different sets of the extensions.
         |