Sha256: 83b9924af2ccc79e2ee28db9e1559dfa4d51132605f024dcae376366a2120830

Contents?: true

Size: 821 Bytes

Versions: 1

Compression:

Stored size: 821 Bytes

Contents

require "redsnow/version"
require "redsnow/binding"
require "redsnow/blueprint"
require "redsnow/parseresult"
require "ffi"

module RedSnow
  include Binding
  # parse
  #   parsing API Blueprint into Ruby objects
  # @param rawBlueprint [String] API Blueprint
  # @param options [Number] Parsing Options
  #
  # @return [ParseResult]
  def self.parse(rawBlueprint, options = 0)
    blueprint = FFI::MemoryPointer.new :pointer
    report = FFI::MemoryPointer.new :pointer
    ret = RedSnow::Binding.sc_c_parse(rawBlueprint, options, report, blueprint)

    blueprint = blueprint.get_pointer(0)
    report = report.get_pointer(0)

    parseResult = ParseResult.new(blueprint, report)

    return parseResult
  ensure
    RedSnow::Binding.sc_blueprint_free(blueprint)
    RedSnow::Binding.sc_report_free(report)
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
redsnow-0.2.0 lib/redsnow.rb