class FlatKit::Jsonl::Record

Attributes

compare_data[R]

Public Class Methods

format_name() click to toggle source
# File lib/flat_kit/jsonl/record.rb, line 9
def self.format_name
  ::FlatKit::Jsonl::Format.format_name
end
from_record(record) click to toggle source
# File lib/flat_kit/jsonl/record.rb, line 13
def self.from_record(record)
  if record.instance_of?(FlatKit::Jsonl::Record) then

    structured = record.complete_structured_data? ? record.complete_structured_data : nil

    new(data: record.data, compare_fields: record.compare_fields,
        compare_data: record.compare_data,
        complete_structured_data: structured)
  else
    new(data: nil, compare_fields: record.compare_fields,
        complete_structured_data: record.to_hash)
  end
end
new(data:, compare_fields: :none, compare_data: Hash.new, complete_structured_data: nil) click to toggle source
Calls superclass method FlatKit::Record::new
# File lib/flat_kit/jsonl/record.rb, line 27
def initialize(data:, compare_fields: :none,
               compare_data: Hash.new,
               complete_structured_data: nil)
  super(data: data, compare_fields: compare_fields)

  @complete_structured_data = complete_structured_data

  if complete_structured_data? && (compare_data.nil? || compare_data.empty?) then
    @compare_data = complete_structured_data
  else
    @compare_data = compare_data
  end

  # only load compare data if it dosn't exist
  if data && compare_data.empty? then
    quick_parse
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/flat_kit/jsonl/record.rb, line 46
def [](key)
  compare_data[key]
end
complete_structured_data() click to toggle source
# File lib/flat_kit/jsonl/record.rb, line 50
def complete_structured_data
  @complete_structured_data ||= Oj.load(data, mode: :strict)
end
Also aliased as: to_hash
complete_structured_data?() click to toggle source
# File lib/flat_kit/jsonl/record.rb, line 55
def complete_structured_data?
  !(@complete_structured_data.nil? || @complete_structured_data.empty?)
end
data() click to toggle source

overriding parent accessor since we may be initialized without raw bytes to parse

# File lib/flat_kit/jsonl/record.rb, line 61
def data
  if @data.nil? && complete_structured_data? then
    @data = Oj.dump(complete_structured_data, mode: :json)
  end
  @data
end
Also aliased as: to_s
to_hash()
to_s()
Alias for: data

Private Instance Methods

quick_parse() click to toggle source
# File lib/flat_kit/jsonl/record.rb, line 71
def quick_parse
  Oj::Doc.open(data) do |doc|
    compare_fields.each do |field|
      val = doc.fetch("/#{field}")
      @compare_data[field] = val
    end
  end
end