Class: Lazylead::Screenshots
- Inherits:
-
Requirement
- Object
- Requirement
- Lazylead::Screenshots
- Defined in:
- lib/lazylead/task/accuracy/screenshots.rb
Overview
Check that ticket has screenshot(s). The screenshots should
1. present as attachments
2. has extension .jpg .jpeg .exif .tiff .tff .bmp .png .svg
3. mentioned in description with !<name>.<extension>|thumbnail! (read more https://bit.ly/3rusNgW)
Instance Attribute Summary
Attributes inherited from Requirement
Instance Method Summary collapse
-
#initialize(minimum: 1, score: 2, ext: %w[.jpg .jpeg .exif .tiff .tff .bmp .png .svg])) ⇒ Screenshots
constructor
A new instance of Screenshots.
- #passed(issue) ⇒ Object
-
#pictures(issue) ⇒ Object
Detect all pictures in ticket attachments and returns an array with file names.
-
#references(issue) ⇒ Object
Detect all references in ticket description to attachments (including web links).
Methods inherited from Requirement
Constructor Details
#initialize(minimum: 1, score: 2, ext: %w[.jpg .jpeg .exif .tiff .tff .bmp .png .svg])) ⇒ Screenshots
Returns a new instance of Screenshots.
37 38 39 40 41 |
# File 'lib/lazylead/task/accuracy/screenshots.rb', line 37 def initialize(minimum: 1, score: 2, ext: %w[.jpg .jpeg .exif .tiff .tff .bmp .png .svg]) super "Screenshots", score, "Description,Attachments" @minimum = minimum @ext = ext end |
Instance Method Details
#passed(issue) ⇒ Object
43 44 45 46 47 |
# File 'lib/lazylead/task/accuracy/screenshots.rb', line 43 def passed(issue) return false if issue..nil? || blank?(issue, "description") ref = references(issue) ref.size < @minimum ? false : ref.all? { |r| pictures(issue).any? { |file| r.include? file } } end |
#pictures(issue) ⇒ Object
Detect all pictures in ticket attachments and returns an array with file names.
59 60 61 62 63 |
# File 'lib/lazylead/task/accuracy/screenshots.rb', line 59 def pictures(issue) @pictures ||= issue. .select { |a| @ext.include? File.extname(a.filename).downcase } .map(&:filename) end |
#references(issue) ⇒ Object
Detect all references in ticket description to attachments (including web links).
50 51 52 53 54 55 56 |
# File 'lib/lazylead/task/accuracy/screenshots.rb', line 50 def references(issue) issue.description .to_enum(:scan, /!.+!/) .map { Regexp.last_match } .map(&:to_s) .reject { |r| r.match?(%r{(http|https)://.*/images/icons/link_attachment.*.gif}) } end |