Class: DATAWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/data-writer.rb

Defined Under Namespace

Classes: DATANotFoundError

Class Method Summary collapse

Class Method Details

.data_start_posObject

The position in the file where DATA starts (line after __END__)



10
11
12
# File 'lib/data-writer.rb', line 10

def self.data_start_pos
  @data_start_pos
end

.file(mode, opt = {}) ⇒ Object

Factory method for DATA writers. Works simliar to File.new. mode can be both a string like “w” or a number like File::WRONLY



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/data-writer.rb', line 18

def self.file(mode, opt={})
  check_DATA_defined  # raises an exception if DATA is not defined.
  data_path = File.expand_path(DATA.path)

  if mode.is_a?(String)
    valid_mode = get_valid_string_mode(mode)
  else
    valid_mode = get_valid_int_mode(mode)
  end

  file = create_file(data_path, valid_mode, opt)

  @data_start_pos = scan_data_pos
  file.pos = @data_start_pos        # sets the file pos to the line after __END__.
  enhanced = enhance_file(file)     # adds specialized methods for this object.

  if block_given?
    yield(enhanced)
    enhanced.close
  else
    enhanced
  end
end