Class: Muwu::Destination

Inherits:
Object
  • Object
show all
Includes:
Muwu
Defined in:
lib/muwu/destination/destination.rb

Constant Summary collapse

MARGIN =
'  '

Constants included from Muwu

GEM_HOME_LIB, GEM_HOME_LIB_MUWU, VERSION

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Muwu

debug, read

Constructor Details

#initializeDestination

Returns a new instance of Destination.



22
23
24
25
# File 'lib/muwu/destination/destination.rb', line 22

def initialize
  @margin_depth = 0
  @output = nil
end

Instance Attribute Details

#margin_currentObject

Returns the value of attribute margin_current.



8
9
10
# File 'lib/muwu/destination/destination.rb', line 8

def margin_current
  @margin_current
end

#outputObject



64
65
66
67
68
69
70
71
72
# File 'lib/muwu/destination/destination.rb', line 64

def output
  begin
    if output_is_closed
      raise ProjectExceptionHandler::Fatal.new(ProjectException::OutputNotOpen.new)
    elsif output_is_opened
      @output
    end
  end
end

#output_classObject

Returns the value of attribute output_class.



8
9
10
# File 'lib/muwu/destination/destination.rb', line 8

def output_class
  @output_class
end

#output_filenameObject

Returns the value of attribute output_filename.



8
9
10
# File 'lib/muwu/destination/destination.rb', line 8

def output_filename
  @output_filename
end

#output_working_directoryObject

Returns the value of attribute output_working_directory.



8
9
10
# File 'lib/muwu/destination/destination.rb', line 8

def output_working_directory
  @output_working_directory
end

Instance Method Details

#inspectObject



28
29
30
# File 'lib/muwu/destination/destination.rb', line 28

def inspect
  ["#{self.to_s}", "{", inspect_instance_variables, "}"].join(' ')
end

#inspect_instance_variablesObject



33
34
35
# File 'lib/muwu/destination/destination.rb', line 33

def inspect_instance_variables
  self.instance_variables.map { |v| "#{v}=#{instance_variable_get(v).inspect}" }.join(", ")
end

#margin_decObject



42
43
44
# File 'lib/muwu/destination/destination.rb', line 42

def margin_dec
  @margin_depth = @margin_depth.to_i - 1
end

#margin_incObject



47
48
49
# File 'lib/muwu/destination/destination.rb', line 47

def margin_inc
  @margin_depth = @margin_depth.to_i + 1
end

#margin_indentObject



52
53
54
55
56
# File 'lib/muwu/destination/destination.rb', line 52

def margin_indent
  margin_inc
  yield
  margin_dec
end

#margin_to_zeroObject



59
60
61
# File 'lib/muwu/destination/destination.rb', line 59

def margin_to_zero
  @margin_depth = 0
end

#output_is_closedObject



75
76
77
# File 'lib/muwu/destination/destination.rb', line 75

def output_is_closed
  @output == nil
end

#output_is_openedObject



80
81
82
# File 'lib/muwu/destination/destination.rb', line 80

def output_is_opened
  @output != nil
end

#output_streamObject



85
86
87
88
89
90
# File 'lib/muwu/destination/destination.rb', line 85

def output_stream
  announce_open
  output_open
  yield
  output_close
end

#padding_vertical(n) ⇒ Object



93
94
95
96
97
# File 'lib/muwu/destination/destination.rb', line 93

def padding_vertical(n)
  output.print ("\n" * n)
  yield
  output.print ("\n" * n)
end

#write_inline(value) ⇒ Object



100
101
102
# File 'lib/muwu/destination/destination.rb', line 100

def write_inline(value)
  write_value(value)
end

#write_inline_end(value) ⇒ Object



105
106
107
108
# File 'lib/muwu/destination/destination.rb', line 105

def write_inline_end(value)
  write_value(value)
  write_lf
end

#write_inline_indented(value) ⇒ Object



111
112
113
114
# File 'lib/muwu/destination/destination.rb', line 111

def write_inline_indented(value)
  write_margin
  write_value(value)
end

#write_lfObject



117
118
119
# File 'lib/muwu/destination/destination.rb', line 117

def write_lf
  output.print "\n"
end

#write_line(value) ⇒ Object



122
123
124
125
126
# File 'lib/muwu/destination/destination.rb', line 122

def write_line(value)
  write_margin
  write_value(value)
  write_lf
end

#write_marginObject



129
130
131
# File 'lib/muwu/destination/destination.rb', line 129

def write_margin
  output.print render_current_margin
end

#write_value(value) ⇒ Object



134
135
136
# File 'lib/muwu/destination/destination.rb', line 134

def write_value(value)
  output.print value
end