Class: SplitPgDump::Table::OneFile

Inherits:
Object
  • Object
show all
Defined in:
lib/split_pgdump.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dir, name) ⇒ OneFile

Returns a new instance of OneFile.



220
221
222
223
224
225
226
227
228
# File 'lib/split_pgdump.rb', line 220

def initialize(dir, name)
  @file_name = File.join(dir, name)
  @cache_lines = []
  @cache_size = 0
  dir = File.dirname(@file_name)
  unless File.directory?(dir)
    FileUtils.mkdir_p(dir)
  end
end

Instance Attribute Details

#cache_size ⇒ Object (readonly)

Returns the value of attribute cache_size.



219
220
221
# File 'lib/split_pgdump.rb', line 219

def cache_size
  @cache_size
end

#file_name ⇒ Object (readonly)

Returns the value of attribute file_name.



219
220
221
# File 'lib/split_pgdump.rb', line 219

def file_name
  @file_name
end

Instance Method Details

#add_line(line) ⇒ Object



230
231
232
233
# File 'lib/split_pgdump.rb', line 230

def add_line(line)
  @cache_lines << line
  @cache_size += line.size
end

#flush(&block) ⇒ Object



235
236
237
238
239
240
241
242
# File 'lib/split_pgdump.rb', line 235

def flush(&block)
  if @cache_size > 0
    @cache_size = 0
    content = @cache_lines.join
    File.open(@file_name, 'a'){|f| f.write(content)}
    @cache_lines.clear
  end
end

#sort_args(sort_line = []) ⇒ Object



250
251
252
253
254
255
256
257
258
259
# File 'lib/split_pgdump.rb', line 250

def sort_args(sort_line = [])
  args = []
  if sort_line && !sort_line.empty?
    args.concat sort_line
  else
    args << '-n'
  end
  args.push '-o', @file_name, @file_name
  args
end

#write_finish ⇒ Object



244
245
246
247
248
# File 'lib/split_pgdump.rb', line 244

def write_finish
  File.open(@file_name, 'a') do |f|
    f.puts('\\.')
  end
end