Class: Rack::Less::Source
- Inherits:
-
Object
- Object
- Rack::Less::Source
- Defined in:
- lib/rack/less/source.rb
Overview
The engine for compiling LESS CSS Given the name of the less source file you want to compile and a path to the source files, will returns corresponding compiled LESS CSS
Constant Summary collapse
- PREFERRED_EXTENSIONS =
prefer source files with the .less extension but also accept files with the .css extension
[:less, :css]
- YUI_OPTS =
{}
Instance Attribute Summary collapse
-
#css_resource ⇒ Object
readonly
Returns the value of attribute css_resource.
Instance Method Summary collapse
- #cache ⇒ Object
- #cache? ⇒ Boolean
- #compiled ⇒ Object (also: #to_css, #css)
- #compress? ⇒ Boolean
-
#files ⇒ Object
Use named css sources before using combination sources.
-
#initialize(css_resource, options = {}) ⇒ Source
constructor
A new instance of Source.
Constructor Details
#initialize(css_resource, options = {}) ⇒ Source
Returns a new instance of Source.
26 27 28 29 30 31 |
# File 'lib/rack/less/source.rb', line 26 def initialize(css_resource, ={}) @css_resource = css_resource.gsub(/^\/+/, '') @compress = [:compress] @cache = [:cache] @folder = get_required_path(, :folder) end |
Instance Attribute Details
#css_resource ⇒ Object (readonly)
Returns the value of attribute css_resource.
24 25 26 |
# File 'lib/rack/less/source.rb', line 24 def css_resource @css_resource end |
Instance Method Details
#cache ⇒ Object
39 40 41 |
# File 'lib/rack/less/source.rb', line 39 def cache @cache end |
#cache? ⇒ Boolean
36 37 38 |
# File 'lib/rack/less/source.rb', line 36 def cache? !@cache.nil? end |
#compiled ⇒ Object Also known as: to_css, css
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/rack/less/source.rb', line 48 def compiled @compiled ||= begin compiled_css = files.collect do |file_path| Less::Engine.new(File.new(file_path)).to_css end.join("\n") compiled_css = case @compress when :whitespace, true compiled_css.delete("\n") when :yui if defined?(YUI::CssCompressor) YUI::CssCompressor.new(YUI_OPTS).compress(compiled_css) else raise LoadError, "YUI::CssCompressor is not available. Install it with: gem install yui-compressor" end else compiled_css end if cache? && !File.exists?(cf = File.join(@cache, "#{@css_resource}.css")) FileUtils.mkdir_p(File.dirname(cf)) File.open(cf, "w") do |file| file.write(compiled_css) end end compiled_css end end |
#compress? ⇒ Boolean
33 34 35 |
# File 'lib/rack/less/source.rb', line 33 def compress? !!@compress end |
#files ⇒ Object
Use named css sources before using combination sources
44 45 46 |
# File 'lib/rack/less/source.rb', line 44 def files @files ||= (css_sources.empty? ? combination_sources : css_sources) end |