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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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)


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

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