Class: Epuber::Compiler::FileTypes::StylusFile

Inherits:
CSSFile show all
Defined in:
lib/epuber/compiler/file_types/stylus_file.rb

Constant Summary

Constants inherited from CSSFile

CSSFile::DECLARATION_TO_FILE_GROUP_MAP, CSSFile::URL_REGEXP

Instance Attribute Summary

Attributes inherited from SourceFile

#abs_source_path, #file_request, #source_path

Attributes inherited from AbstractFile

#compilation_context, #destination_path, #final_destination_path, #group, #path_type, #pkg_destination_path, #properties

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from CSSFile

#process_css

Methods inherited from SourceFile

#default_file_copy, #destination_file_exist?, #destination_file_up_to_date?, #initialize, resolve_relative_file, #source_file_up_to_date?, #update_metadata!, #write_compiled, #write_processed

Methods inherited from AbstractFile

#==, file_copy!, write_to_file, write_to_file!, write_to_file?

Constructor Details

This class inherits a constructor from Epuber::Compiler::FileTypes::SourceFile

Class Method Details

.find_imports(content) ⇒ Array<String>

Returns:

  • (Array<String>)


34
35
36
# File 'lib/epuber/compiler/file_types/stylus_file.rb', line 34

def self.find_imports(content)
  content.to_enum(:scan, /^\s*@import ("|')([^'"]*)("|')/).map { Regexp.last_match[2] }
end

Instance Method Details

#find_dependenciesObject



28
29
30
# File 'lib/epuber/compiler/file_types/stylus_file.rb', line 28

def find_dependencies
  self.class.find_imports(File.read(abs_source_path))
end

#process(compilation_context) ⇒ Object

Parameters:



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/epuber/compiler/file_types/stylus_file.rb', line 13

def process(compilation_context)
  return if destination_file_up_to_date?

  Stylus.define('__is_debug', !compilation_context.release_build)
  Stylus.define('__is_verbose_mode', compilation_context.verbose?)
  Stylus.define('__target_name', compilation_context.target.name)
  Stylus.define('__book_title', compilation_context.book.title)
  Stylus.define('__const', compilation_context.target.constants)

  css = Stylus.compile(File.new(abs_source_path))
  write_compiled(process_css(css, compilation_context))

  update_metadata!
end