ocra 1.3.0 → 1.3.1
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.
- data/History.txt +13 -0
- data/README.rdoc +9 -5
- data/Rakefile +6 -4
- data/bin/ocra +48 -33
- data/lib/ocra.rb +1 -1
- data/share/ocra/edicon.exe +0 -0
- data/share/ocra/stub.exe +0 -0
- data/share/ocra/stubw.exe +0 -0
- data/test/test_ocra.rb +32 -11
- metadata +72 -38
data/History.txt
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
=== 1.3.1
|
2
|
+
|
3
|
+
* Now includes $LOADED_FEATURES even when script is not run to check
|
4
|
+
dependencies. This fixes compatability with Ruby 1.9.3 where
|
5
|
+
rubygems is always loaded.
|
6
|
+
|
7
|
+
* Fixed compatability with Ruby 2.0.0: Temp-path alias in binary
|
8
|
+
changed to be valid UTF-8 character.
|
9
|
+
|
10
|
+
* README.txt updated related to --no-dep-run (karhatsu).
|
11
|
+
|
12
|
+
* Fixes for Bundler handling (DavidMikeSimon).
|
13
|
+
|
1
14
|
=== 1.3.0
|
2
15
|
|
3
16
|
* Fixed some additional corner cases with absolute and relative
|
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= ocra
|
2
2
|
|
3
|
-
*
|
3
|
+
* http://ocra.rubyforge.org
|
4
4
|
* RubyForge project page: http://rubyforge.org/projects/ocra
|
5
5
|
* GitHub: http://github.com/larsch/ocra
|
6
6
|
* Issue tracker: http://github.com/larsch/ocra/issues
|
@@ -236,8 +236,12 @@ use other means to specify what needs to be packaged with your app.
|
|
236
236
|
|
237
237
|
To disable automatic dependency resolution, use the --no-dep-run
|
238
238
|
option; with it, Ocra will skip executing your program during the
|
239
|
-
build process.
|
240
|
-
|
239
|
+
build process. This on the other hand requires using --gem-full option
|
240
|
+
(see more below); otherwise Ocra will not include all the necessary
|
241
|
+
files for the gems.
|
242
|
+
|
243
|
+
You will also probably need to use the --add-all-core option to
|
244
|
+
include the Ruby core libraries.
|
241
245
|
|
242
246
|
If your app uses gems, then you can specify them in a
|
243
247
|
Bundler (http://gembundler.com) Gemfile, then use the --gemfile
|
@@ -254,7 +258,7 @@ actually running the app during the build, you could use the
|
|
254
258
|
following command:
|
255
259
|
|
256
260
|
ocra someapp/script/rails someapp --output someapp.exe --add-all-core \
|
257
|
-
--gemfile someapp/Gemfile --no-dep-run --chdir-first -- server
|
261
|
+
--gemfile someapp/Gemfile --no-dep-run --gem-full --chdir-first -- server
|
258
262
|
|
259
263
|
Note the space between "--" and "server"! It's important; "server" is an argument to be passed to rails when the script is ran.
|
260
264
|
|
@@ -315,7 +319,7 @@ app into an installer. Save the following as "<tt>someapp.iss</tt>":
|
|
315
319
|
Then, run Ocra with this command:
|
316
320
|
|
317
321
|
ocra someapp/script/rails someapp --output someapp.exe --add-all-core \
|
318
|
-
--gemfile someapp/Gemfile --no-dep-run --chdir-first --no-lzma \
|
322
|
+
--gemfile someapp/Gemfile --no-dep-run --gem-full --chdir-first --no-lzma \
|
319
323
|
--innosetup someapp.iss -- server
|
320
324
|
|
321
325
|
If all goes well, a file named "SomeAppInstaller.exe" will be placed
|
data/Rakefile
CHANGED
@@ -3,13 +3,13 @@
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'hoe'
|
5
5
|
|
6
|
-
Hoe.spec 'ocra' do |spec|
|
6
|
+
spec = Hoe.spec 'ocra' do |spec|
|
7
7
|
spec.author = "Lars Christensen"
|
8
8
|
spec.email = "larsch@belunktum.dk"
|
9
|
-
spec.url = "http://ocra.rubyforge.org/"
|
10
9
|
spec.readme_file = 'README.rdoc'
|
11
10
|
spec.extra_rdoc_files = ['README.rdoc']
|
12
11
|
end
|
12
|
+
spec.urls.each { |url| url.chomp! }
|
13
13
|
|
14
14
|
task :build_stub do
|
15
15
|
sh "mingw32-make -C src"
|
@@ -19,6 +19,8 @@ task :build_stub do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
file 'share/ocra/stub.exe' => :build_stub
|
22
|
+
file 'share/ocra/stubw.exe' => :build_stub
|
23
|
+
file 'share/ocra/edicon.exe' => :build_stub
|
22
24
|
|
23
25
|
task :test => :build_stub
|
24
26
|
|
@@ -41,7 +43,7 @@ file 'bin/ocrasa.rb' => [ 'bin/ocra', 'share/ocra/stub.exe', 'share/ocra/stubw.e
|
|
41
43
|
cp 'bin/ocra', 'bin/ocrasa.rb'
|
42
44
|
File.open("bin/ocrasa.rb", "a") do |f|
|
43
45
|
f.puts "__END__"
|
44
|
-
|
46
|
+
|
45
47
|
stub = File.open("share/ocra/stub.exe", "rb") {|g| g.read}
|
46
48
|
stub64 = [stub].pack("m")
|
47
49
|
f.puts stub64.size
|
@@ -51,7 +53,7 @@ file 'bin/ocrasa.rb' => [ 'bin/ocra', 'share/ocra/stub.exe', 'share/ocra/stubw.e
|
|
51
53
|
stub64 = [stub].pack("m")
|
52
54
|
f.puts stub64.size
|
53
55
|
f.puts stub64
|
54
|
-
|
56
|
+
|
55
57
|
lzma = File.open("share/ocra/lzma.exe", "rb") {|g| g.read}
|
56
58
|
lzma64 = [lzma].pack("m")
|
57
59
|
f.puts lzma64.size
|
data/bin/ocra
CHANGED
@@ -17,15 +17,15 @@ module Ocra
|
|
17
17
|
attr_reader :path
|
18
18
|
SEPARATOR_PAT = /[#{Regexp.quote File::ALT_SEPARATOR}#{Regexp.quote File::SEPARATOR}]/ # }
|
19
19
|
ABSOLUTE_PAT = /\A([A-Z]:)?#{SEPARATOR_PAT}/i
|
20
|
-
|
20
|
+
|
21
21
|
def initialize(path)
|
22
22
|
@path = path
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
def to_native
|
26
26
|
@path.tr File::SEPARATOR, File::ALT_SEPARATOR
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def to_posix
|
30
30
|
@path.tr File::ALT_SEPARATOR, File::SEPARATOR
|
31
31
|
end
|
@@ -65,7 +65,7 @@ module Ocra
|
|
65
65
|
Ocra.Pathname(@path + '/' + other.path)
|
66
66
|
end
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
def append_to_filename!(s)
|
70
70
|
@path.sub!(/(\.[^.]*?|)$/) { s.to_s + $1 }
|
71
71
|
end
|
@@ -138,7 +138,7 @@ module Ocra
|
|
138
138
|
raise ArgumentError, obj
|
139
139
|
end
|
140
140
|
end
|
141
|
-
|
141
|
+
|
142
142
|
# Variables describing the host's build environment.
|
143
143
|
module Host
|
144
144
|
class << self
|
@@ -161,7 +161,7 @@ module Ocra
|
|
161
161
|
@rubyw_exe ||= (RbConfig::CONFIG['rubyw_install_name'] || "rubyw") + exeext
|
162
162
|
end
|
163
163
|
def ruby_exe
|
164
|
-
@ruby_exe ||= (RbConfig::CONFIG['ruby_install_name'] || "ruby") + exeext
|
164
|
+
@ruby_exe ||= (RbConfig::CONFIG['ruby_install_name'] || "ruby") + exeext
|
165
165
|
end
|
166
166
|
def tempdir
|
167
167
|
@tempdir ||= Ocra.Pathname(ENV['TEMP'])
|
@@ -174,8 +174,8 @@ module Ocra
|
|
174
174
|
def self.sort_uniq(a)
|
175
175
|
a.sort.inject([]) { |r, e| r.last == e ? r : r << e }
|
176
176
|
end
|
177
|
-
|
178
|
-
VERSION = "1.3.
|
177
|
+
|
178
|
+
VERSION = "1.3.1"
|
179
179
|
|
180
180
|
IGNORE_MODULES = /^enumerator.so$/
|
181
181
|
|
@@ -192,11 +192,11 @@ module Ocra
|
|
192
192
|
# Unlikely extensions
|
193
193
|
\.(rdoc|c|cpp|c\+\+|cxx|h|hxx|hpp|obj|o|a)$/
|
194
194
|
)}xi
|
195
|
-
|
195
|
+
|
196
196
|
GEM_NON_FILE_RE = /(#{GEM_EXTRA_RE}|#{GEM_SCRIPT_RE})/
|
197
197
|
|
198
198
|
# Alias for the temporary directory where files are extracted.
|
199
|
-
TEMPDIR_ROOT = Pathname.new("
|
199
|
+
TEMPDIR_ROOT = Pathname.new("|")
|
200
200
|
# Directory for source files in temporary directory.
|
201
201
|
SRCDIR = Pathname.new('src')
|
202
202
|
# Directory for Ruby binaries in temporary directory.
|
@@ -409,7 +409,11 @@ EOF
|
|
409
409
|
puts usage
|
410
410
|
exit 0
|
411
411
|
else
|
412
|
-
|
412
|
+
if __FILE__.respond_to?(:encoding)
|
413
|
+
@options[:files] << arg.dup.force_encoding(__FILE__.encoding)
|
414
|
+
else
|
415
|
+
@options[:files] << arg
|
416
|
+
end
|
413
417
|
end
|
414
418
|
end
|
415
419
|
|
@@ -462,6 +466,9 @@ EOF
|
|
462
466
|
modules_to_check.each do |mod|
|
463
467
|
modules_checked[mod] = true
|
464
468
|
mod.constants.each do |const|
|
469
|
+
# Module::Config causes warning on Ruby 1.9.3 - prevent autoloading
|
470
|
+
next if Module === mod && const == :Config
|
471
|
+
|
465
472
|
if mod.autoload?(const)
|
466
473
|
begin
|
467
474
|
mod.const_get(const)
|
@@ -497,7 +504,7 @@ EOF
|
|
497
504
|
candidates.sort_by { |loadpath| loadpath.path.size }.last
|
498
505
|
end
|
499
506
|
end
|
500
|
-
|
507
|
+
|
501
508
|
# Find the root of all files specified on the command line and use
|
502
509
|
# it as the "src" of the output.
|
503
510
|
def Ocra.find_src_root(files)
|
@@ -554,7 +561,16 @@ EOF
|
|
554
561
|
|
555
562
|
ENV['BUNDLE_GEMFILE'] = Ocra.gemfile
|
556
563
|
Bundler.load.specs.each do |spec|
|
557
|
-
|
564
|
+
Ocra.verbose_msg "From Gemfile, adding gem #{spec.full_name}"
|
565
|
+
gems << [Pathname(spec.base_dir), spec.full_name]
|
566
|
+
end
|
567
|
+
|
568
|
+
unless gems.any?{|dir, name| name =~ /^bundler-[.0-9]+/}
|
569
|
+
# Bundler itself wasn't added for some reason, let's put it in directly
|
570
|
+
Ocra.verbose_msg "From Gemfile, forcing inclusion of bundler gem itself"
|
571
|
+
bundler_spec = Gem.loaded_specs["bundler"]
|
572
|
+
bundler_spec or Ocra.fatal_error "Unable to locate bundler gem"
|
573
|
+
gems << [Pathname(bundler_spec.base_dir), bundler_spec.full_name]
|
558
574
|
end
|
559
575
|
end
|
560
576
|
|
@@ -664,26 +680,25 @@ EOF
|
|
664
680
|
features_from_gems -= gem_files
|
665
681
|
return gem_files, features_from_gems
|
666
682
|
end
|
667
|
-
|
683
|
+
|
668
684
|
def Ocra.build_exe
|
669
685
|
all_load_paths = $LOAD_PATH.map { |loadpath| Pathname(loadpath).expand }
|
670
686
|
@added_load_paths = ($LOAD_PATH - @load_path_before).map { |loadpath| Pathname(loadpath).expand }
|
671
687
|
working_directory = Pathname.pwd.expand
|
672
688
|
|
673
689
|
restore_environment
|
674
|
-
|
675
|
-
features
|
676
|
-
# If the script was ran, then detect the features it used
|
690
|
+
|
691
|
+
# If the script was ran, then detect the features it used
|
677
692
|
if Ocra.run_script
|
678
693
|
# Attempt to autoload libraries before doing anything else.
|
679
694
|
attempt_load_autoload if Ocra.load_autoload
|
680
|
-
|
681
|
-
# Store the currently loaded files (before we require rbconfig for
|
682
|
-
# our own use).
|
683
|
-
features = $LOADED_FEATURES.map { |feature| Pathname(feature) }
|
684
|
-
features.delete_if { |feature| feature =~ IGNORE_MODULES }
|
685
695
|
end
|
686
696
|
|
697
|
+
# Store the currently loaded files (before we require rbconfig for
|
698
|
+
# our own use).
|
699
|
+
features = $LOADED_FEATURES.map { |feature| Pathname(feature) }
|
700
|
+
features.delete_if { |feature| feature =~ IGNORE_MODULES }
|
701
|
+
|
687
702
|
# Find gemspecs to include
|
688
703
|
if defined?(Gem)
|
689
704
|
@gemspecs = Gem.loaded_specs.map { |name,info| Pathname(info.loaded_from) }
|
@@ -733,7 +748,7 @@ EOF
|
|
733
748
|
feature = feature.relative_path_from(path.expand)
|
734
749
|
end
|
735
750
|
fullpath = feature.expand(path)
|
736
|
-
|
751
|
+
|
737
752
|
if fullpath.subpath?(Host.exec_prefix)
|
738
753
|
# Features found in the Ruby installation are put in the
|
739
754
|
# temporary Ruby installation.
|
@@ -863,13 +878,13 @@ EOF
|
|
863
878
|
end
|
864
879
|
sb.createfile(dll, target)
|
865
880
|
end
|
866
|
-
|
881
|
+
|
867
882
|
# Add extra DLLs specified on the command line
|
868
883
|
Ocra.extra_dlls.each do |dll|
|
869
884
|
Ocra.msg "Adding supplied DLL #{dll}"
|
870
885
|
sb.createfile(Host.bindir / dll, BINDIR / dll)
|
871
886
|
end
|
872
|
-
|
887
|
+
|
873
888
|
# Add gemspec files
|
874
889
|
@gemspecs = sort_uniq(@gemspecs)
|
875
890
|
@gemspecs.each do |gemspec|
|
@@ -926,7 +941,7 @@ EOF
|
|
926
941
|
bytes_needed = bytes_needed_buffer.unpack("I")[0]
|
927
942
|
break if bytes_needed <= module_handle_buffer.size
|
928
943
|
end
|
929
|
-
|
944
|
+
|
930
945
|
handles = module_handle_buffer.unpack("I*")
|
931
946
|
handles.select { |handle| handle > 0 }.map do |handle|
|
932
947
|
str = "\x00" * 256
|
@@ -1047,10 +1062,10 @@ EOF
|
|
1047
1062
|
result = system(*iscc_cmd)
|
1048
1063
|
if not result
|
1049
1064
|
case $?
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1065
|
+
when 0 then raise RuntimeError.new("ISCC reported success, but system reported error?")
|
1066
|
+
when 1 then raise RuntimeError.new("ISCC reports invalid command line parameters")
|
1067
|
+
when 2 then raise RuntimeError.new("ISCC reports that compilation failed")
|
1068
|
+
else raise RuntimeError.new("ISCC failed to run. Is the InnoSetup directory in your PATH?")
|
1054
1069
|
end
|
1055
1070
|
end
|
1056
1071
|
rescue Exception => e
|
@@ -1120,9 +1135,9 @@ EOF
|
|
1120
1135
|
def showtempdir(x)
|
1121
1136
|
x.to_s.gsub(TEMPDIR_ROOT, "<tempdir>")
|
1122
1137
|
end
|
1123
|
-
|
1138
|
+
|
1124
1139
|
end # class OcraBuilder
|
1125
|
-
|
1140
|
+
|
1126
1141
|
end # module Ocra
|
1127
1142
|
|
1128
1143
|
if File.basename(__FILE__) == File.basename($0)
|
@@ -1132,7 +1147,7 @@ if File.basename(__FILE__) == File.basename($0)
|
|
1132
1147
|
if not Ocra.files.first.exist?
|
1133
1148
|
Ocra.fatal_error "#{Ocra.files[0]} was not found!"
|
1134
1149
|
end
|
1135
|
-
|
1150
|
+
|
1136
1151
|
at_exit do
|
1137
1152
|
if $!.nil? or $!.kind_of?(SystemExit)
|
1138
1153
|
Ocra.build_exe
|
data/lib/ocra.rb
CHANGED
data/share/ocra/edicon.exe
CHANGED
Binary file
|
data/share/ocra/stub.exe
CHANGED
Binary file
|
data/share/ocra/stubw.exe
CHANGED
Binary file
|
data/test/test_ocra.rb
CHANGED
@@ -9,7 +9,7 @@ begin
|
|
9
9
|
gem 'win32-api', '>=1.2.0'
|
10
10
|
require "win32/api"
|
11
11
|
$have_win32_api = true
|
12
|
-
rescue LoadError
|
12
|
+
rescue LoadError
|
13
13
|
$have_win32_api = false
|
14
14
|
end
|
15
15
|
|
@@ -18,7 +18,7 @@ include FileUtils
|
|
18
18
|
class TestOcra < Test::Unit::TestCase
|
19
19
|
|
20
20
|
# Default arguments for invoking OCRA when running tests.
|
21
|
-
DefaultArgs = [ '--no-lzma' ]
|
21
|
+
DefaultArgs = [ '--no-lzma', '--verbose' ]
|
22
22
|
DefaultArgs << "--quiet" unless ENV["OCRA_VERBOSE_TEST"]
|
23
23
|
DefaultArgs.push '--no-autodll' if not $have_win32_api
|
24
24
|
|
@@ -42,6 +42,11 @@ class TestOcra < Test::Unit::TestCase
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
def system(*args)
|
46
|
+
puts args.join(" ") if ENV["OCRA_VERBOSE_TEST"]
|
47
|
+
Kernel.system(*args)
|
48
|
+
end
|
49
|
+
|
45
50
|
attr_reader :ocra
|
46
51
|
|
47
52
|
def initialize(*args)
|
@@ -140,7 +145,7 @@ class TestOcra < Test::Unit::TestCase
|
|
140
145
|
end
|
141
146
|
end
|
142
147
|
end
|
143
|
-
|
148
|
+
|
144
149
|
# Test that executables can writing a file to the current working
|
145
150
|
# directory.
|
146
151
|
def test_writefile
|
@@ -188,7 +193,7 @@ class TestOcra < Test::Unit::TestCase
|
|
188
193
|
# be automatically included and usable in packaged app
|
189
194
|
def test_gemfile
|
190
195
|
with_fixture 'bundlerusage' do
|
191
|
-
assert system("ruby", ocra, "bundlerusage.rb", "Gemfile", *(DefaultArgs + ["--no-dep-run", "--add-all-core", "--gemfile", "Gemfile"]))
|
196
|
+
assert system("ruby", ocra, "bundlerusage.rb", "Gemfile", *(DefaultArgs + ["--no-dep-run", "--add-all-core", "--gemfile", "Gemfile", "--gem-all"]))
|
192
197
|
pristine_env "bundlerusage.exe" do
|
193
198
|
assert system("bundlerusage.exe")
|
194
199
|
end
|
@@ -288,7 +293,7 @@ class TestOcra < Test::Unit::TestCase
|
|
288
293
|
end
|
289
294
|
end
|
290
295
|
end
|
291
|
-
|
296
|
+
|
292
297
|
# Test that the standard output from a script can be redirected to a
|
293
298
|
# file.
|
294
299
|
def test_stdout_redir
|
@@ -327,7 +332,7 @@ class TestOcra < Test::Unit::TestCase
|
|
327
332
|
return if gdbmdll.nil?
|
328
333
|
args.push '--dll', File.basename(gdbmdll)
|
329
334
|
end
|
330
|
-
|
335
|
+
|
331
336
|
with_fixture 'gdbmdll' do
|
332
337
|
assert system("ruby", ocra, "gdbmdll.rb", *args)
|
333
338
|
with_env 'PATH' => '.' do
|
@@ -449,7 +454,7 @@ class TestOcra < Test::Unit::TestCase
|
|
449
454
|
end
|
450
455
|
end
|
451
456
|
end
|
452
|
-
|
457
|
+
|
453
458
|
# Should pick up file when script modifies $LOAD_PATH by adding
|
454
459
|
# dirname of script.
|
455
460
|
def test_loadpath_mangling_dirname
|
@@ -506,7 +511,7 @@ class TestOcra < Test::Unit::TestCase
|
|
506
511
|
end
|
507
512
|
end
|
508
513
|
end
|
509
|
-
|
514
|
+
|
510
515
|
# Test that ocra.rb accepts --version and outputs the version number.
|
511
516
|
def test_version
|
512
517
|
assert_match(/^Ocra \d+(\.\d)+(.[a-z]+\d+)?$/, `ruby \"#{ocra}\" --version`)
|
@@ -685,14 +690,14 @@ class TestOcra < Test::Unit::TestCase
|
|
685
690
|
# Test that the --chdir-first option changes directory before exe starts script
|
686
691
|
def test_chdir_first
|
687
692
|
with_fixture 'writefile' do
|
688
|
-
# Control test; make sure the writefile script works as expected under default options
|
693
|
+
# Control test; make sure the writefile script works as expected under default options
|
689
694
|
assert system("ruby", ocra, "writefile.rb", *(DefaultArgs))
|
690
695
|
pristine_env "writefile.exe" do
|
691
696
|
assert !File.exist?("output.txt")
|
692
697
|
assert system("writefile.exe")
|
693
698
|
assert File.exist?("output.txt")
|
694
699
|
end
|
695
|
-
|
700
|
+
|
696
701
|
assert system("ruby", ocra, "writefile.rb", *(DefaultArgs + ["--chdir-first"]))
|
697
702
|
pristine_env "writefile.exe" do
|
698
703
|
assert !File.exist?("output.txt")
|
@@ -717,6 +722,7 @@ class TestOcra < Test::Unit::TestCase
|
|
717
722
|
end
|
718
723
|
|
719
724
|
def test_explicit_in_exec_prefix
|
725
|
+
return unless File.directory?(RbConfig::CONFIG["exec_prefix"] + "/include")
|
720
726
|
path = File.join(RbConfig::CONFIG["exec_prefix"], "include", "**", "*.h")
|
721
727
|
number_of_files = Dir[path].size
|
722
728
|
assert number_of_files > 3
|
@@ -728,5 +734,20 @@ class TestOcra < Test::Unit::TestCase
|
|
728
734
|
end
|
729
735
|
end
|
730
736
|
end
|
731
|
-
|
737
|
+
|
738
|
+
# Hello world test. Test that we can build and run executables.
|
739
|
+
def test_nonexistent_temp
|
740
|
+
with_fixture 'helloworld' do
|
741
|
+
assert system("ruby", ocra, "helloworld.rb", *DefaultArgs)
|
742
|
+
assert File.exist?("helloworld.exe")
|
743
|
+
pristine_env "helloworld.exe" do
|
744
|
+
with_env "TEMP" => "c:\\thispathdoesnotexist12345", "TMP" => "c:\\thispathdoesnotexist12345" do
|
745
|
+
assert File.exist?("helloworld.exe")
|
746
|
+
system("helloworld.exe 2>NUL")
|
747
|
+
assert File.exist?("helloworld.exe")
|
748
|
+
end
|
749
|
+
end
|
750
|
+
end
|
751
|
+
end
|
752
|
+
|
732
753
|
end
|
metadata
CHANGED
@@ -1,40 +1,67 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ocra
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 3
|
9
|
+
- 1
|
10
|
+
version: 1.3.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Lars Christensen
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
+
|
18
|
+
date: 2013-03-29 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rdoc
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 19
|
29
|
+
segments:
|
30
|
+
- 3
|
31
|
+
- 10
|
32
|
+
version: "3.10"
|
22
33
|
type: :development
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: hoe
|
23
37
|
prerelease: false
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 13
|
44
|
+
segments:
|
45
|
+
- 3
|
46
|
+
- 5
|
47
|
+
version: "3.5"
|
48
|
+
type: :development
|
49
|
+
version_requirements: *id002
|
50
|
+
description: |-
|
51
|
+
OCRA (One-Click Ruby Application) builds Windows executables from Ruby
|
52
|
+
source code. The executable is a self-extracting, self-running
|
53
|
+
executable that contains the Ruby interpreter, your source code and
|
54
|
+
any additionally needed ruby libraries or DLL.
|
29
55
|
email: larsch@belunktum.dk
|
30
|
-
executables:
|
56
|
+
executables:
|
31
57
|
- ocra
|
32
58
|
extensions: []
|
33
|
-
|
59
|
+
|
60
|
+
extra_rdoc_files:
|
34
61
|
- History.txt
|
35
62
|
- Manifest.txt
|
36
63
|
- README.rdoc
|
37
|
-
files:
|
64
|
+
files:
|
38
65
|
- History.txt
|
39
66
|
- Manifest.txt
|
40
67
|
- README.rdoc
|
@@ -47,32 +74,39 @@ files:
|
|
47
74
|
- test/test_ocra.rb
|
48
75
|
- lib/ocra.rb
|
49
76
|
- .gemtest
|
50
|
-
homepage: http://ocra.rubyforge.org
|
77
|
+
homepage: http://ocra.rubyforge.org
|
51
78
|
licenses: []
|
79
|
+
|
52
80
|
post_install_message:
|
53
|
-
rdoc_options:
|
81
|
+
rdoc_options:
|
54
82
|
- --main
|
55
83
|
- README.rdoc
|
56
|
-
require_paths:
|
84
|
+
require_paths:
|
57
85
|
- lib
|
58
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
87
|
none: false
|
60
|
-
requirements:
|
61
|
-
- -
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
|
64
|
-
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
version: "0"
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
96
|
none: false
|
66
|
-
requirements:
|
67
|
-
- -
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
hash: 3
|
101
|
+
segments:
|
102
|
+
- 0
|
103
|
+
version: "0"
|
70
104
|
requirements: []
|
105
|
+
|
71
106
|
rubyforge_project: ocra
|
72
|
-
rubygems_version: 1.8.
|
107
|
+
rubygems_version: 1.8.24
|
73
108
|
signing_key:
|
74
109
|
specification_version: 3
|
75
|
-
summary:
|
76
|
-
source code"
|
77
|
-
test_files:
|
110
|
+
summary: OCRA (One-Click Ruby Application) builds Windows executables from Ruby
|
78
111
|
source code
|
112
|
+
test_files:
|
79
113
|
- test/test_ocra.rb
|