module Sass::Rails

Public Instance Methods

preserving_query_strings_and_anchors(asset, closing_chars) { |asset| ... } click to toggle source

rubocop:disable Metrics/AbcSize,Metrics/MethodLength

# File lib/sass/rails/query_string_and_anchor_fix.rb, line 14
def preserving_query_strings_and_anchors(asset, closing_chars)
  # rubocop:enable Metrics/AbcSize,Metrics/MethodLength
  split_point = [asset.value.index('#'), asset.value.index('?')].compact.min
  if split_point
    suffix = asset.value[split_point..-1]
    asset = asset.class.new(
      asset.value[0, split_point],
      asset.type,
      asset.instance_variable_get('@deprecated_interp_equivalent')
    )
  end
  asset = yield(asset)
  if split_point
    new_value =
      if closing_chars.zero?
        asset.value + suffix
      else
        asset.value[0..(-closing_chars - 1)] + suffix + asset.value[-closing_chars..-1]
      end
    asset = asset.class.new(
      new_value,
      asset.type,
      asset.instance_variable_get('@deprecated_interp_equivalent')
    )
  end
  asset
end