ocra 1.2.0.rc1 → 1.2.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,6 +31,9 @@
31
31
  your script after a "--" marker. Arguments will be passed both at
32
32
  compile time and run time. (#27815)
33
33
 
34
+ * Now works if the source files are located beneath Ruby's
35
+ exec_prefix. (#28505)
36
+
34
37
  === 1.1.4
35
38
 
36
39
  * The tempdir marker is now pretty-printed as "<tempdir>" in the
data/Rakefile CHANGED
@@ -66,11 +66,9 @@ file 'bin/ocrasa.rb' => [ 'bin/ocra', 'share/ocra/stub.exe', 'share/ocra/stubw.e
66
66
  end
67
67
 
68
68
  task :clean do
69
- rm_rf Dir.glob("bin/*.exe")
69
+ rm_f Dir["{bin,samples}/*.exe"]
70
+ rm_f Dir["share/ocra/{stub,stubw,edicon}.exe"]
70
71
  sh "mingw32-make -C src clean"
71
- rm_f 'share/ocra/stub.exe'
72
- rm_f 'share/ocra/stubw.exe'
73
- rm_f 'share/ocra/edicon.exe'
74
72
  end
75
73
 
76
74
  task :test_standalone => :standalone do
@@ -79,54 +77,6 @@ task :test_standalone => :standalone do
79
77
  ENV['TESTED_OCRA'] = nil
80
78
  end
81
79
 
82
- def each_ruby_version
83
- raise "Set RUBIES to point to where you have various versions of Ruby installed" if ENV['RUBIES'].nil?
84
- root = ENV['RUBIES'].tr '\\', '/'
85
- Dir.glob(File.join(root, 'ruby*','bin')).each do |path|
86
- path.tr!('/','\\')
87
- pathenv = ENV['PATH']
88
- ENV['PATH'] = path
89
- begin
90
- yield
91
- ensure
92
- ENV['PATH'] = pathenv
93
- end
94
- end
95
- end
96
-
97
- task :setup_all_ruby do
98
- ENV['RUBYOPT'] = nil
99
- rubygemszip = "rubygems-1.3.4.zip"
100
- rubygemsdir = rubygemszip.gsub(/\.zip$/,'')
101
- sh "unzip rubygems-1.3.4.zip"
102
- begin
103
- cd "rubygems-1.3.4" do
104
- each_ruby_version do
105
- system("ruby -v")
106
- system("ruby setup.rb")
107
- system("gem install win32-api")
108
- end
109
- end
110
- ensure
111
- rm_rf "rubygems-1.3.4"
112
- end
113
- end
114
-
115
- desc 'Run test suite with all version of Ruby found in ENV["RUBIES"]'
116
- task :test_all_rubies do
117
- each_ruby_version do
118
- system("ruby -v")
119
- system("ruby test/test_ocra.rb")
120
- end
121
- end
122
-
123
- desc 'List all version of Ruby found in ENV["RUBIES"]'
124
- task :list_all_rubies do
125
- each_ruby_version do
126
- system "ruby -v"
127
- end
128
- end
129
-
130
80
  task :release_docs => :redocs do
131
81
  sh "pscp -r doc/* larsch@ocra.rubyforge.org:/var/www/gforge-projects/ocra"
132
82
  end
data/bin/ocra CHANGED
@@ -11,7 +11,7 @@ module Ocra
11
11
  OP_SETENV = 5
12
12
  OP_POST_CREATE_PROCESS = 6
13
13
 
14
- VERSION = "1.2.0.rc1"
14
+ VERSION = "1.2.0.rc2"
15
15
 
16
16
  IGNORE_MODULES = /^enumerator.so$/
17
17
 
@@ -57,7 +57,7 @@ module Ocra
57
57
  end
58
58
 
59
59
  # Returns a binary blob store embedded in the current Ruby script.
60
- def get_next_embedded_image
60
+ def Ocra.get_next_embedded_image
61
61
  DATA.read(DATA.readline.to_i).unpack("m")[0]
62
62
  end
63
63
 
@@ -406,6 +406,7 @@ EOF
406
406
  windowed = (Ocra.files[0] =~ /\.rbw$/ || Ocra.force_windows) && !Ocra.force_console
407
407
 
408
408
  puts "=== Building #{executable}" unless Ocra.quiet
409
+ target_script = nil
409
410
  OcraBuilder.new(executable, windowed) do |sb|
410
411
  # Add explicitly mentioned files
411
412
  Ocra.files.each do |file|
@@ -419,6 +420,8 @@ EOF
419
420
  target = File.join('src', File.basename(file))
420
421
  end
421
422
 
423
+ target_script ||= target
424
+
422
425
  if File.directory?(file)
423
426
  sb.ensuremkdir(target)
424
427
  else
@@ -472,13 +475,13 @@ EOF
472
475
 
473
476
  # Set environment variable
474
477
  sb.setenv('RUBYOPT', ENV['RUBYOPT'] || '')
475
- sb.setenv('RUBYLIB', load_path.uniq.join(';'))
478
+ sb.setenv('RUBYLIB', load_path.map{|path| dospath(path)}.uniq.join(';'))
476
479
  sb.setenv('GEM_PATH', "#{TEMPDIR_MARKER}\\gemhome")
477
480
 
478
481
  # Launch the script
479
482
  extra_arg = Ocra.arg.map { |a| ' "' + a.gsub(/\"/,'\\"') + '"' }.join
480
483
  sb.postcreateprocess(TEMPDIR_MARKER + "\\bin\\" + rubyexe,
481
- "#{rubyexe} \"\xff\\src\\" + Ocra.dospath(Ocra.files[0]) + "\"#{extra_arg}")
484
+ "#{rubyexe} \"\xff\\" + Ocra.dospath(target_script) + "\"#{extra_arg}")
482
485
 
483
486
  puts "=== Compressing" unless Ocra.quiet or not Ocra.lzma_mode
484
487
  end
@@ -1,3 +1,3 @@
1
1
  class Ocra
2
- VERSION = '1.2.0.rc1'
2
+ VERSION = '1.2.0.rc2'
3
3
  end
Binary file
Binary file
Binary file
@@ -3,8 +3,6 @@ require "tmpdir"
3
3
  require "fileutils"
4
4
  require "rbconfig"
5
5
 
6
- require 'rbconfig'
7
-
8
6
  begin
9
7
  require "rubygems"
10
8
  gem 'win32-api', '>=1.2.0'
@@ -19,7 +17,8 @@ include FileUtils
19
17
  class TestOcra < Test::Unit::TestCase
20
18
 
21
19
  # Default arguments for invoking OCRA when running tests.
22
- DefaultArgs = [ '--quiet', '--no-lzma' ]
20
+ DefaultArgs = [ '--no-lzma' ]
21
+ DefaultArgs << "--quiet" unless ENV["OCRA_VERBOSE_TEST"]
23
22
  DefaultArgs.push '--no-autodll' if not $have_win32_api
24
23
 
25
24
  # Name of the tested ocra script.
@@ -54,9 +53,9 @@ class TestOcra < Test::Unit::TestCase
54
53
  # Sets up an directory with a copy of a fixture and yields to the
55
54
  # block, then cleans up everything. A fixture here is a hierachy of
56
55
  # files located in test/fixtures.
57
- def with_fixture(name)
56
+ def with_fixture(name, target_path = nil)
58
57
  path = File.join(FixturePath, name)
59
- with_tmpdir do
58
+ with_tmpdir([], target_path) do
60
59
  cp_r path, '.'
61
60
  cd name do
62
61
  yield
@@ -82,9 +81,9 @@ class TestOcra < Test::Unit::TestCase
82
81
  end
83
82
  end
84
83
 
85
- def with_tmpdir(files = [])
86
- tempdirname = File.join(ENV['TEMP'], ".ocratest-#{$$}-#{rand 2**32}").tr('\\','/')
87
- Dir.mkdir tempdirname
84
+ def with_tmpdir(files = [], path = nil)
85
+ tempdirname = path || File.join(ENV['TEMP'], ".ocratest-#{$$}-#{rand 2**32}").tr('\\','/')
86
+ mkdir_p tempdirname
88
87
  begin
89
88
  cp files, tempdirname
90
89
  FileUtils.cd tempdirname do
@@ -389,7 +388,7 @@ class TestOcra < Test::Unit::TestCase
389
388
 
390
389
  # Test that ocra.rb accepts --version and outputs the version number.
391
390
  def test_version
392
- assert_match(/^Ocra \d+(\.\d)+(.pre\d+)?$/, `ruby \"#{ocra}\" --version`)
391
+ assert_match(/^Ocra \d+(\.\d)+(.[a-z]+\d+)?$/, `ruby \"#{ocra}\" --version`)
393
392
  end
394
393
 
395
394
  # Test that ocra.rb accepts --icon.
@@ -561,5 +560,18 @@ class TestOcra < Test::Unit::TestCase
561
560
  end
562
561
  end
563
562
  end
563
+
564
+ # Would be nice if OCRA could build from source located beneath the
565
+ # Ruby installation too.
566
+ def test_exec_prefix
567
+ path = File.join(RbConfig::CONFIG["exec_prefix"], "ocratempsrc")
568
+ with_fixture "helloworld", path do
569
+ assert system("ruby", ocra, "helloworld.rb", *DefaultArgs)
570
+ assert File.exist?("helloworld.exe")
571
+ pristine_env "helloworld.exe" do
572
+ assert system("helloworld.exe")
573
+ end
574
+ end
575
+ end
564
576
 
565
577
  end
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 1
7
7
  - 2
8
8
  - 0
9
- - rc1
10
- version: 1.2.0.rc1
9
+ - rc2
10
+ version: 1.2.0.rc2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Lars Christensen
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-22 00:00:00 +02:00
18
+ date: 2010-08-29 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency