Class: Shellfie::Renderer
- Inherits:
-
Object
- Object
- Shellfie::Renderer
- Defined in:
- lib/shellfie/renderer.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#font_resolver ⇒ Object
readonly
Returns the value of attribute font_resolver.
-
#theme ⇒ Object
readonly
Returns the value of attribute theme.
Instance Method Summary collapse
- #estimate(scale: 1, shadow: true) ⇒ Object
-
#initialize(config, chrome_cache: nil) ⇒ Renderer
constructor
A new instance of Renderer.
- #render(output_path, scale: 1, shadow: true, transparent: false, format: nil) ⇒ Object
Constructor Details
#initialize(config, chrome_cache: nil) ⇒ Renderer
Returns a new instance of Renderer.
20 21 22 23 24 25 26 |
# File 'lib/shellfie/renderer.rb', line 20 def initialize(config, chrome_cache: nil) @config = config @chrome_cache = chrome_cache @theme = ThemeRegistry.build(config) @ansi_parser = AnsiParser.new(state_mode: config.window[:ansi_state] || :persistent) @font_resolver = FontResolver.new(-> { imagemagick_command }) end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
18 19 20 |
# File 'lib/shellfie/renderer.rb', line 18 def config @config end |
#font_resolver ⇒ Object (readonly)
Returns the value of attribute font_resolver.
18 19 20 |
# File 'lib/shellfie/renderer.rb', line 18 def font_resolver @font_resolver end |
#theme ⇒ Object (readonly)
Returns the value of attribute theme.
18 19 20 |
# File 'lib/shellfie/renderer.rb', line 18 def theme @theme end |
Instance Method Details
#estimate(scale: 1, shadow: true) ⇒ Object
40 41 42 43 |
# File 'lib/shellfie/renderer.rb', line 40 def estimate(scale: 1, shadow: true) geometry = build_geometry(build_lines, scale: scale, shadow: shadow) geometry.slice(:canvas_width, :canvas_height, :scaled_width, :scaled_height, :logical_width, :logical_height, :scale) end |
#render(output_path, scale: 1, shadow: true, transparent: false, format: nil) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/shellfie/renderer.rb', line 28 def render(output_path, scale: 1, shadow: true, transparent: false, format: nil) check_dependencies! lines = build_lines extension = FormatResolver.resolve(output_path, explicit: format, default: "png") OutputWriter.write(output_path, extension: extension) do |temporary_path| render_method = (extension == "svg") ? :create_svg_image : :create_image send(render_method, lines, temporary_path, scale: scale, shadow: shadow, transparent: transparent) end rescue MiniMagick::Error => e raise RenderError.new("ImageMagick render failed: #{e.}", category: :render) end |