Sha256: 06f49ecff130bcaad9f563a9cf4988d8127b94351de361cbae0feb571f3109dd

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal: true

require 'date'
require 'zlib'
require 'stringio'
require 'base64'
require 'md5f'

require_relative 'dsp_blueprint_parser/version'
require_relative 'dsp_blueprint_parser/blueprint_data'
require_relative 'dsp_blueprint_parser/icon_layout'
require_relative 'dsp_blueprint_parser/area'
require_relative 'dsp_blueprint_parser/building'
require_relative 'dsp_blueprint_parser/binary_reader'
require_relative 'dsp_blueprint_parser/parser'
require_relative 'dsp_blueprint_parser/data_sections'

# module to receive a Dyson Sphere Program blueprint string and parse it
module DspBlueprintParser
  class Error < StandardError; end

  # @param str_blueprint [String]
  # @return [BlueprintData]
  def self.parse(str_blueprint)
    return if str_blueprint.size < 28
    return unless str_blueprint.start_with? 'BLUEPRINT:'

    parser = Parser.new(str_blueprint)
    parser.blueprint
  end

  # @param input [String]
  # @return [Boolean]
  def self.is_valid?(input)
    sections = DataSections.new(input)
    hash = MD5F::compute(sections.hashed_string)

    return sections.hash == hash
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dsp_blueprint_parser-0.1.2 lib/dsp_blueprint_parser.rb