| 19 | | end |
| 20 | | |
| 21 | | version_h = <<end |
| 22 | | #define RUBY_VERSION "#{v.join '.'}" |
| 23 | | #define RUBY_RELEASE_DATE "#{d.strftime '%Y-%m-%d'}" |
| 24 | | #define RUBY_VERSION_CODE #{v.join ''} |
| 25 | | #define RUBY_RELEASE_CODE #{d.strftime '%Y%m%d'} |
| 26 | | #define RUBY_PATCHLEVEL #{p.to_i.succ.to_s} |
| 27 | | |
| 28 | | #define RUBY_VERSION_MAJOR #{v[0]} |
| 29 | | #define RUBY_VERSION_MINOR #{v[1]} |
| 30 | | #define RUBY_VERSION_TEENY #{v[2]} |
| 31 | | #define RUBY_RELEASE_YEAR #{d.year} |
| 32 | | #define RUBY_RELEASE_MONTH #{d.month} |
| 33 | | #define RUBY_RELEASE_DAY #{d.day} |
| 34 | | |
| 35 | | #ifdef RUBY_EXTERN |
| 36 | | RUBY_EXTERN const char ruby_version[]; |
| 37 | | RUBY_EXTERN const char ruby_release_date[]; |
| 38 | | RUBY_EXTERN const char ruby_platform[]; |
| 39 | | RUBY_EXTERN const int ruby_patchlevel; |
| 40 | | #endif |
| 84 | | open 'version.h', 'wb' do |f| f.write version_h end |
| | 62 | open 'version.h', 'r+b' do |f| |
| | 63 | str = f.read |
| | 64 | [%W[RUBY_VERSION "#{v.join '.'}"], |
| | 65 | %W[RUBY_VERSION_CODE #{v.join ''}], |
| | 66 | %W[RUBY_VERSION_MAJOR #{v[0]}], |
| | 67 | %W[RUBY_VERSION_MINOR #{v[1]}], |
| | 68 | %W[RUBY_VERSION_TEENY #{v[2]}], |
| | 69 | %W[RUBY_RELEASE_DATE "#{d.strftime '%Y-%m-%d'}"], |
| | 70 | %W[RUBY_RELEASE_CODE #{d.strftime '%Y%m%d'}], |
| | 71 | %W[RUBY_PATCHLEVEL #{p.to_i.succ.to_s}], |
| | 72 | %W[RUBY_RELEASE_YEAR #{d.year}], |
| | 73 | %W[RUBY_RELEASE_MONTH #{d.month}], |
| | 74 | %W[RUBY_RELEASE_DAY #{d.day}], |
| | 75 | ].each do |(k, v)| |
| | 76 | str.sub! /^(#define\s+#{k}\s+).*$/, "\\1#{v}" |
| | 77 | end |
| | 78 | f.rewind |
| | 79 | f.write str |
| | 80 | end |