sidekiq-belt 2.0.1 → 2.0.2
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/CHANGELOG.md +4 -0
- data/README.md +10 -0
- data/lib/sidekiq/belt/community/run_job.rb +26 -3
- data/lib/sidekiq/belt/community/views/run_jobs.erb +28 -3
- data/lib/sidekiq/belt/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1f2ad0b7e0a234a3f527f27a450a25c6cdf14c34387bfb38593e3637eed9eac1
         | 
| 4 | 
            +
              data.tar.gz: a3eff6ee04902f1d4ae8e493f5d96e99038ca57511fc1720cc7343a0acd04525
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 21012fc5d259e318c26a62765a74ab985f5ad1bff20757616672d2d37ce2f33e85b6c52318eb8b67c6fbeb51c62714f72a4e367330a3f84cc95a199c5a05c823
         | 
| 7 | 
            +
              data.tar.gz: f04b7d0a4d5fa342d29d2220c32f05545c9ad824c5c869fcbe8e5ec80c401d0d1f7a1665e4b79cb728609ea161d3e2959decb19c43738384a526b562b17fba02
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -113,6 +113,16 @@ Sidekiq::Belt.configure do |config| | |
| 113 113 |  | 
| 114 114 | 
             
              config.run_jobs << { class: "CWorker", args: ["a"], group: "Etc" }
         | 
| 115 115 | 
             
              config.run_jobs << { class: "DWorker", args: ["a"], group: "Etc" }
         | 
| 116 | 
            +
             | 
| 117 | 
            +
              config.run_jobs << { class: "EWorker", args: [
         | 
| 118 | 
            +
                  { dynamic: 'text', title: 'Observation' },
         | 
| 119 | 
            +
                  { dynamic: 'integer', title: 'Number of test' },
         | 
| 120 | 
            +
                  'fixed value A',
         | 
| 121 | 
            +
                  { dynamic: 'boolean', title: 'Boolean data' },
         | 
| 122 | 
            +
                  { dynamic: 'enum', title: 'Enum data', options: ['option1', 'option2', 'option3'], default: 'option2' },
         | 
| 123 | 
            +
                  'fixed value B'
         | 
| 124 | 
            +
                ], group: "Etc" }
         | 
| 125 | 
            +
              config.run_jobs << { class: "FWorker", args: ["a"], group: "Etc" }
         | 
| 116 126 | 
             
            end
         | 
