pg 0.12.2 → 0.13.0.pre298

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data.tar.gz.sig +0 -0
  2. data/.hoerc +2 -0
  3. data/.tm_properties +12 -0
  4. data/ChangeLog +86 -6
  5. data/Contributors.rdoc +7 -0
  6. data/History.rdoc +29 -0
  7. data/LICENSE +12 -14
  8. data/Manifest.txt +15 -14
  9. data/{BSD → POSTGRES} +0 -0
  10. data/{README.OS_X.rdoc → README-OS_X.rdoc} +0 -0
  11. data/{README.windows.rdoc → README-Windows.rdoc} +0 -0
  12. data/README.ja.rdoc +1 -1
  13. data/README.rdoc +39 -27
  14. data/Rakefile +1 -2
  15. data/ext/extconf.rb +9 -2
  16. data/ext/pg.c +232 -4297
  17. data/ext/pg.h +87 -23
  18. data/ext/pg_connection.c +3301 -0
  19. data/ext/pg_result.c +905 -0
  20. data/lib/pg.rb +26 -43
  21. data/lib/pg/connection.rb +58 -0
  22. data/lib/pg/constants.rb +11 -0
  23. data/lib/pg/exceptions.rb +11 -0
  24. data/lib/pg/result.rb +11 -0
  25. data/misc/openssl-pg-segfault.rb +1 -1
  26. data/sample/async_api.rb +16 -21
  27. data/sample/async_copyto.rb +1 -1
  28. data/sample/async_mixed.rb +56 -0
  29. data/sample/copyfrom.rb +1 -1
  30. data/sample/copyto.rb +1 -1
  31. data/sample/cursor.rb +1 -1
  32. data/sample/losample.rb +6 -6
  33. data/sample/notify_wait.rb +51 -22
  34. data/sample/test_binary_values.rb +4 -6
  35. data/spec/lib/helpers.rb +14 -10
  36. data/spec/{pgconn_spec.rb → pg/connection_spec.rb} +227 -60
  37. data/spec/{pgresult_spec.rb → pg/result_spec.rb} +31 -35
  38. data/spec/pg_spec.rb +22 -0
  39. metadata +44 -42
  40. metadata.gz.sig +0 -0
  41. data/GPL +0 -340
  42. data/ext/compat.c +0 -541
  43. data/ext/compat.h +0 -184
  44. data/sample/psql.rb +0 -1181
  45. data/sample/psqlHelp.rb +0 -158
  46. data/sample/test1.rb +0 -60
  47. data/sample/test2.rb +0 -44
  48. data/sample/test4.rb +0 -71
  49. data/spec/m17n_spec.rb +0 -170
