summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2015-10-01 19:57:58 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2015-10-01 19:57:58 +0900
commitd12926da8a7df65da47a0b8c853167ab675c53c5 (patch)
tree933084259d9f992ff01db40bb3b0d4f4f18981a0
parenta41b61ea58b9ea8721c0a9bb811ad480f98a6c34 (diff)
parent1c8576dcc284b8b03975cac7d3e3be55ed0b4f4c (diff)
downloadmruby-d12926da8a7df65da47a0b8c853167ab675c53c5.tar.gz
mruby-d12926da8a7df65da47a0b8c853167ab675c53c5.zip
Merge pull request #2937 from sagmor/gem
Distribute MRuby's source as a Ruby gem
-rw-r--r--.gitignore2
-rw-r--r--lib/mruby/source.rb30
-rw-r--r--mruby-source.gemspec18
3 files changed, 49 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 1a8c5990c..6d10a9c8b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,4 +20,4 @@ cscope.out
/src/y.tab.c
/bin
/build
-/lib
+/mruby-source-*.gem
diff --git a/lib/mruby/source.rb b/lib/mruby/source.rb
new file mode 100644
index 000000000..5819a322b
--- /dev/null
+++ b/lib/mruby/source.rb
@@ -0,0 +1,30 @@
+require "pathname"
+
+module MRuby
+ module Source
+ # MRuby's source root directory
+ ROOT = Pathname.new(File.expand_path('../../../',__FILE__))
+
+ # Reads a constant defined at version.h
+ MRUBY_READ_VERSION_CONSTANT = Proc.new { |name| ROOT.join('include','mruby','version.h').read.match(/^#define #{name} +"?([\w\. ]+)"?$/)[1] }
+
+ MRUBY_RUBY_VERSION = MRUBY_READ_VERSION_CONSTANT['MRUBY_RUBY_VERSION']
+ MRUBY_RUBY_ENGINE = MRUBY_READ_VERSION_CONSTANT['MRUBY_RUBY_ENGINE']
+
+ MRUBY_RELEASE_MAJOR = Integer(MRUBY_READ_VERSION_CONSTANT['MRUBY_RELEASE_MAJOR'])
+ MRUBY_RELEASE_MINOR = Integer(MRUBY_READ_VERSION_CONSTANT['MRUBY_RELEASE_MINOR'])
+ MRUBY_RELEASE_TEENY = Integer(MRUBY_READ_VERSION_CONSTANT['MRUBY_RELEASE_TEENY'])
+
+ MRUBY_VERSION = [MRUBY_RELEASE_MAJOR,MRUBY_RELEASE_MINOR,MRUBY_RELEASE_TEENY].join('.')
+ MRUBY_RELEASE_NO = (MRUBY_RELEASE_MAJOR * 100 * 100 + MRUBY_RELEASE_MINOR * 100 + MRUBY_RELEASE_TEENY)
+
+ MRUBY_RELEASE_YEAR = Integer(MRUBY_READ_VERSION_CONSTANT['MRUBY_RELEASE_YEAR'])
+ MRUBY_RELEASE_MONTH = Integer(MRUBY_READ_VERSION_CONSTANT['MRUBY_RELEASE_MONTH'])
+ MRUBY_RELEASE_DAY = Integer(MRUBY_READ_VERSION_CONSTANT['MRUBY_RELEASE_DAY'])
+ MRUBY_RELEASE_DATE = [MRUBY_RELEASE_YEAR,MRUBY_RELEASE_MONTH,MRUBY_RELEASE_DAY].join('.')
+
+ MRUBY_BIRTH_YEAR = Integer(MRUBY_READ_VERSION_CONSTANT['MRUBY_BIRTH_YEAR'])
+
+ MRUBY_AUTHOR = MRUBY_READ_VERSION_CONSTANT['MRUBY_AUTHOR']
+ end
+end
diff --git a/mruby-source.gemspec b/mruby-source.gemspec
new file mode 100644
index 000000000..62d4c0d12
--- /dev/null
+++ b/mruby-source.gemspec
@@ -0,0 +1,18 @@
+# coding: utf-8
+lib = File.expand_path('../lib', __FILE__)
+$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
+require 'mruby/source'
+
+Gem::Specification.new do |spec|
+ spec.name = "mruby-source"
+ spec.version = MRuby::Source::MRUBY_VERSION
+ spec.authors = [ MRuby::Source::MRUBY_AUTHOR ]
+
+ spec.summary = %q{MRuby source code wrapper.}
+ spec.description = %q{MRuby source code wrapper for use with Ruby libs.}
+ spec.homepage = "http://www.mruby.org/"
+ spec.license = "MIT"
+
+ spec.files = `git ls-files -z`.split("\x0")
+ spec.require_paths = ["lib"]
+end