class Epuber::Compiler::FileTypes::StylusFile

Public Class Methods

find_imports(content) click to toggle source

@return [Array<String>]

# File lib/epuber/compiler/file_types/stylus_file.rb, line 38
def self.find_imports(content)
  content.to_enum(:scan, /^\s*@import ("|')([^'"]*)("|')/).map { Regexp.last_match[2] }
end

Public Instance Methods

find_dependencies() click to toggle source
# File lib/epuber/compiler/file_types/stylus_file.rb, line 32
def find_dependencies
  self.class.find_imports(File.read(abs_source_path))
end
process(compilation_context) click to toggle source

@param [Compiler::CompilationContext] compilation_context

# File lib/epuber/compiler/file_types/stylus_file.rb, line 13
def process(compilation_context)
  if destination_file_up_to_date?
    # HACK: for now, we need to process the file again, because we need to find linked files
    process_css(File.read(final_destination_path), compilation_context)
    return
  end

  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