data.tar.gz.sig CHANGED
Binary file
data/.hoerc ADDED
@@ -0,0 +1,2 @@
1
+ ---
2
+ exclude: !ruby/regexp /\.(hg|DS_Store|rvm.*|irbrc|pryrc)|(coverage|manual|tmp\w*)\/|\.(bundle|so)$/
@@ -0,0 +1,12 @@
1
+ # Settings
2
+ projectDirectory = "$CWD"
3
+ windowTitle = "${CWD/^.*\///} «$TM_DISPLAYNAME»"
4
+ excludeInFileChooser = "{$exclude,.hg}"
5
+
6
+ TM_MAKE = 'rake'
7
+ TM_MAKE_FILE = '${projectDirectory}/Rakefile'
8
+
9
+ [ source ]
10
+ softTabs = false
11
+ tabSize = 4
12
+
data/ChangeLog CHANGED
@@ -1,8 +1,86 @@
1
+ 2012-01-24 Michael Granger <ged@FaerieMUD.org>
2
+
3
+ * .rvm.gems:
4
+ Removed rspec 2.8.1 -- not yet released, and 2.8.0 is now pulled in
5
+ via hoe-deveiate
6
+ [a4494f18a0d3] [tip]
7
+
8
+ * lib/pg/constants.rb:
9
+ Whitespace cleanup
10
+ [e1b146cd9c2f]
11
+
12
+ * sample/async_api.rb, sample/notify_wait.rb, sample/psql.rb,
13
+ sample/psqlHelp.rb, sample/test1.rb, sample/test2.rb,
14
+ sample/test4.rb, sample/test_binary_values.rb:
15
+ Cleaned up the sample/ directory
16
+ [287c71f3c89e]
17
+
18
+ * .rvm.gems:
19
+ Bump hoe-deveiate version in the rvm gemset
20
+ [59d4530b4e43]
21
+
22
+ * .rvm.gems, BSD, Contributors.rdoc, GPL, LICENSE, Manifest.txt,
23
+ README.OS_X.rdoc, README.ja.rdoc, README.rdoc, README.windows.rdoc,
24
+ Rakefile, postgres, readme-os_x.rdoc, readme-windows.rdoc:
25
+ Updated/simplified authors/license sections of the README, API doc
26
+ cleanup, updated license files (fixes #72).
27
+ [29a15971cd3a]
28
+
29
+ * ext/pg.c, ext/pg_connection.c, ext/pg_result.c, spec/lib/helpers.rb,
30
+ spec/pg/connection_spec.rb:
31
+ Fix for exception message encoding (#96)
32
+ [1cdad2ce8993]
33
+
34
+ * .pryrc, .tm_properties, Manifest.txt, README.rdoc, ext/compat.c,
35
+ ext/compat.h, ext/extconf.rb, ext/pg.c, ext/pg.h,
36
+ ext/pg_connection.c, ext/pg_result.c, lib/pg.rb,
37
+ lib/pg/connection.rb, lib/pg/constants.rb, lib/pg/exceptions.rb,
38
+ lib/pg/result.rb, misc/openssl-pg-segfault.rb, sample/async_api.rb,
39
+ sample/async_copyto.rb, sample/async_mixed.rb, sample/copyfrom.rb,
40
+ sample/copyto.rb, sample/cursor.rb, sample/losample.rb,
41
+ sample/notify_wait.rb, sample/psql.rb, sample/test1.rb,
42
+ sample/test2.rb, sample/test4.rb, sample/test_binary_values.rb,
43
+ spec/lib/helpers.rb, spec/m17n_spec.rb, spec/pg/connection_spec.rb,
44
+ spec/pg/result_spec.rb, spec/pg_spec.rb, spec/pgconn_spec.rb,
45
+ spec/pgresult_spec.rb:
46
+ Rearranging classes under the PG namespace to be a better Ruby
47
+ citizen
48
+ [f346861fbb8b]
49
+
50
+ 2012-01-19 Michael Granger <ged@FaerieMUD.org>
51
+
52
+ * .hoerc, .rvm.gems, .rvmrc:
53
+ Adding rvmrc and gemset
54
+ [dca3d7464a00]
55
+
56
+ 2012-01-13 Michael Granger <ged@FaerieMUD.org>
57
+
58
+ * Manifest.txt, sample/async_mixed.rb:
59
+ Adding an example of mixed synchronous/async API.
60
+ [3ba256ccee89]
61
+
1
62
  2012-01-03 Michael Granger <ged@FaerieMUD.org>
2
63
 
64
+ * .hgtags:
65
+ Added tag v0.12.2 for changeset 88bd78632f86
66
+ [622bef3960c3]
67
+
68
+ * .hgsigs:
69
+ Added signature for changeset f3dfdb6929b7
70
+ [88bd78632f86] [v0.12.2]
71
+
72
+ * History.rdoc, ext/pg.c:
73
+ Bump patch version for release.
74
+ [f3dfdb6929b7]
75
+
76
+ * ext/pg.c, spec/m17n_spec.rb:
77
+ Encode the messages of PGErrors with the encoding of the connection.
78
+ (fixes #96)
79
+ [b62c49d91eb2]
80
+
3
81
  * History.rdoc:
4
82
  Updating history for Lars's patch
5
- [5daf0ca646d2] [tip]
83
+ [5daf0ca646d2]
6
84
 
7
85
  * spec/m17n_spec.rb, spec/pgconn_spec.rb, spec/pgresult_spec.rb:
8
86
  Moved all the spec hooks to the top of the file
@@ -25,6 +103,12 @@
25
103
  * Merged with 6fc514ea2547
26
104
  [5ec3792d1cac]
27
105
 
106
+ 2011-12-27 Michael Granger <ged@FaerieMUD.org>
107
+
108
+ * History.rdoc:
109
+ Updating history file with the st.h change
110
+ [935f29411410]
111
+
28
112
  2012-01-02 Michael Granger <ged@FaerieMUD.org>
29
113
 
30
114
  * .hgtags:
@@ -37,12 +121,8 @@
37
121
 
38
122
  2011-12-27 Michael Granger <ged@FaerieMUD.org>
39
123
 
40
- * History.rdoc:
41
- Updating history file with the st.h change
42
- [935f29411410]
43
-
44
124
  * Merged with f8d66e32b9a8
45
- [f72b14d349bf] [github/master]
125
+ [f72b14d349bf]
46
126
 
47
127
  2011-12-14 Michael Granger <ged@FaerieMUD.org>
48
128
 
@@ -36,4 +36,11 @@ list.
36
36
  * Mahlon E. Smith <mahlon@martini.nu>
37
37
  * Lars Kanis <kanis@comcard.de>
38
38
  * Jason Yanowitz <me-bitbucket@jasonyanowitz.com>
39
+ * Charlie Savage <cfis@rubyforge.org>
40
+ * Rafał Bigaj <rafal@Bonifacy.intranet>
41
+ * Jason Yanowitz <me-bitbucket@jasonyanowitz.com>
42
+ * Greg Hazel <ghazel@gmail.com>
43
+ * Chris White <cwprogram@live.com>
44
+ * Aaron Patterson <aaron.patterson@gmail.com>
45
+ * Tim Felgentreff <timfelgentreff@gmail.com>
39
46
 
@@ -1,3 +1,32 @@
1
+ == v0.13.0 [] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Reorganization of modules/classes to be better Ruby citizens (with backward-compatible aliases):
4
+ - Created toplevel namespace 'PG' to correspond with the gem name.
5
+ - Renamed PGconn to PG::Connection (with ::PGconn alias)
6
+ - Renamed PGresult to PG::Result (with ::PGresult alias)
7
+ - Renamed PGError to PG::Error (with ::PGError alias)
8
+ - Declare all constants inside PG::Constants, then include them in
9
+ PG::Connection and PG::Result for backward-compatibility, and
10
+ in PG for convenience.
11
+ - Split the extension source up by class/module.
12
+ - Removed old compatibility code for PostgreSQL versions < 8.3
13
+
14
+ Documentation:
15
+ - Clarified licensing, updated to Ruby 1.9's license.
16
+ - Merged authors list, added some missing people to the Contributor's
17
+ list.
18
+ - Cleaned up the sample/ directory
19
+ - Making contact info a bit clearer, link to the Google+ page and
20
+ the mailing list
21
+
22
+ Enhancements:
23
+ - Added a convenience method: PG.connect -> PG::Connection.new
24
+
25
+ Bugfixes:
26
+ - Fixed LATIN5-LATIN10 Postgres<->Ruby encoding conversions
27
+
28
+
29
+
1
30
  == v0.12.2 [2012-01-03] Michael Granger <ged@FaerieMUD.org>
2
31
 
3
32
  - Fix for the 1.8.7 breakage introduced by the st.h fix for alternative Ruby
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
- Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.co.jp>.
2
- You can redistribute it and/or modify it under either the terms of the GPL
3
- (see COPYING.txt file), or the conditions below:
1
+ Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
2
+ You can redistribute it and/or modify it under either the terms of the
3
+ 2-clause BSDL (see the file BSDL), or the conditions below:
4
4
 
5
5
  1. You may make and give away verbatim copies of the source form of the
6
6
  software without restriction, provided that you duplicate all of the
@@ -17,33 +17,32 @@ You can redistribute it and/or modify it under either the terms of the GPL
17
17
  b) use the modified software only within your corporation or
18
18
  organization.
19
19
 
20
- c) rename any non-standard executables so the names do not conflict
21
- with standard executables, which must also be provided.
20
+ c) give non-standard binaries non-standard names, with
21
+ instructions on where to get the original software distribution.
22
22
 
