diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-05-01 18:10:55 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-05-01 18:10:55 -0700 |
| commit | fd2e32e971a59ff3b20d7f5fede2aa4dd3c8263d (patch) | |
| tree | 62961e5dc9e6f5f66e3eb45c36e02bf9054ca5e9 | |
| parent | b3cdcfe27bc8fcd19c64c422c6f3686fd3012f8e (diff) | |
| parent | bffc9878ecd8cea73f4c3e1e1d29dec05041edc7 (diff) | |
| download | mruby-fd2e32e971a59ff3b20d7f5fede2aa4dd3c8263d.tar.gz mruby-fd2e32e971a59ff3b20d7f5fede2aa4dd3c8263d.zip | |
Merge pull request #1228 from bovi/mrbgems-core-gem
Implementation of :core parameter for conf.gem
| -rw-r--r-- | mrbgems/default.gembox | 32 | ||||
| -rw-r--r-- | mrbgems/full-core.gembox | 7 | ||||
| -rw-r--r-- | tasks/mruby_build_gem.rake | 12 |
3 files changed, 27 insertions, 24 deletions
diff --git a/mrbgems/default.gembox b/mrbgems/default.gembox index 7e81abd34..76a6c11b6 100644 --- a/mrbgems/default.gembox +++ b/mrbgems/default.gembox @@ -1,49 +1,49 @@ MRuby::GemBox.new do |conf| # Use standard Kernel#sprintf method - conf.gem "#{root}/mrbgems/mruby-sprintf" + conf.gem :core => "mruby-sprintf" # Use standard print/puts/p - conf.gem "#{root}/mrbgems/mruby-print" + conf.gem :core => "mruby-print" # Use standard Math module - conf.gem "#{root}/mrbgems/mruby-math" + conf.gem :core => "mruby-math" # Use standard Time class - conf.gem "#{root}/mrbgems/mruby-time" + conf.gem :core => "mruby-time" # Use standard Struct class - conf.gem "#{root}/mrbgems/mruby-struct" + conf.gem :core => "mruby-struct" # Use extensional Enumerable module - conf.gem "#{root}/mrbgems/mruby-enum-ext" + conf.gem :core => "mruby-enum-ext" # Use extensional String class - conf.gem "#{root}/mrbgems/mruby-string-ext" + conf.gem :core => "mruby-string-ext" # Use extensional Numeric class - conf.gem "#{root}/mrbgems/mruby-numeric-ext" + conf.gem :core => "mruby-numeric-ext" # Use extensional Array class - conf.gem "#{root}/mrbgems/mruby-array-ext" + conf.gem :core => "mruby-array-ext" # Use extensional Hash class - conf.gem "#{root}/mrbgems/mruby-hash-ext" + conf.gem :core => "mruby-hash-ext" # Use extensional Range class - conf.gem "#{root}/mrbgems/mruby-range-ext" + conf.gem :core => "mruby-range-ext" # Use extensional Proc class - conf.gem "#{root}/mrbgems/mruby-proc-ext" + conf.gem :core => "mruby-proc-ext" # Use extensional Symbol class - conf.gem "#{root}/mrbgems/mruby-symbol-ext" + conf.gem :core => "mruby-symbol-ext" # Use Random class - conf.gem "#{root}/mrbgems/mruby-random" + conf.gem :core => "mruby-random" # Generate mirb command - conf.gem "#{root}/mrbgems/mruby-bin-mirb" + conf.gem :core => "mruby-bin-mirb" # Generate mruby command - conf.gem "#{root}/mrbgems/mruby-bin-mruby" + conf.gem :core => "mruby-bin-mruby" end diff --git a/mrbgems/full-core.gembox b/mrbgems/full-core.gembox index b9f19e452..4a6ebbc80 100644 --- a/mrbgems/full-core.gembox +++ b/mrbgems/full-core.gembox @@ -1,8 +1,9 @@ MRuby::GemBox.new do |conf| - conf.gem "#{root}/mrbgems/mruby-sprintf" - conf.gem "#{root}/mrbgems/mruby-print" + conf.gem :core => "mruby-sprintf" + conf.gem :core => "mruby-print" Dir.glob("#{root}/mrbgems/mruby-*") do |x| - conf.gem x unless x =~ /\/mruby-(print|sprintf)$/ + g = File.basename(x) + conf.gem :core => g unless g =~ /^mruby-(print|sprintf)$/ end end diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake index 993591efd..83c46de24 100644 --- a/tasks/mruby_build_gem.rake +++ b/tasks/mruby_build_gem.rake @@ -10,7 +10,7 @@ module MRuby def gem(gemdir, &block) caller_dir = File.expand_path(File.dirname(/^(.*?):\d/.match(caller.first).to_a[1])) if gemdir.is_a?(Hash) - gemdir = load_external_gem(gemdir) + gemdir = load_special_path_gem(gemdir) else gemdir = File.expand_path(gemdir, caller_dir) end @@ -28,14 +28,16 @@ module MRuby Gem.current end - def load_external_gem(params) + def load_special_path_gem(params) if params[:github] params[:git] = "https://github.com/#{params[:github]}.git" elsif params[:bitbucket] params[:git] = "https://bitbucket.org/#{params[:bitbucket]}.git" end - if params[:git] + if params[:core] + gemdir = "#{root}/mrbgems/#{params[:core]}" + elsif params[:git] url = params[:git] gemdir = "build/mrbgems/#{url.match(/([-_\w]+)(\.[-_\w]+|)$/).to_a[1]}" return gemdir if File.exists?(gemdir) @@ -45,11 +47,11 @@ module MRuby FileUtils.mkdir_p "build/mrbgems" git.run_clone gemdir, url, options - - gemdir else fail "unknown gem option #{params}" end + + gemdir end def enable_gems? |
