Class: Components::Renderers::Rouge

Inherits:
Base
  • Object
show all
Defined in:
app/components/renderers/rouge.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.supports?(file) ⇒ Boolean

Returns:

  • (Boolean)


2
3
4
# File 'app/components/renderers/rouge.rb', line 2

def self.supports?(file)
  FileHandlers::Rouge.can_load? file&.mime_type
end

Instance Method Details

#before_template ⇒ Object



6
7
8
9
# File 'app/components/renderers/rouge.rb', line 6

def before_template
  @formatter = ::Rouge::Formatters::HTMLLineTable.new(::Rouge::Formatters::HTML.new)
  @lexer = ::Rouge::Lexer.all.find { @file.mime_type.in? it.mimetypes } # rubocop:disable Pundit/UsePolicyScope
end

#view_template ⇒ Object



11
12
13
14
15
16
17
18
# File 'app/components/renderers/rouge.rb', line 11

def view_template
  style do
    style { raw(safe(::Rouge::Themes::ThankfulEyes.render(scope: ".rouge"))) } # rubocop:disable Rails/OutputSafety
  end
  div class: "rouge" do
    raw(safe(@formatter.format(@lexer.lex(@file.attachment.read)))) # rubocop:disable Rails/OutputSafety
  end
end