<commit_before>class Airplay::Server::Node
  attr_reader :name, :domain, :ip, :port
  attr_reader :features, :deviceid, :model, :srcvers

  def initialize(name, domain, ip, port, info)
    @name, @domain, @ip, @port = name, domain, ip, port
    @features = Airplay::Server::Features.new info.fetch('features', 0).hex
    @deviceid = info.fetch('deviceid')
    @srcvers  = info.fetch('srcvers')
    @model    = info.fetch('model')
  end
end
<commit_msg>Handle missing airplay dns-sd info.<commit_after>class Airplay::Server::Node
  attr_reader :name, :domain, :ip, :port
  attr_reader :features, :deviceid, :model, :srcvers

  def initialize(name, domain, ip, port, info)
    @name, @domain, @ip, @port = name, domain, ip, port
    @features = Airplay::Server::Features.new info.fetch('features', '0').hex
    @deviceid = info.fetch('deviceid', nil)
    @srcvers  = info.fetch('srcvers', nil)
    @model    = info.fetch('model', nil)
  end
end

{'fraction_non_alphanumeric': 0.16224814422057265, 'fraction_numerical': 0.0021208907741251328, 'mean_word_length': 4.425287356321839, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2329862', 'n_tokens_mistral': 323, 'n_tokens_neox': 319, 'n_words': 83}