Class: JGrouper::ExportFileReader

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/jgrouper/export_file_reader.rb

Overview

JGrouper::ExportFileReader - Read output file from JGrouper::Exporter

USAGE

require 'jgrouper'
require 'jgrouper/export_file_reader'

JGrouper::ExportFileReader.new(file_name) do |reader|
  reader.next { |json| ... }
end

Instance Method Summary collapse

Constructor Details

#initialize(fn) {|_self| ... } ⇒ ExportFileReader

Returns a new instance of ExportFileReader.

Yields:

  • (_self)

Yield Parameters:



19
20
21
22
23
24
25
26
27
# File 'lib/jgrouper/export_file_reader.rb', line 19

def initialize(fn)
  @done    = false
  @entries = {}
  @fn      = fn

  @fh = File.open @fn, 'r'
  yield self
  @fh.close
end

Instance Method Details

#<<(entry) ⇒ Object



29
30
31
# File 'lib/jgrouper/export_file_reader.rb', line 29

def <<(entry)
  @entries[ entry ] = entry
end

#[](entry) ⇒ Object



33
34
35
# File 'lib/jgrouper/export_file_reader.rb', line 33

def [](entry)
  @entries[entry]
end

#delete(entry) ⇒ Object



37
38
39
# File 'lib/jgrouper/export_file_reader.rb', line 37

def delete(entry)
  @entries.delete(entry)
end

#done?Boolean



41
42
43
# File 'lib/jgrouper/export_file_reader.rb', line 41

def done?
  @done
end

#each(&block) ⇒ Object



45
46
47
# File 'lib/jgrouper/export_file_reader.rb', line 45

def each(&block)
  @entries.values.each(&block)
end

#include?(entry) ⇒ Boolean



49
50
51
# File 'lib/jgrouper/export_file_reader.rb', line 49

def include?(entry)
  @entries.include?(entry)
end

#next {|JSON.parse( @fh.gets )| ... } ⇒ Object

Yields:

  • (JSON.parse( @fh.gets ))


53
54
55
56
57
58
59
60
# File 'lib/jgrouper/export_file_reader.rb', line 53

def next
  return if done?
  if @fh.eof?
    @done = true
    return
  end
  yield JSON.parse( @fh.gets )
end