Compare commits

...

8 Commits

Author SHA1 Message Date
ac5a17dbb8
Add badge with gem version and link
All checks were successful
continuous-integration/drone/push Build is passing
2024-08-14 16:21:53 +02:00
784543f32d
Release 1.1.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2024-08-14 16:17:27 +02:00
a070bb6a49 Merge pull request 'Allow selecting image type via Regexp' (#6) from feature/select_type_regex into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #6
2024-08-14 14:14:34 +00:00
682f66f476
Allow selecting image type via Regexp
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
For example, SVG images might be of type "image/svg" or "image/svg+xml"
2024-08-14 16:13:50 +02:00
e1d514d905 Merge pull request 'Don't break on icon size "any"' (#5) from bugfix/size_any into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #5
2024-08-14 13:52:04 +00:00
339508bf41
Don't break on icon size "any"
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
... and any other strings failing to match the "sizes" number format
for that matter
2024-08-14 15:46:58 +02:00
45a43ce73d
Update lockfile
All checks were successful
continuous-integration/drone/push Build is passing
2024-08-14 15:46:35 +02:00
f31800a2d4
Ignore build files
All checks were successful
continuous-integration/drone/push Build is passing
2024-02-02 17:50:54 +02:00
6 changed files with 23 additions and 4 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@
/spec/reports/
/tmp/
.rspec_status
*.gem

View File

@ -1,7 +1,7 @@
PATH
remote: .
specs:
manifique (1.0.0)
manifique (1.1.0)
faraday (~> 2.9.0)
faraday-follow_redirects (= 0.3.0)
nokogiri (~> 1.16.0)

View File

@ -1,3 +1,4 @@
[![Ruby Gem version](https://img.shields.io/gem/v/manifique)](https://rubygems.org/gems/manifique)
[![Build Status](https://drone.kosmos.org/api/badges/5apps/manifique/status.svg)](https://drone.kosmos.org/5apps/manifique)
# Manifique

View File

@ -43,11 +43,17 @@ module Manifique
end
if options[:type]
results.reject! { |r| r["type"] != options[:type] }
if options[:type].is_a?(String)
results.reject! { |r| r["type"] != options[:type] }
elsif options[:type].is_a?(Regexp)
results.reject! { |r| r["type"].match(options[:type]).nil? }
else
raise ArgumentError, "Type must be a string or a regular expression"
end
end
if options[:sizes]
results.reject! { |r| r["sizes"].nil? }
results.reject! { |r| r["sizes"].nil? || r["sizes"].match(/(\d+)x/).nil? }
results.sort! { |a, b| sizes_to_i(b["sizes"]) <=> sizes_to_i(a["sizes"]) }
if icon = select_exact_size(results, options[:sizes])

View File

@ -1,3 +1,3 @@
module Manifique
VERSION = "1.0.1"
VERSION = "1.1.0"
end

View File

@ -68,6 +68,16 @@ RSpec.describe Manifique::Metadata do
icon = metadata.select_icon(type: "image/png")
expect(icon["sizes"]).to eq("512x512")
end
it "matches strings exactly" do
icon = metadata.select_icon(type: "image/svg")
expect(icon["type"]).to eq("image/svg")
end
it "works with a regex" do
icon = metadata.select_icon(type: /image\/svg/)
expect(icon["type"]).to eq("image/svg+xml")
end
end
describe "by size" do
@ -105,6 +115,7 @@ def icon_fixtures
{"src"=>"/application_icon_x228.png", "sizes"=>"228x228", "type"=>"image/png"},
{"src"=>"/application_icon_x196.png", "sizes"=>"196x196", "type"=>"image/png"},
{"src"=>"/application_icon_x192.png", "sizes"=>"192x192", "type"=>"image/png"},
{"src"=>"/icon-maskable.svg", "type"=>"image/svg+xml", "sizes"=>"any", "purpose"=>"maskable"},
{"purpose"=>"apple-touch-icon", "src"=>"/apple-touch-icon.png", "sizes"=>"180x180", "type"=>"image/png" },
{"purpose"=>"apple-touch-icon", "src"=>"/apple-touch-icon-57px.png", "sizes"=>"57x57", "type"=>"image/png"},
{"purpose"=>"mask-icon", "src"=>"/mask-icon.svg", "type"=>"image/svg", "color"=>"#2b90d9"}