Module: Imglab::Srcset::Utils
Constant Summary collapse
- NORMALIZE_KEYS =
%w[dpr width].freeze
- SPLIT_DPR_KEYS =
%w[dpr quality].freeze
- SPLIT_WIDTH_KEYS =
%w[width height quality].freeze
Instance Method Summary collapse
-
#normalize_params(params) ⇒ Hash
Returns normalized params, rejecting values with keys included in normalized keys and with empty arrays.
-
#split_params_dpr(params) ⇒ Array
Returns an array with the parameters to use in different URLs for a srcset split by dpr parameter.
-
#split_params_width(params) ⇒ Array
Returns an array with the parameters to use in different URLs for a srcset split by width parameter.
Instance Method Details
#normalize_params(params) ⇒ Hash
Returns normalized params, rejecting values with keys included in normalized keys and with empty arrays.
14 15 16 17 18 |
# File 'lib/imglab/srcset/utils.rb', line 14 def normalize_params(params) params.inject({}) do |normalized_params, (key, value)| normalized_params.merge(normalize_param(key.to_s, value)) end end |
#split_params_dpr(params) ⇒ Array
Returns an array with the parameters to use in different URLs for a srcset split by dpr parameter.
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/imglab/srcset/utils.rb', line 24 def split_params_dpr(params) split_values(params, SPLIT_DPR_KEYS, params.fetch("dpr").size).map do |dpr, quality| params.merge( { "dpr" => dpr, "quality" => quality }.delete_if { |key, _value| !params.key?(key) } ) end end |
#split_params_width(params) ⇒ Array
Returns an array with the parameters to use in different URLs for a srcset split by width parameter.
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/imglab/srcset/utils.rb', line 39 def split_params_width(params) split_values(params, SPLIT_WIDTH_KEYS, split_size(params.fetch("width"))).map do |width, height, quality| params.merge( { "width" => width, "height" => height, "quality" => quality }.delete_if { |key, _value| !params.key?(key) } ) end end |