diff options
| -rw-r--r-- | AUTHORS | 1 | ||||
| -rw-r--r-- | Rakefile | 10 | ||||
| -rw-r--r-- | build_config.rb | 2 | ||||
| -rw-r--r-- | mrbgems/mruby-string-utf8/test/string.rb | 42 | ||||
| -rw-r--r-- | tasks/mruby_build_commands.rake | 13 | ||||
| -rw-r--r-- | tasks/mruby_build_gem.rake | 14 |
6 files changed, 56 insertions, 26 deletions
@@ -19,3 +19,4 @@ Original Authors "mruby developers" are: Yuichi Nishiwaki Tatsuhiko Kubo Takeshi Watanabe + Yuki Kurihara @@ -113,5 +113,13 @@ task :clean do FileUtils.rm_rf t.build_dir, { :verbose => $verbose } end FileUtils.rm_f depfiles, { :verbose => $verbose } - puts "Cleaned up build folder" + puts "Cleaned up target build folder" +end + +desc "clean everything!" +task :deep_clean => ["clean"] do + MRuby.each_target do |t| + FileUtils.rm_rf t.gem_clone_dir, { :verbose => $verbose } + end + puts "Cleaned up mrbgems build folder" end diff --git a/build_config.rb b/build_config.rb index 3f8009047..795251486 100644 --- a/build_config.rb +++ b/build_config.rb @@ -16,7 +16,7 @@ MRuby::Build.new do |conf| # g.cc.flags << '-g' # append cflags in this gem # end # conf.gem 'examples/mrbgems/c_and_ruby_extension_example' - # conf.gem :github => 'masuidrive/mrbgems-example', :branch => 'master' + # conf.gem :github => 'masuidrive/mrbgems-example', :checksum_hash => '76518e8aecd131d047378448ac8055fa29d974a9' # conf.gem :git => '[email protected]:masuidrive/mrbgems-example.git', :branch => 'master', :options => '-v' # include the default GEMs diff --git a/mrbgems/mruby-string-utf8/test/string.rb b/mrbgems/mruby-string-utf8/test/string.rb index 2cebfd7f3..ce99fba47 100644 --- a/mrbgems/mruby-string-utf8/test/string.rb +++ b/mrbgems/mruby-string-utf8/test/string.rb @@ -3,28 +3,28 @@ # String(utf8) Test assert('String#[]') do - assert_equal "ち", "こんにちわ世界"[3] - assert_equal nil, "こんにちわ世界"[20] - assert_equal "世", "こんにちわ世界"[-2] - assert_equal "世界", "こんにちわ世界"[-2..-1] - assert_equal "んに", "こんにちわ世界"[1,2] - assert_equal "世", "こんにちわ世界"["世"] + assert_equal "ち", "こんにちは世界"[3] + assert_equal nil, "こんにちは世界"[20] + assert_equal "世", "こんにちは世界"[-2] + assert_equal "世界", "こんにちは世界"[-2..-1] + assert_equal "んに", "こんにちは世界"[1,2] + assert_equal "世", "こんにちは世界"["世"] end assert('String#reverse', '15.2.10.5.29') do - a = 'こんにちわ世界!' + a = 'こんにちは世界!' a.reverse - assert_equal 'こんにちわ世界!', a - assert_equal '!界世わちにんこ', 'こんにちわ世界!'.reverse + assert_equal 'こんにちは世界!', a + assert_equal '!界世はちにんこ', 'こんにちは世界!'.reverse end assert('String#reverse!', '15.2.10.5.30') do - a = 'こんにちわ世界!' + a = 'こんにちは世界!' a.reverse! - assert_equal '!界世わちにんこ', a - assert_equal '!界世わちにんこ', 'こんにちわ世界!'.reverse! + assert_equal '!界世はちにんこ', a + assert_equal '!界世はちにんこ', 'こんにちは世界!'.reverse! end assert('Invalid sequence') do @@ -33,14 +33,14 @@ assert('Invalid sequence') do end assert('String#size') do - str = 'こんにちわ世界!' + str = 'こんにちは世界!' assert_equal 8, str.size assert_not_equal str.bytesize, str.size assert_equal 2, str[1, 2].size end assert('String#index') do - str = "こんにちわ世界!\nこんにちわ世界!" + str = "こんにちは世界!\nこんにちは世界!" assert_nil str.index('さ') assert_equal 3, str.index('ち') assert_equal 12, str.index('ち', 10) @@ -48,20 +48,20 @@ assert('String#index') do end assert('String#ord') do - got = "こんにちわ世界!".split('').map {|x| x.ord} - expect = [0x3053,0x3093,0x306b,0x3061,0x308f,0x4e16,0x754c,0x21] + got = "こんにちは世界!".split('').map {|x| x.ord} + expect = [0x3053,0x3093,0x306b,0x3061,0x306f,0x4e16,0x754c,0x21] assert_equal expect, got end assert('String#split') do - got = "こんにちわ世界!".split('') - assert_equal ['こ', 'ん', 'に', 'ち', 'わ', '世', '界', '!'], got - got = "こんにちわ世界!".split('に') - assert_equal ['こん', 'ちわ世界!'], got + got = "こんにちは世界!".split('') + assert_equal ['こ', 'ん', 'に', 'ち', 'は', '世', '界', '!'], got + got = "こんにちは世界!".split('に') + assert_equal ['こん', 'ちは世界!'], got end assert('String#rindex') do - str = "こんにちわ世界!\nこんにちわ世界!" + str = "こんにちは世界!\nこんにちは世界!" assert_nil str.index('さ') assert_equal 12, str.rindex('ち') assert_equal 3, str.rindex('ち', 10) diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake index d64b20ff3..4beb7e743 100644 --- a/tasks/mruby_build_commands.rake +++ b/tasks/mruby_build_commands.rake @@ -228,14 +228,15 @@ module MRuby class Command::Git < Command attr_accessor :flags - attr_accessor :clone_options, :pull_options + attr_accessor :clone_options, :pull_options, :checkout_options def initialize(build) super @command = 'git' - @flags = %w[--depth 1] + @flags = %w[] @clone_options = "clone %{flags} %{url} %{dir}" @pull_options = "pull" + @checkout_options = "checkout %{checksum_hash}" end def run_clone(dir, url, _flags = []) @@ -250,6 +251,14 @@ module MRuby _run pull_options Dir.chdir root end + + def run_checkout(dir, checksum_hash) + root = Dir.pwd + Dir.chdir dir + _pp "GIT CHECKOUT", checksum_hash + _run checkout_options, { :checksum_hash => checksum_hash } + Dir.chdir root + end end class Command::Mrbc < Command diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake index 42d0d6b89..766266680 100644 --- a/tasks/mruby_build_gem.rake +++ b/tasks/mruby_build_gem.rake @@ -59,6 +59,9 @@ module MRuby url = params[:git] gemdir = "#{gem_clone_dir}/#{url.match(/([-\w]+)(\.[-\w]+|)$/).to_a[1]}" + # by default the 'master' branch is used + branch = params[:branch] ? params[:branch] : 'master' + if File.exist?(gemdir) if $pull_gems git.run_pull gemdir, url @@ -67,10 +70,19 @@ module MRuby end else options = [params[:options]] || [] - options << "--branch \"#{params[:branch]}\"" if params[:branch] + options << "--branch \"#{branch}\"" + options << "--depth 1" unless params[:checksum_hash] FileUtils.mkdir_p "#{gem_clone_dir}" git.run_clone gemdir, url, options end + + if params[:checksum_hash] + # Jump to the specified commit + git.run_checkout gemdir, params[:checksum_hash] + else + # Jump to the top of the branch + git.run_checkout gemdir, branch + end else fail "unknown gem option #{params}" end |