23
23
  d) make other distribution arrangements with the author.
24
24
 
25
- 3. You may distribute the software in object code or executable
26
- form, provided that you do at least ONE of the following:
25
+ 3. You may distribute the software in object code or binary form,
26
+ provided that you do at least ONE of the following:
27
27
 
28
- a) distribute the executables and library files of the software,
28
+ a) distribute the binaries and library files of the software,
29
29
  together with instructions (in the manual page or equivalent)
30
30
  on where to get the original distribution.
31
31
 
32
32
  b) accompany the distribution with the machine-readable source of
33
33
  the software.
34
34
 
35
- c) give non-standard executables non-standard names, with
35
+ c) give non-standard binaries non-standard names, with
36
36
  instructions on where to get the original software distribution.
37
37
 
38
38
  d) make other distribution arrangements with the author.
39
39
 
40
40
  4. You may modify and include the part of the software into any other
41
41
  software (possibly commercial). But some files in the distribution
42
- are not written by the author, so that they are not under this terms.
42
+ are not written by the author, so that they are not under these terms.
43
43
 
44
- They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
45
- files under the ./missing directory. See each file for the copying
46
- condition.
44
+ For the list of those files and their copying conditions, see the
45
+ file LEGAL.
47
46
 
48
47
  5. The scripts and library files supplied as input to or produced as
