From 607811c0dc9dbc698475e932ca49f02c1fc97fff Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Sat, 27 Apr 2013 16:48:52 +0800 Subject: Add gembox feature --- tasks/mruby_build_gem.rake | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake index 358df1612..29c158c22 100644 --- a/tasks/mruby_build_gem.rake +++ b/tasks/mruby_build_gem.rake @@ -1,5 +1,19 @@ module MRuby + GemBox = BasicObject.new + class << GemBox + def new(&block); block.call(self); end + def config=(obj); @config = obj; end + def gem(gemdir, &block); @config.gem(gemdir, &block); end + end + module LoadGems + def gembox(gemboxfile) + gembox = File.absolute_path("#{gemboxfile}.gembox", "#{MRUBY_ROOT}/mrbgems") + fail "Can't find gembox '#{gembox}'" unless File.exists?(gembox) + GemBox.config = self + instance_eval File.read(gembox) + end + def gem(gemdir, &block) caller_dir = File.expand_path(File.dirname(/^(.*?):\d/.match(caller.first).to_a[1])) if gemdir.is_a?(Hash) -- cgit v1.2.3 From c8efde34da52426650db7a611aae1c268283cfb9 Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Sat, 27 Apr 2013 16:49:26 +0800 Subject: Add gembox which contains all core GEMs --- mrbgems/full-core.gembox | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 mrbgems/full-core.gembox diff --git a/mrbgems/full-core.gembox b/mrbgems/full-core.gembox new file mode 100644 index 000000000..b9f19e452 --- /dev/null +++ b/mrbgems/full-core.gembox @@ -0,0 +1,8 @@ +MRuby::GemBox.new do |conf| + conf.gem "#{root}/mrbgems/mruby-sprintf" + conf.gem "#{root}/mrbgems/mruby-print" + + Dir.glob("#{root}/mrbgems/mruby-*") do |x| + conf.gem x unless x =~ /\/mruby-(print|sprintf)$/ + end +end -- cgit v1.2.3 From 7fbf615d379ad033496ac8c15d3d2ec1b13e99a3 Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Sat, 27 Apr 2013 16:49:45 +0800 Subject: Add gembox which contains all default GEMs --- mrbgems/default.gembox | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 mrbgems/default.gembox diff --git a/mrbgems/default.gembox b/mrbgems/default.gembox new file mode 100644 index 000000000..7e81abd34 --- /dev/null +++ b/mrbgems/default.gembox @@ -0,0 +1,49 @@ +MRuby::GemBox.new do |conf| + # Use standard Kernel#sprintf method + conf.gem "#{root}/mrbgems/mruby-sprintf" + + # Use standard print/puts/p + conf.gem "#{root}/mrbgems/mruby-print" + + # Use standard Math module + conf.gem "#{root}/mrbgems/mruby-math" + + # Use standard Time class + conf.gem "#{root}/mrbgems/mruby-time" + + # Use standard Struct class + conf.gem "#{root}/mrbgems/mruby-struct" + + # Use extensional Enumerable module + conf.gem "#{root}/mrbgems/mruby-enum-ext" + + # Use extensional String class + conf.gem "#{root}/mrbgems/mruby-string-ext" + + # Use extensional Numeric class + conf.gem "#{root}/mrbgems/mruby-numeric-ext" + + # Use extensional Array class + conf.gem "#{root}/mrbgems/mruby-array-ext" + + # Use extensional Hash class + conf.gem "#{root}/mrbgems/mruby-hash-ext" + + # Use extensional Range class + conf.gem "#{root}/mrbgems/mruby-range-ext" + + # Use extensional Proc class + conf.gem "#{root}/mrbgems/mruby-proc-ext" + + # Use extensional Symbol class + conf.gem "#{root}/mrbgems/mruby-symbol-ext" + + # Use Random class + conf.gem "#{root}/mrbgems/mruby-random" + + # Generate mirb command + conf.gem "#{root}/mrbgems/mruby-bin-mirb" + + # Generate mruby command + conf.gem "#{root}/mrbgems/mruby-bin-mruby" +end -- cgit v1.2.3 From 498821cfdbfe081322e4846e2faa4ba9e8030e13 Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Sat, 27 Apr 2013 16:50:08 +0800 Subject: Use gembox for default build --- build_config.rb | 57 ++------------------------------------------------------- 1 file changed, 2 insertions(+), 55 deletions(-) diff --git a/build_config.rb b/build_config.rb index 31d20d4fa..cb98ae380 100644 --- a/build_config.rb +++ b/build_config.rb @@ -11,61 +11,8 @@ MRuby::Build.new do |conf| # conf.gem :github => 'masuidrive/mrbgems-example', :branch => 'master' # conf.gem :git => 'git@github.com:masuidrive/mrbgems-example.git', :branch => 'master', :options => '-v' - # Use standard Kernel#sprintf method - conf.gem "#{root}/mrbgems/mruby-sprintf" - - # Use standard print/puts/p - conf.gem "#{root}/mrbgems/mruby-print" - - # Use standard Math module - conf.gem "#{root}/mrbgems/mruby-math" - - # Use standard Time class - conf.gem "#{root}/mrbgems/mruby-time" - - # Use standard Struct class - conf.gem "#{root}/mrbgems/mruby-struct" - - # Use extensional Enumerable module - conf.gem "#{root}/mrbgems/mruby-enum-ext" - - # Use extensional String class - conf.gem "#{root}/mrbgems/mruby-string-ext" - - # Use extensional Numeric class - conf.gem "#{root}/mrbgems/mruby-numeric-ext" - - # Use extensional Array class - conf.gem "#{root}/mrbgems/mruby-array-ext" - - # Use extensional Hash class - conf.gem "#{root}/mrbgems/mruby-hash-ext" - - # Use extensional Range class - conf.gem "#{root}/mrbgems/mruby-range-ext" - - # Use extensional Proc class - conf.gem "#{root}/mrbgems/mruby-proc-ext" - - # Use extensional Symbol class - conf.gem "#{root}/mrbgems/mruby-symbol-ext" - - # Use Random class - conf.gem "#{root}/mrbgems/mruby-random" - - # No use eval method - # conf.gem "#{root}/mrbgems/mruby-eval" - - - # Generate binaries - # conf.bins = %w(mrbc) - - # Generate mirb command - conf.gem "#{root}/mrbgems/mruby-bin-mirb" - - # Generate mruby command - conf.gem "#{root}/mrbgems/mruby-bin-mruby" - + # include the default GEMs + conf.gembox 'full-core' # C compiler settings # conf.cc do |cc| -- cgit v1.2.3 From a6b8514feca896210565ab19e71e93ac1a19d971 Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Sat, 27 Apr 2013 16:50:19 +0800 Subject: Use gembox for travis build --- travis_config.rb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/travis_config.rb b/travis_config.rb index 0ba2c38f1..040b1a255 100644 --- a/travis_config.rb +++ b/travis_config.rb @@ -1,10 +1,6 @@ MRuby::Build.new do |conf| toolchain :gcc - conf.gem "#{root}/mrbgems/mruby-sprintf" - conf.gem "#{root}/mrbgems/mruby-print" - - Dir.glob("#{root}/mrbgems/mruby-*") do |x| - conf.gem x unless x =~ /\/mruby-(print|sprintf)$/ - end + # include all core GEMs + conf.gembox 'full-core' end -- cgit v1.2.3 From 0ad9e5a37d9cd01a104c8643cc03e88c1894ad0b Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Sat, 27 Apr 2013 16:53:25 +0800 Subject: FIX: Default build should use default GEMs and not all Core GEMs --- build_config.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_config.rb b/build_config.rb index cb98ae380..a6502ac86 100644 --- a/build_config.rb +++ b/build_config.rb @@ -12,7 +12,7 @@ MRuby::Build.new do |conf| # conf.gem :git => 'git@github.com:masuidrive/mrbgems-example.git', :branch => 'master', :options => '-v' # include the default GEMs - conf.gembox 'full-core' + conf.gembox 'default' # C compiler settings # conf.cc do |cc| -- cgit v1.2.3 From 3875140afe6c83868d4469fd170d831bef71a310 Mon Sep 17 00:00:00 2001 From: Daniel Bovensiepen Date: Sat, 27 Apr 2013 16:59:02 +0800 Subject: IMPROVE: Move GemBox to more logical source location --- tasks/mrbgem_spec.rake | 7 +++++++ tasks/mruby_build_gem.rake | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake index 564836630..eedc6480f 100644 --- a/tasks/mrbgem_spec.rake +++ b/tasks/mrbgem_spec.rake @@ -158,4 +158,11 @@ module MRuby end # Specification end # Gem + + GemBox = BasicObject.new + class << GemBox + def new(&block); block.call(self); end + def config=(obj); @config = obj; end + def gem(gemdir, &block); @config.gem(gemdir, &block); end + end # GemBox end # MRuby diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake index 29c158c22..10e9b9692 100644 --- a/tasks/mruby_build_gem.rake +++ b/tasks/mruby_build_gem.rake @@ -1,11 +1,4 @@ module MRuby - GemBox = BasicObject.new - class << GemBox - def new(&block); block.call(self); end - def config=(obj); @config = obj; end - def gem(gemdir, &block); @config.gem(gemdir, &block); end - end - module LoadGems def gembox(gemboxfile) gembox = File.absolute_path("#{gemboxfile}.gembox", "#{MRUBY_ROOT}/mrbgems") -- cgit v1.2.3