Module: Sevgi::Graphics::Mixtures::Save

Defined in:
lib/sevgi/graphics/mixtures/save.rb

Overview

DSL helpers for writing rendered SVG output.

Constant Summary collapse

EXT =

Default SVG extension.

".svg"

Instance Method Summary collapse

Instance Method Details

#Out(**kwargs, &filter) ⇒ Object

Writes rendered SVG to standard output.

Parameters:

  • kwargs (Hash)

    render options

Returns:

  • (Object)

    F.out return value



16
17
18
# File 'lib/sevgi/graphics/mixtures/save.rb', line 16

def Out(**kwargs, &filter)
  F.out(self.(**kwargs), &filter)
end

#Save(path = nil, default: nil, backup_suffix: nil, &filter) ⇒ Object

Saves rendered SVG to a path derived from the caller by default.

Parameters:

  • path (String, nil) (defaults to: nil)

    output path or directory

  • default (String, nil) (defaults to: nil)

    default output path

  • backup_suffix (String, nil) (defaults to: nil)

    suffix used for an existing-file backup

Returns:

  • (Object)

    F.out return value



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/sevgi/graphics/mixtures/save.rb', line 25

def Save(path = nil, default: nil, backup_suffix: nil, &filter)
  default ||= F.subext(EXT, caller_locations(1..1).first.path)

  if path
    ::File.directory?(path) ? ::File.join(path, ::File.basename(default)) : path
  else
    default
  end => path

  ::FileUtils.mkdir_p(::File.dirname(path))
  if backup_suffix && !backup_suffix.empty? && ::File.exist?(path)
    ::FileUtils.cp(path, "#{path}#{backup_suffix}")
  end

  Write(path, &filter)
end

#Write(path, **kwargs, &filter) ⇒ Object

Writes rendered SVG to a path.

Parameters:

  • path (String)

    output path

  • kwargs (Hash)

    render options

Returns:

  • (Object)

    F.out return value



46
47
48
# File 'lib/sevgi/graphics/mixtures/save.rb', line 46

def Write(path, **kwargs, &filter)
  F.out(self.(**kwargs), path, &filter)
end