Module: SidekiqUniqueJobs::Web::Helpers
Overview
Provides view helpers for the Sidekiq::Web extension
Constant Summary collapse
- VIEW_PATH =
Returns the path to gem specific views.
File.("../web/views", __dir__).freeze
- SAFE_CPARAMS =
Returns safe params.
%w[ filter count cursor prev_cursor poll direction ].freeze
Instance Method Summary collapse
-
#changelog ⇒ SidekiqUniqueJobs::Digests
The collection of changelog entries.
-
#cparams(options) ⇒ String
Creates url safe parameters.
-
#digests ⇒ SidekiqUniqueJobs::Digests
The collection of digests.
-
#display_lock_args(args, truncate_after_chars = 2000) ⇒ String
Used to avoid incompatibility with older sidekiq versions.
-
#parse_time(time) ⇒ Time
Constructs a time from a number of different types.
-
#redirect_to(subpath) ⇒ Object
Redirect to with falback.
-
#relative_time(time) ⇒ String
Gets a relative time as html.
-
#safe_relative_time(time) ⇒ String
Gets a relative time as html without crashing.
-
#unique_filename(name) ⇒ String
Construct template file name.
-
#unique_template(name) ⇒ String
Opens a template file contained within this gem.
Instance Method Details
#changelog ⇒ SidekiqUniqueJobs::Digests
The collection of changelog entries
60 61 62 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 60 def changelog @changelog ||= SidekiqUniqueJobs::Changelog.new end |
#cparams(options) ⇒ String
Creates url safe parameters
71 72 73 74 75 76 77 78 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 71 def cparams() = .transform_keys(&:to_s) params.merge().map do |key, value| next unless SAFE_CPARAMS.include?(key) "#{key}=#{CGI.escape(value.to_s)}" end.compact.join("&") end |
#digests ⇒ SidekiqUniqueJobs::Digests
The collection of digests
50 51 52 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 50 def digests @digests ||= SidekiqUniqueJobs::Digests.new end |
#display_lock_args(args, truncate_after_chars = 2000) ⇒ String
Used to avoid incompatibility with older sidekiq versions
89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 89 def display_lock_args(args, truncate_after_chars = 2000) return "Invalid job payload, args is nil" if args.nil? return "Invalid job payload, args must be an Array, not #{args.class.name}" unless args.is_a?(Array) begin args.map do |arg| h(truncate(to_display(arg), truncate_after_chars)) end.join(", ") rescue StandardError "Illegal job arguments: #{h args.inspect}" end end |
#parse_time(time) ⇒ Time
Constructs a time from a number of different types
151 152 153 154 155 156 157 158 159 160 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 151 def parse_time(time) case time when Time time when Integer, Float Time.at(time) else Time.parse(time.to_s) end end |
#redirect_to(subpath) ⇒ Object
Redirect to with falback
109 110 111 112 113 114 115 116 117 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 109 def redirect_to(subpath) if respond_to?(:to) # Sinatra-based web UI redirect to(subpath) else # Non-Sinatra based web UI (Sidekiq 4.2+) redirect "#{root_path}#{subpath}" end end |
#relative_time(time) ⇒ String
Gets a relative time as html
126 127 128 129 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 126 def relative_time(time) stamp = time.getutc.iso8601 %(<time class="ltr" dir="ltr" title="#{stamp}" datetime="#{stamp}">#{time}</time>) end |
#safe_relative_time(time) ⇒ String
Gets a relative time as html without crashing
138 139 140 141 142 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 138 def safe_relative_time(time) time = parse_time(time) relative_time(time) end |
#unique_filename(name) ⇒ String
Construct template file name
40 41 42 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 40 def unique_filename(name) File.join(VIEW_PATH, "#{name}.erb") end |
#unique_template(name) ⇒ String
Opens a template file contained within this gem
29 30 31 |
# File 'lib/sidekiq_unique_jobs/web/helpers.rb', line 29 def unique_template(name) File.open(unique_filename(name)).read end |