summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--AUTHORS1
-rw-r--r--Rakefile10
-rw-r--r--build_config.rb2
-rw-r--r--mrbgems/mruby-string-utf8/test/string.rb42
-rw-r--r--tasks/mruby_build_commands.rake13
-rw-r--r--tasks/mruby_build_gem.rake14
6 files changed, 56 insertions, 26 deletions
diff --git a/AUTHORS b/AUTHORS
index 3791ad723..555cf7743 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -19,3 +19,4 @@ Original Authors "mruby developers" are:
Yuichi Nishiwaki
Tatsuhiko Kubo
Takeshi Watanabe
+ Yuki Kurihara
diff --git a/Rakefile b/Rakefile
index dbe2ed0a3..ad0e258b4 100644
--- a/Rakefile
+++ b/Rakefile
@@ -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