Commit e0c10d03 authored by MATSUMOTO Ryosuke's avatar MATSUMOTO Ryosuke

Add pluggable versioning by mruby-version

parent 6bcc7802
......@@ -58,4 +58,7 @@ MRuby::GemBox.new do |conf|
# Generate mruby command
conf.gem :core => "mruby-bin-mruby"
# Use mruby verison
conf.gem :core => "mruby-version"
end
MRuby::Gem::Specification.new('mruby-version') do |spec|
spec.license = 'MIT'
spec.author = 'mruby developers'
end
module Kernel
def show_version
"mruby " + MRUBY_VERSION + " (" + MRUBY_RELEASE_DATE + ")\n"
end
end
#include "mruby.h"
#include "mruby/variable.h"
#include "version.h"
void
mrb_mruby_version_gem_init(mrb_state* mrb)
{
mrb_define_global_const(mrb, "MRUBY_VERSION", mrb_str_new_cstr(mrb, MRUBY_VERSION));
mrb_define_global_const(mrb, "MRUBY_RELEASE_DATE", mrb_str_new_cstr(mrb, MRUBY_RELEASE_DATE));
}
void
mrb_mruby_version_gem_final(mrb_state* mrb)
{
}
#define MRUBY_VERSION "v1.0.0"
#define MRUBY_PATCHLEVEL 0
#define MRUBY_REVISION 0
#define MRUBY_RELEASE_DATE "2014-01-31"
#define MRUBY_RELEASE_YEAR 2014
#define MRUBY_RELEASE_MONTH 1
#define MRUBY_RELEASE_DAY 31
......@@ -6,6 +6,7 @@
#include "mruby.h"
#include "mruby/string.h"
#include "mruby/variable.h"
static void
printstr(mrb_state *mrb, mrb_value obj)
......@@ -56,7 +57,12 @@ mrb_show_version(mrb_state *mrb)
static const char version_msg[] = "mruby - Embeddable Ruby Copyright (c) 2010-2014 mruby developers\n";
mrb_value msg;
msg = mrb_str_new(mrb, version_msg, sizeof(version_msg) - 1);
if (mrb_const_defined(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_VERSION"))) {
msg = mrb_funcall(mrb, mrb_obj_value(mrb->kernel_module), "show_version", 0);
}
else {
msg = mrb_str_new(mrb, version_msg, sizeof(version_msg) - 1);
}
printstr(mrb, msg);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment