summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi/README
blob: efbfb09dcb4e32bd6a3662ef76f0813a65791484 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C-API Specs

These specs test the C-API from Ruby. The following are conventions for the
specs:

1.  Put specs for functions related to a Ruby class in a file named according
    to the class. For example, for rb_ary_new function, put the specs in
    optional/capi/array_spec.rb
2.  Put the C file containing the C functions for array_spec.rb in
    optional/capi/ext/array_spec.c
3.  Add a '#define HAVE_RB_ARY_NEW  1' to rubyspec.h
4.  Name the C extension class 'CApiArraySpecs'.
5.  Name the C functions 'array_spec_rb_ary_new'.
6.  Wrap the code in the optional/capi/ext/array_spec.c in
    '#ifdef HAVE_RB_ARY_NEW'
6.  Attach the C function to the class using the name 'rb_ary_new'