soylent/device_map

View on GitHub
ext/Rakefile

Summary

Maintainability
Test Coverage
# frozen_string_literal: true

# This task runs during installation of the gem
desc 'Prepare database dumps'
task :prepare do
  lib = File.expand_path('../lib', __dir__)
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)

  require 'device_map'

  # Parse builder data and create inverted index
  builder_xml = File.open(DeviceMap::BUILDER_DATA_SOURCE)
  patterns = DeviceMap::DeviceData::Patterns.parse(builder_xml)

  # Dump parsed builder data for later use in `DeviceMap::Classifier`
  patterns_dump = Marshal.dump(patterns)
  File.write(DeviceMap::PATTERNS_DUMP, patterns_dump)

  # Parse device data
  devices_xml = File.open(DeviceMap::DEVICE_DATA_SOURCE)
  devices = DeviceMap::DeviceData::Devices.parse(devices_xml)

  # Dump devices for later use in `DeviceMap::Classifier`
  devices_dump = Marshal.dump(devices)
  File.write(DeviceMap::DEVICES_DUMP, devices_dump)
end

task default: :prepare