Class: Oppen::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/oppen.rb

Overview

Config.

Defined Under Namespace

Modules: IndentAnchor

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(indent_anchor: IndentAnchor::ON_BREAK, eager_print: false, upsize_stack: false) ⇒ Config

Returns a new instance of Config.



51
52
53
54
55
# File 'lib/oppen.rb', line 51

def initialize(indent_anchor: IndentAnchor::ON_BREAK, eager_print: false, upsize_stack: false)
  @indent_anchor = indent_anchor
  @eager_print = eager_print
  @upsize_stack = upsize_stack
end

Instance Attribute Details

#indent_anchorObject

Returns the value of attribute indent_anchor.



49
50
51
# File 'lib/oppen.rb', line 49

def indent_anchor
  @indent_anchor
end

Class Method Details

.oppenConfig

Default config for Oppen usage

Returns:



92
93
94
# File 'lib/oppen.rb', line 92

def self.oppen
  new
end

.wadler(eager_print: true, upsize_stack: true) ⇒ Config

Default config for Wadler usage

Returns:



98
99
100
# File 'lib/oppen.rb', line 98

def self.wadler(eager_print: true, upsize_stack: true)
  new(indent_anchor: IndentAnchor::ON_BEGIN, eager_print:, upsize_stack:)
end

Instance Method Details

#eager_print?Boolean

Print groups eagerly

Examples:

out = Oppen::Wadler.new (width: 13)
out.group {
  out.group {
    out.text 'abc'
    out.breakable
    out.text 'def'
  }
  out.group {
    out.text 'ghi'
    out.breakable
    out.text 'jkl'
  }
}
out.output

# eager_print: false
# =>
# abc
# defghi jkl
#
# eager_print: true
# =>
# abc defghi
# jkl

Returns:

  • (Boolean)


86
# File 'lib/oppen.rb', line 86

def eager_print? = @eager_print

#upsize_stack?Boolean

Returns:

  • (Boolean)


88
# File 'lib/oppen.rb', line 88

def upsize_stack? = @upsize_stack