Class: Vedeu::Presentation::Style

Inherits:
Object
  • Object
show all
Includes:
Common
Defined in:
lib/vedeu/output/presentation/style.rb

Overview

Converts the style value or value collection into a terminal escape sequence. Unrecognised values are discarded- an empty string is returned.

Vedeu has a range of symbol styles which are compatible with most terminals which are ANSI compatible. Like colours, they can be defined in either interfaces, for specific lines or within streams. Styles are applied as encountered.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value = nil) ⇒ Vedeu::Presentation::Style

Return a new instance of Vedeu::Presentation::Style.



40
41
42
# File 'lib/vedeu/output/presentation/style.rb', line 40

def initialize(value = nil)
  @value = value
end

Instance Attribute Details

#valueString|Symbol



22
23
24
# File 'lib/vedeu/output/presentation/style.rb', line 22

def value
  @value
end

Class Method Details

.coerce(value) ⇒ Object

Produces new objects of the correct class from the value, ignores objects that have already been coerced.



29
30
31
32
33
# File 'lib/vedeu/output/presentation/style.rb', line 29

def self.coerce(value)
  return value if value.is_a?(self)

  new(value)
end

Instance Method Details

#absent?(variable) ⇒ Boolean Originally defined in module Common

Returns a boolean indicating whether a variable is nil or empty.

#attributesHash<Symbol => Array<String|Symbol>|String|Symbol>

Return an attributes hash for this class.



47
48
49
50
51
# File 'lib/vedeu/output/presentation/style.rb', line 47

def attributes
  {
    style: value,
  }
end

#demodulize(klass) ⇒ String Originally defined in module Common

Removes the module part from the expression in the string.

Examples:

demodulize('Vedeu::SomeModule::SomeClass') # => "SomeClass"

#eql?(other) ⇒ Boolean Also known as: ==

An object is equal when its values are the same.



57
58
59
# File 'lib/vedeu/output/presentation/style.rb', line 57

def eql?(other)
  self.class == other.class && value == other.value
end

#present?(variable) ⇒ Boolean Originally defined in module Common

Returns a boolean indicating whether a variable has a useful value.

#snake_case(name) ⇒ String Originally defined in module Common

Converts a class name to a lowercase snake case string.

Examples:

snake_case(MyClassName) # => "my_class_name"
snake_case(NameSpaced::ClassName)
# => "name_spaced/class_name"

#to_sString Also known as: escape_sequences, to_str

Return the terminal escape sequences after converting the style or styles.



66
67
68
69
70
71
72
# File 'lib/vedeu/output/presentation/style.rb', line 66

def to_s
  return '' unless present?(value)

  @sequences ||= Array(value).flat_map do |v|
    Vedeu::EscapeSequences::Esc.string(v)
  end.join
end