Class: CliSpinnable::Line::Sign

Inherits:
Object
  • Object
show all
Defined in:
lib/cli_spinnable/line/sign.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

SPIN =
%w(- \\ | /).freeze
TICK =
"\u2713".green.freeze
FAIL =
"\u00d7".red.freeze
BLANK =
''.freeze
AVAILABLE_SIGNS =
i(spin tick fail blank).freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sign = nil) ⇒ Sign

Returns a new instance of Sign.



15
16
17
# File 'lib/cli_spinnable/line/sign.rb', line 15

def initialize(sign = nil)
  self.sign = sign || :blank
end

Instance Attribute Details

#sign=(sign) ⇒ Object

Raises:



19
20
21
22
23
# File 'lib/cli_spinnable/line/sign.rb', line 19

def sign=(sign)
  raise Error, "Unavailable sign: #{sign || 'nil'}" unless AVAILABLE_SIGNS.include?(sign)
  @sign = sign
  self
end

Instance Method Details

#to_sObject



25
26
27
# File 'lib/cli_spinnable/line/sign.rb', line 25

def to_s
  send(sign) + separator
end