Class: Fuse::Document::Asset::StyleSheet

Inherits:
Fuse::Document::Asset show all
Includes:
HasDependents
Defined in:
lib/fuse/document/asset/style_sheet.rb

Direct Known Subclasses

Sass

Defined Under Namespace

Classes: Conditional, Sass

Constant Summary collapse

EMBED_WITH =
'style'
JOIN_WITH =
''
MEDIA_PATTERN =
/\(([a-z]+(?:,\s*[a-z]+)*)\)(?:\.[a-z]+$|\s*\()/i

Constants included from HasDependents

HasDependents::COMMENT_PATTERN, HasDependents::REQUIRE_PATTERN

Constants inherited from Fuse::Document::Asset

TYPES

Instance Attribute Summary

Attributes inherited from Fuse::Document::Asset

#path

Instance Method Summary collapse

Methods included from HasDependents

#dependents

Methods inherited from Fuse::Document::Asset

[], #call, #extension, #filter?, #filtered, for, #full_path, #initialize, #raw, #relative_path, #to_datauri

Constructor Details

This class inherits a constructor from Fuse::Document::Asset

Instance Method Details

#compressObject



33
34
35
36
37
38
# File 'lib/fuse/document/asset/style_sheet.rb', line 33

def compress
  original = raw
  compressed = ::Sass.compile original, style: :compressed
  Fuse.log "SASS: Compressed #{path} from #{original.bytesize} bytes to #{compressed.bytesize} bytes", :success
  compressed
end

#conditionalObject



25
26
27
# File 'lib/fuse/document/asset/style_sheet.rb', line 25

def conditional
  @conditional ||= Conditional.new self
end

#conditional_signatureObject



29
30
31
# File 'lib/fuse/document/asset/style_sheet.rb', line 29

def conditional_signature
  conditional.signature
end

#mediaObject



21
22
23
# File 'lib/fuse/document/asset/style_sheet.rb', line 21

def media
  @media ||= (match = MEDIA_PATTERN.match(path)) && match[1].split(/,\s*/).sort.join(', ')
end

#reference_withObject



10
11
12
13
14
15
16
17
18
19
# File 'lib/fuse/document/asset/style_sheet.rb', line 10

def reference_with
  {
      tag_name: 'link',
      attributes: {
          rel: 'stylesheet',
          href: relative_path,
          media: media
      }
  }
end

#typeObject



40
# File 'lib/fuse/document/asset/style_sheet.rb', line 40

def type; 'text/css' end