Class: Parlour::RbiGenerator::Options

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/parlour/rbi_generator/options.rb

Overview

A set of immutable formatting options passed to all calls of RbiObject#generate_rbi.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(break_params:, tab_size:) ⇒ void

Creates a new set of formatting options.

Examples:

Create Options with break_params of 4 and tab_size of 2.

Parlour::RbiGenerator::Options.new(break_params: 4, tab_size: 2)

Parameters:

  • break_params (Integer)

    If there are at least this many parameters in a Sorbet sig, then it is broken onto separate lines.

  • tab_size (Integer)

    The number of spaces to use per indent.



19
20
21
22
# File 'lib/parlour/rbi_generator/options.rb', line 19

def initialize(break_params:, tab_size:)
  @break_params = break_params
  @tab_size = tab_size
end

Instance Attribute Details

#break_paramsInteger (readonly)

If there are at least this many parameters in a Sorbet sig, then it is broken onto separate lines.

# With break_params: 5
sig { params(name: String, age: Integer, hobbies: T::Array(String), country: Symbol).void }

# With break_params: 4
sig do
  params(
    name: String,
    age: Integer,
    hobbies: T::Array(String),
    country: Symbol
  ).void
end

Returns:

  • (Integer)


42
43
44
# File 'lib/parlour/rbi_generator/options.rb', line 42

def break_params
  @break_params
end

#tab_sizeInteger (readonly)

The number of spaces to use per indent.

Returns:

  • (Integer)


47
48
49
# File 'lib/parlour/rbi_generator/options.rb', line 47

def tab_size
  @tab_size
end

Instance Method Details

#indented(level, str) ⇒ String

Returns a string indented to the given indent level, according to the set #tab_size.

Parameters:

  • level (Integer)

    The indent level, as an integer. 0 is totally unindented.

  • str (String)

    The string to indent.

Returns:

  • (String)

    The indented string.



56
57
58
# File 'lib/parlour/rbi_generator/options.rb', line 56

def indented(level, str)
  " " * (level * tab_size) + str
end