49
48
  output from the software do not automatically fall under the
@@ -55,4 +54,3 @@ You can redistribute it and/or modify it under either the terms of the GPL
55
54
  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
56
55
  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
57
56
  PURPOSE.
58
-
@@ -1,43 +1,44 @@
1
1
  .gemtest
2
- BSD
2
+ .hoerc
3
+ .tm_properties
3
4
  ChangeLog
4
5
  Contributors.rdoc
5
- GPL
6
6
  History.rdoc
7
7
  LICENSE
8
8
  Manifest.txt
9
- README.OS_X.rdoc
9
+ POSTGRES
10
+ README-OS_X.rdoc
11
+ README-Windows.rdoc
10
12
  README.ja.rdoc
11
13
  README.rdoc
12
- README.windows.rdoc
13
14
  Rakefile
14
15
  Rakefile.cross
15
- ext/compat.c
16
- ext/compat.h
17
16
  ext/extconf.rb
18
17
  ext/pg.c
19
18
  ext/pg.h
19
+ ext/pg_connection.c
20
+ ext/pg_result.c
20
21
  ext/vc/pg.sln
21
22
  ext/vc/pg_18/pg.vcproj
22
23
  ext/vc/pg_19/pg_19.vcproj
23
24
  lib/pg.rb
25
+ lib/pg/connection.rb
26
+ lib/pg/constants.rb
27
+ lib/pg/exceptions.rb
28
+ lib/pg/result.rb
24
29
  misc/openssl-pg-segfault.rb
25
30
  sample/async_api.rb
26
31
  sample/async_copyto.rb
32
+ sample/async_mixed.rb
27
33
  sample/copyfrom.rb
28
34
  sample/copyto.rb
29
35
  sample/cursor.rb
30
36
  sample/losample.rb
31
37
  sample/notify_wait.rb
32
- sample/psql.rb
33
- sample/psqlHelp.rb
34
- sample/test1.rb
35
- sample/test2.rb
36
- sample/test4.rb
37
38
  sample/test_binary_values.rb
38
39
  spec/data/expected_trace.out
39
40
  spec/data/random_binary_data
40
41
  spec/lib/helpers.rb
41
- spec/m17n_spec.rb
42
- spec/pgconn_spec.rb
43
- spec/pgresult_spec.rb
42
+ spec/pg/connection_spec.rb
43
+ spec/pg/result_spec.rb
44
+ spec/pg_spec.rb
File without changes
File without changes
@@ -2,6 +2,6 @@
2
2
 
3
3
  * https://bitbucket.org/ged/ruby-pg
4
4
 
5
- This file needs translation. Anyone who is willing to volunteer, please
5
+ This file needs translation. Anyone who is willing to volunteer, please
6
6
  mail <ged@FaerieMUD.org>.
7
7
 
@@ -6,20 +6,31 @@
6
6
 
7
7
  Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/].
8
8
 
