Module: Condenser::SassTransformer::Functions

Defined in:
lib/condenser/transformers/sass_transformer.rb

Overview

Public: Functions injected into Sass context during Condenser evaluation.

This module may be extended to add global functionality to all Condenser Sass environments. Though, scoping your functions to just your environment is preferred.

module Condenser::SassProcessor::Functions

def asset_path(path, options = {})
end

end

Instance Method Summary collapse

Instance Method Details

#asset_data_url(path) ⇒ Object

Public: Generate a data URI for asset path.

path - Sass::Script::String logical asset path

Returns a Sass::Script::String.



277
278
279
280
# File 'lib/condenser/transformers/sass_transformer.rb', line 277

def asset_data_url(path)
  url = condenser_environment.asset_data_uri(path.value)
  Sass::Script::String.new("url(" + url + ")")
end

#asset_path(path, options = {}) ⇒ Object

Public: Generate a url for asset path.

Default implementation is deprecated. Currently defaults to Context#asset_path.

Will raise NotImplementedError in the future. Users should provide their own base implementation.

Returns a Sass::Script::String.



143
144
145
146
147
148
149
150
151
152
153
# File 'lib/condenser/transformers/sass_transformer.rb', line 143

def asset_path(path, options = {})
  path = path.value

  path, _, query, fragment = URI.split(path)[5..8]
  asset = condenser_environment.find!(path)
  condenser_context.link_asset(path)
  path = condenser_context.asset_path(asset.path, options)
  query    = "?#{query}" if query
  fragment = "##{fragment}" if fragment
  SassC::Script::Value::String.new("#{path}#{query}#{fragment}", :string)
end

#asset_url(path, options = {}) ⇒ Object

Public: Generate a asset url() link.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



160
161
162
# File 'lib/condenser/transformers/sass_transformer.rb', line 160

def asset_url(path, options = {})
  SassC::Script::Value::String.new("url(#{asset_path(path, options).value})")
end

#audio_path(path) ⇒ Object

Public: Generate url for audio path.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



205
206
207
# File 'lib/condenser/transformers/sass_transformer.rb', line 205

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

#audio_url(path) ⇒ Object

Public: Generate a audio url() link.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



214
215
216
# File 'lib/condenser/transformers/sass_transformer.rb', line 214

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

#font_path(path) ⇒ Object

Public: Generate url for font path.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



223
224
225
# File 'lib/condenser/transformers/sass_transformer.rb', line 223

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

#font_url(path) ⇒ Object

Public: Generate a font url() link.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



232
233
234
# File 'lib/condenser/transformers/sass_transformer.rb', line 232

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

#image_path(path) ⇒ Object

Public: Generate url for image path.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



169
170
171
# File 'lib/condenser/transformers/sass_transformer.rb', line 169

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

#image_url(path) ⇒ Object

Public: Generate a image url() link.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



178
179
180
# File 'lib/condenser/transformers/sass_transformer.rb', line 178

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

#javascript_path(path) ⇒ Object

Public: Generate url for javascript path.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



241
242
243
# File 'lib/condenser/transformers/sass_transformer.rb', line 241

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

#javascript_url(path) ⇒ Object

Public: Generate a javascript url() link.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



250
251
252
# File 'lib/condenser/transformers/sass_transformer.rb', line 250

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

#stylesheet_path(path) ⇒ Object

Public: Generate url for stylesheet path.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



259
260
261
# File 'lib/condenser/transformers/sass_transformer.rb', line 259

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

#stylesheet_url(path) ⇒ Object

Public: Generate a stylesheet url() link.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



268
269
270
# File 'lib/condenser/transformers/sass_transformer.rb', line 268

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

#video_path(path) ⇒ Object

Public: Generate url for video path.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



187
188
189
# File 'lib/condenser/transformers/sass_transformer.rb', line 187

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

#video_url(path) ⇒ Object

Public: Generate a video url() link.

path - Sass::Script::String URL path

Returns a Sass::Script::String.



196
197
198
# File 'lib/condenser/transformers/sass_transformer.rb', line 196

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