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

.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



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/data-writer.rb', line 11

def self.file(mode, opt={})
  raise_data_not_found unless Object.const_defined?(:DATA)

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

  file = create_file(get_source_path, valid_mode, opt)
  file.pos = get_data_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