1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/examples/call_v_from_ruby/test.rb
Everton J. Carpes 357ac0bb5a
examples: show how to call a simple v module from ruby (#19073) (#19073)
This is a copy/adaptation of the python example (#13105)
2023-08-07 07:07:00 +03:00

24 lines
555 B
Ruby

require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'ffi'
end
require 'ffi'
module Lib
extend FFI::Library
ffi_lib File.join(File.dirname(__FILE__), 'test.so')
attach_function :square, [:int], :int
attach_function :sqrt_of_sum_of_squares, [:double, :double], :double
end
puts "Lib.square(10) result is #{Lib.square(10)}"
raise 'Cannot validate V square().' unless Lib.square(10) == 100
raise 'Cannot validate V sqrt_of_sum_of_squares().' unless \
Lib.sqrt_of_sum_of_squares(1.1, 2.2) == Math.sqrt(1.1*1.1 + 2.2*2.2)