| 117 127 | 
             
            ```
         | 
| 118 128 |  | 
| @@ -20,11 +20,32 @@ module Sidekiq | |
| 20 20 | 
             
                      jobs
         | 
| 21 21 | 
             
                    end
         | 
| 22 22 |  | 
| 23 | 
            -
                    def self. | 
| 23 | 
            +
                    def self.dynamic_type?(arg, type)
         | 
| 24 | 
            +
                      return false unless arg.is_a?(Hash)
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                      arg[:dynamic].to_s == type
         | 
| 27 | 
            +
                    end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    def self.run_job(job_id, extra_args = {})
         | 
| 24 30 | 
             
                      job = Sidekiq::Belt.config.run_jobs[job_id.to_i]
         | 
| 25 31 | 
             
                      job.transform_keys(&:to_sym)
         | 
| 26 32 |  | 
| 27 | 
            -
                       | 
| 33 | 
            +
                      args = job.fetch(:args, [])
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                      new_args = []
         | 
| 36 | 
            +
                      args.each_with_index do |arg, i|
         | 
| 37 | 
            +
                        if dynamic_type?(arg, "text") || dynamic_type?(arg, "enum")
         | 
| 38 | 
            +
                          new_args[i] = extra_args.shift
         | 
| 39 | 
            +
                        elsif dynamic_type?(arg, "integer")
         | 
| 40 | 
            +
                          new_args[i] = extra_args.shift.to_i
         | 
| 41 | 
            +
                        elsif dynamic_type?(arg, "boolean")
         | 
| 42 | 
            +
                          new_args[i] = extra_args.shift == "true"
         | 
| 43 | 
            +
                        else
         | 
| 44 | 
            +
                          new_args << arg
         | 
| 45 | 
            +
                        end
         | 
| 46 | 
            +
                      end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                      Module.const_get(job[:class]).perform_async(*new_args)
         | 
| 28 49 | 
             
                    end
         | 
| 29 50 |  | 
| 30 51 | 
             
                    module SidekiqRunJob
         | 
| @@ -36,7 +57,9 @@ module Sidekiq | |
| 36 57 | 
             
                        end
         | 
| 37 58 |  | 
| 38 59 | 
             
                        app.post("/run_jobs/:rjid/run") do
         | 
| 39 | 
            -
                           | 
| 60 | 
            +
                          args = url_params("args")
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                          Sidekiq::Belt::Community::RunJob.run_job(route_params(:rjid).to_i, args)
         | 
| 40 63 |  | 
| 41 64 | 
             
                          return redirect "#{root_path}run_jobs"
         | 
| 42 65 | 
             
                        end
         | 
| @@ -14,10 +14,35 @@ | |
| 14 14 | 
             
                  <% jobs.each do |job| %>
         | 
| 15 15 | 
             
                    <tr>
         | 
| 16 16 | 
             
                      <td><%= job[:class] %></td>
         | 
| 17 | 
            -
                      <td | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 17 | 
            +
                      <td colspan="2">
         | 
| 18 | 
            +
                        <form action="<%= root_path %>run_jobs/<%= job[:id] %>/run" class="force-run-form" method="post">
         | 
| 19 | 
            +
                          <%= '[' %>
         | 
| 20 | 
            +
                          <% (job[:args] || []).each_with_index do |arg, i| %>
         | 
| 21 | 
            +
                            <% if Sidekiq::Belt::Community::RunJob.dynamic_type?(arg, 'text') %>
         | 
| 22 | 
            +
                              <input type="text" class="form-control" name="args[]" title="<%= arg[:title] %>" required='true' placeholder="<%= arg[:title] %>" value="<%= arg[:default] %>"  />
         | 
| 23 | 
            +
                            <% elsif Sidekiq::Belt::Community::RunJob.dynamic_type?(arg, 'integer') %>
         | 
| 24 | 
            +
                             <input type="number" class="form-control" name="args[]" title="<%= arg[:title] %>" required='true' placeholder="<%= arg[:title] %>" value="<%= arg[:default] %>" />
         | 
| 25 | 
            +
                            <% elsif Sidekiq::Belt::Community::RunJob.dynamic_type?(arg, 'boolean') %>
         | 
| 26 | 
            +
                              <select class="form-control" name="args[]" required='true' title="<%= arg[:title] %>" placeholder="<%= arg[:title] %>">
         | 
| 27 | 
            +
                                <option value="true" <%= arg[:default] == 'true' ? 'selected' : '' %>>true</option>
         | 
| 28 | 
            +
                                <option value="false" <%= arg[:default] == 'false' ? 'selected' : '' %>>false</option>
         | 
| 29 | 
            +
                              </select>
         | 
| 30 | 
            +
                            <% elsif Sidekiq::Belt::Community::RunJob.dynamic_type?(arg, 'enum') %>
         | 
| 31 | 
            +
                              <select class="form-control" name="args[]" required='true' title="<%= arg[:title] %>" placeholder="<%= arg[:title] %>">
         | 
| 32 | 
            +
                                <% arg[:options].each do |option| %>
         | 
| 33 | 
            +
                                  <option value="<%= option %>" <%= arg[:default].to_s == option.to_s ? 'selected' : '' %>><%= option %></option>
         | 
| 34 | 
            +
                                <% end %>
         | 
| 35 | 
            +
                              </select>
         | 
| 36 | 
            +
                            <% else %>
         | 
| 37 | 
            +
                              <input type="hidden" name="args[]" value="<%= arg %>" />
         | 
| 38 | 
            +
                              <%= arg.inspect %>
         | 
| 39 | 
            +
                            <% end %>
         | 
| 40 | 
            +
                            <%= ',' if i < (job[:args] || []).size - 1 %>
         | 
| 41 | 
            +
                          <% end %>
         | 
| 42 | 
            +
                          <%= ']' %>
         | 
| 43 | 
            +
             | 
| 20 44 | 
             
                          <%= csrf_tag %>
         | 
| 45 | 
            +
             | 
| 21 46 | 
             
                          <input class="btn btn-danger" type="submit" name="run" value="<%= t('Run') %>"
         | 
| 22 47 | 
             
                            data-confirm="Run the job <%= job[:klass] %>? <%= t('AreYouSure') %>" />
         | 
| 23 48 | 
             
                        </form>
         | 
    
        data/lib/sidekiq/belt/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: sidekiq-belt
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 2.0. | 
| 4 | 
            +
              version: 2.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Danilo Jeremias da Silva
         | 
| 8 8 | 
             
            bindir: exe
         | 
| 9 9 | 
             
            cert_chain: []
         | 
| 10 | 
            -
            date: 2025-03- | 
| 10 | 
            +
            date: 2025-03-23 00:00:00.000000000 Z
         | 
| 11 11 | 
             
            dependencies:
         | 
| 12 12 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 13 13 | 
             
              name: sidekiq
         |