9
- It works with PostgreSQL 8.2 and later.
9
+ It works with {PostgreSQL 8.3 and later}[http://bit.ly/6AfPhm].
10
10
 
11
- This will be the last minor version to support 8.2 -- 0.13 will support 8.3
12
- and later, following the
13
- {PostgreSQL Release Support Policy}[http://bit.ly/6AfPhm].
11
+ A small example usage:
14
12
 
13
+ #!/usr/bin/env ruby
14
+
15
+ require 'pg'
16
+
17
+ # Output a table of current connections to the DB
18
+ conn = PG.connect( dbname: 'sales' )
19
+ conn.exec( "SELECT * FROM pg_stat_activity" ) do |result|
20
+ puts " PID | User | Query"
21
+ result.each do |row|
22
+ puts " %7d | %-16s | %s " %
23
+ row.values_at('procpid', 'usename', 'current_query')
24
+ end
25
+ end
15
26
 
16
27
 
17
28
  == Requirements
18
29
 
19
- * Ruby 1.8.7-p249 or later.
20
- * PostgreSQL 8.2.x or later installed.
30
+ * Ruby 1.8.7-p249 or 1.9.3-p0.
31
+ * PostgreSQL 8.3.x (with headers, -dev packages, etc).
21
32
 
22
- It may work with earlier versions as well, but those are not regularly tested.
33
+ It may work with earlier versions of Ruby as well, but those are not regularly tested.
23
34
 
24
35
 
25
36
  == How To Install
@@ -33,8 +44,12 @@ Postgres:
33
44
 
34
45
  gem install pg -- --with-pg-config=<path to pg_config>
35
46
 
36
- See README.OS_X.rdoc for more information about installing under MacOS X, and
37
- README.windows.rdoc for Windows build/installation instructions.
47
+ See README-OS_X.rdoc for more information about installing under MacOS X, and
48
+ README-Windows.rdoc for Windows build/installation instructions.
49
+
50
+ There's also {a Google+ group}[http://goo.gl/TFy1U] and a
51
+ {mailing list}[http://groups.google.com/group/ruby-pg] if you get stuck, or just
52
+ want to chat about something.
38
53
 
39
54
 
40
55
  == Contributing
@@ -50,39 +65,36 @@ After checking out the source, run:
50
65
  This task will install any missing dependencies, run the tests/specs, and
51
66
  generate the API documentation.
52
67
 
68
+ The current maintainer is Michael Granger <ged@FaerieMUD.org>.
53
69
 
54
- == Copying
55
70
 
56
- This library is copyrighted by the authors.
71
+ == Copying
57
72
 
58
- Authors:
73
+ Copyright (c) 1997-2012 by the authors.
59
74
 
60
- * Yukihiro Matsumoto <matz@ruby-lang.org> - Author of Ruby.
61
- * Eiji Matsumoto <usagi@ruby.club.or.jp> - One of users who loves Ruby.
62
75
  * Jeff Davis <ruby-pg@j-davis.com>
63
-
64
- Thanks to:
65
-
66
- * Noboru Saitou <noborus@netlab.jp> - Past maintainer.
67
- * Dave Lee - Past maintainer.
68
- * Guy Decoux (ts) <decoux@moulon.inra.fr>
69
-
70
- Maintainers:
71
-
76
+ * Guy Decoux (ts) <decoux@moulon.inra.fr>
72
77
  * Michael Granger <ged@FaerieMUD.org>
78
+ * Dave Lee
79
+ * Eiji Matsumoto <usagi@ruby.club.or.jp>
80
+ * Yukihiro Matsumoto <matz@ruby-lang.org>
81
+ * Noboru Saitou <noborus@netlab.jp>
73
82
 
74
- You may redistribute this software under the terms of the Ruby license,
75
- included in the file "LICENSE". The Ruby license also allows distribution
76
- under the terms of the GPL, included in the file "GPL".
83
+ You may redistribute this software under the same terms as Ruby itself; see
84
+ http://www.ruby-lang.org/en/LICENSE.txt or the LICENSE file in the source
85
+ for details.
77
86
 
78
87
  Portions of the code are from the PostgreSQL project, and are distributed
79
- under the terms of the BSD license, included in the file "BSD".
88
+ under the terms of the PostgreSQL license, included in the file POSTGRES.
80
89
 
81
90
  Portions copyright LAIKA, Inc.
82
91
 
83
92
 
84
93
  == Acknowledgments
85
94
 
95
+ See Contributors.rdoc for the many additional fine people that have contributed
96
+ to this library over the years.
97
+
86
98
  We are thankful to the people at the ruby-list and ruby-dev mailing lists.
87
99
  And to the people who developed PostgreSQL.
88
100
 
data/Rakefile CHANGED
@@ -49,10 +49,9 @@ $hoespec = Hoe.spec 'pg' do
49
49
  self.readme_file = 'README.rdoc'
50
50
  self.history_file = 'History.rdoc'
51
51
  self.extra_rdoc_files = Rake::FileList[ '*.rdoc' ]
52
- self.extra_rdoc_files.include( 'BSD', 'GPL', 'LICENSE' )
52
+ self.extra_rdoc_files.include( 'POSTGRES', 'LICENSE' )
53
53
  self.extra_rdoc_files.include( 'ext/*.c' )
54
54
 
55
- self.developer 'Jeff Davis', 'ruby-pg@j-davis.com'
56
55
  self.developer 'Michael Granger', 'ged@FaerieMUD.org'
57
56
 
58
57
  self.dependency 'rake-compiler', '~> 0.7', :developer
@@ -4,7 +4,11 @@ require 'mkmf'
4
4
 
5
5
  if ENV['MAINTAINER_MODE']
6
6
  $stderr.puts "Maintainer mode enabled."
7
- $CFLAGS << ' -Wall' << ' -ggdb' << ' -DDEBUG'
7
+ $CFLAGS <<
8
+ ' -Wall' <<
9
+ ' -ggdb' <<
10
+ ' -DDEBUG' <<
11
+ ' -pedantic'
8
12
  end
9
13
 
10
14
  if pgdir = with_config( 'pg' )
@@ -28,6 +32,7 @@ if pgconfig = ( with_config('pg-config') || with_config('pg_config') || find_exe
28
32
  $stderr.puts "Using config values from %s" % [ pgconfig ]
29
33
  $CPPFLAGS << " -I%s" % [ `"#{pgconfig}" --includedir`.chomp ]
30
34
  $LDFLAGS << " -L%s" % [ `"#{pgconfig}" --libdir`.chomp ]
35
+ $LIBS << " " << `"#{pgconfig}" --libs`.chomp
31
36
  else
32
37
  $stderr.puts "No pg_config... trying anyway. If building fails, please try again with",
33
38
  " --with-pg-config=/path/to/pg_config"
@@ -35,6 +40,7 @@ end
35
40
 
36
41
  find_header( 'libpq-fe.h' ) or abort "Can't find the 'libpq-fe.h header"
37
42
  find_header( 'libpq/libpq-fs.h' ) or abort "Can't find the 'libpq/libpq-fs.h header"
43
+ find_header( 'pg_config_manual.h' ) or abort "Can't find the 'pg_config_manual.h' header"
38
44
 
39
45
  abort "Can't find the PostgreSQL client library (libpq)" unless
40
46
  have_library( 'pq', 'PQconnectdb', ['libpq-fe.h'] ) ||
@@ -51,6 +57,7 @@ have_func 'PQescapeStringConn'
51
57
  have_func 'PQgetCancel'
52
58
  have_func 'lo_create'
53
59
  have_func 'pg_encoding_to_char'
60
+ have_func 'pg_char_to_encoding'
54
61
  have_func 'PQsetClientEncoding'
55
62
 
56
63
  have_func 'rb_encdb_alias'
@@ -60,7 +67,7 @@ $defs.push( "-DHAVE_ST_NOTIFY_EXTRA" ) if
60
67
  have_struct_member 'struct pgNotify', 'extra', 'libpq-fe.h'
61
68
 
62
69
  # unistd.h confilicts with ruby/win32.h when cross compiling for win32 and ruby 1.9.1
63
- have_header 'unistd.h' unless enable_config("static-build")
70
+ have_header 'unistd.h'
64
71
  have_header 'ruby/st.h' or have_header 'st.h' or abort "pg currently requires the ruby/st.h header"
65
72
 
66
73
  create_header()