Module: Sprockets::SassEmbedded::SassProcessor::Functions

Defined in:
lib/sprockets/sass_embedded/sass_processor.rb

Overview

Functions injected into Sass context during Sprockets evaluation.

This module may be extended to add global functionality to all Sprockets Sass environments. Scoping your functions to just your environment is preferred.

Examples:


module Sprockets::SassProcessor::Functions
  def asset_path(path, options = {})
  end
end

Instance Method Summary collapse

Instance Method Details

#asset_data_uri(path) ⇒ SassEmbedded::Value::String

Generate a data: URI for asset path.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


286
287
288
289
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 286

def asset_data_uri(path)
  url = sprockets_context.asset_data_uri(path.text)
  Autoload::SassEmbedded::Value::String.new(url)
end

#asset_data_url(path) ⇒ SassEmbedded::Value::String

Genearte a data: url() link.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


295
296
297
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 295

def asset_data_url(path)
  Autoload::SassEmbedded::Value::String.new("url(#{asset_data_uri(path)})", quoted: false)
end

#asset_path(path, **options) ⇒ SassEmbedded::Value::String

Generate a URL for asset path.

Parameters:

  • path (Sass::Script::String)
  • options (Hash)

Returns:

  • (SassEmbedded::Value::String)


167
168
169
170
171
172
173
174
175
176
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 167

def asset_path(path, **options)
  path = path.text

  path, _, query, fragment = URI.split(path)[5..8]
  path     = sprockets_context.asset_path(path, options)
  query    = "?#{query}" if query
  fragment = "##{fragment}" if fragment

  Autoload::SassEmbedded::Value::String.new("#{path}#{query}#{fragment}", quoted: true)
end

#asset_url(path, **options) ⇒ SassEmbedded::Value::String

Generate an asset url() link.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


182
183
184
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 182

def asset_url(path, **options)
  Autoload::SassEmbedded::Value::String.new("url(#{asset_path(path, options).text})", quoted: false)
end

#audio_path(path) ⇒ SassEmbedded::Value::String

Generate a URL for audio path.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


222
223
224
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 222

def audio_path(path)
  asset_path(path, type: :audio)
end

#audio_url(path) ⇒ SassEmbedded::Value::String

Generate an audio url() link.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


230
231
232
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 230

def audio_url(path)
  asset_url(path, type: :audio)
end

#font_path(path) ⇒ SassEmbedded::Value::String

Generate a URL for font path.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


238
239
240
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 238

def font_path(path)
  asset_path(path, type: :font)
end

#font_url(path) ⇒ SassEmbedded::Value::String

Generate a font url() link.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


246
247
248
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 246

def font_url(path)
  asset_url(path, type: :font)
end

#image_path(path) ⇒ SassEmbedded::Value::String

Generate a URL for image path.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


190
191
192
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 190

def image_path(path)
  asset_path(path, type: :image)
end

#image_url(path) ⇒ SassEmbedded::Value::String

Generate an image url() link.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


198
199
200
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 198

def image_url(path)
  asset_url(path, type: :image)
end

#javascript_path(path) ⇒ SassEmbedded::Value::String

Generate a URL for JavaScript path.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


254
255
256
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 254

def javascript_path(path)
  asset_path(path, type: :javascript)
end

#javascript_url(path) ⇒ SassEmbedded::Value::String

Generate a JavaScript url() link.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


262
263
264
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 262

def javascript_url(path)
  asset_url(path, type: :javascript)
end

#stylesheet_path(path) ⇒ SassEmbedded::Value::String

Generate a URL for stylesheet path.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


270
271
272
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 270

def stylesheet_path(path)
  asset_path(path, type: :stylesheet)
end

#stylesheet_url(path) ⇒ SassEmbedded::Value::String

Generate a stylesheet url() link.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


278
279
280
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 278

def stylesheet_url(path)
  asset_url(path, type: :stylesheet)
end

#video_path(path) ⇒ SassEmbedded::Value::String

Generate a URL for video path.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


206
207
208
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 206

def video_path(path)
  asset_path(path, type: :video)
end

#video_url(path) ⇒ SassEmbedded::Value::String

Generate a video url() link.

Parameters:

  • path (Sass::Script::String)

Returns:

  • (SassEmbedded::Value::String)


214
215
216
# File 'lib/sprockets/sass_embedded/sass_processor.rb', line 214

def video_url(path)
  asset_url(path, type: :video)
end