Class: Ephem::IO::RecordParser

Inherits:
Object
  • Object
show all
Defined in:
lib/ephem/io/record_parser.rb

Constant Summary collapse

SUMMARY_CONTROL_SIZE =

3 doubles, 8 bytes each

24

Instance Method Summary collapse

Constructor Details

#initialize(endianness:) ⇒ RecordParser

Returns a new instance of RecordParser.



8
9
10
# File 'lib/ephem/io/record_parser.rb', line 8

def initialize(endianness:)
  @endianness = endianness
end

Instance Method Details

#parse_file_record(file_record) ⇒ Object



12
13
14
15
# File 'lib/ephem/io/record_parser.rb', line 12

def parse_file_record(file_record)
  data = file_record.unpack(record_format)
  RecordData.new(*data)
end

#parse_summary_control(data) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/ephem/io/record_parser.rb', line 17

def parse_summary_control(data)
  format = "#{endian_double}3"
  values = data.unpack(format)
  {
    next_record: values[0].to_i,
    previous_record: values[1].to_i,
    n_summaries: values[2].to_i
  }
end