ocra 1.3.1 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 1.3.2
2
+
3
+ * Refactored Gemfile handling for better compatibility with Ruby
4
+ version.
5
+
1
6
  === 1.3.1
2
7
 
3
8
  * Now includes $LOADED_FEATURES even when script is not run to check
data/README.rdoc CHANGED
@@ -16,7 +16,7 @@ any additionally needed ruby libraries or DLL.
16
16
  == FEATURES
17
17
 
18
18
  * LZMA Compression (optional, default on)
19
- * Ruby 1.9 support
19
+ * Ruby 1.8.7, 1.9.3 and 2.0.0 support
20
20
  * Both windowed/console mode supported
21
21
  * Includes gems based on usage, or from a Bundler Gemfile
22
22
 
@@ -153,9 +153,8 @@ Executable options:
153
153
 
154
154
  * Windows
155
155
 
156
- * Working Ruby installation, tested with:
157
- * One-Click Installer (187_27_rc2)
158
- * RubyInstaller (1.8.7p299, 1.9.1p249, 1.9.2p0)
156
+ * Working Ruby installation. Ocra is tested with RubyInstaller
157
+ 1.8.7p374, 1.9.3p545, and 2.0.0p481 (32 and 64 bit).
159
158
 
160
159
  * MinGW Installation (when working with the source code only)
161
160
 
@@ -432,8 +431,8 @@ windowed applications (without console window) from .rbw-files.
432
431
  Ruby on Windows provides two executables: ruby.exe is a console mode
433
432
  application and rubyw.exe is a windowed application which does not
434
433
  bring up a console window when launched using the Windows Explorer.
435
- By default, or if the "<tt>--console</tt>" option is used, OCRA will use
436
- the console runtime (rubyw.exe). OCRA will automatically select the
434
+ By default, or if the "<tt>--console</tt>" option is used, OCRA will
435
+ use the console runtime (ruby.exe). OCRA will automatically select the
437
436
  windowed runtime when your script has the ".rbw" extension, or if you
438
437
  specify the "<tt>--windows</tt>" command line option.
439
438
 
data/Rakefile CHANGED
@@ -3,12 +3,13 @@
3
3
  require 'rubygems'
4
4
  require 'hoe'
5
5
 
6
- spec = Hoe.spec 'ocra' do |spec|
7
- spec.author = "Lars Christensen"
8
- spec.email = "larsch@belunktum.dk"
9
- spec.readme_file = 'README.rdoc'
10
- spec.extra_rdoc_files = ['README.rdoc']
6
+ Hoe.plugin :minitest
7
+
8
+ spec = Hoe.spec 'ocra' do
9
+ developer "Lars Christensen", "larsch@belunktum.dk"
10
+ license "MIT"
11
11
  end
12
+
12
13
  spec.urls.each { |url| url.chomp! }
13
14
 
14
15
  task :build_stub do
data/bin/ocra CHANGED
@@ -175,7 +175,7 @@ module Ocra
175
175
  a.sort.inject([]) { |r, e| r.last == e ? r : r << e }
176
176
  end
177
177
 
178
- VERSION = "1.3.1"
178
+ VERSION = "1.3.2"
179
179
 
180
180
  IGNORE_MODULES = /^enumerator.so$/
181
181
 
@@ -545,7 +545,7 @@ EOF
545
545
  # file from a gem path.
546
546
  def Ocra.find_gem_files(features)
547
547
  features_from_gems = []
548
- gems = []
548
+ gems = {}
549
549
 
550
550
  # If a Bundler Gemfile was provided, add all gems it specifies
551
551
  if Ocra.gemfile
@@ -562,7 +562,7 @@ EOF
562
562
  ENV['BUNDLE_GEMFILE'] = Ocra.gemfile
563
563
  Bundler.load.specs.each do |spec|
564
564
  Ocra.verbose_msg "From Gemfile, adding gem #{spec.full_name}"
565
- gems << [Pathname(spec.base_dir), spec.full_name]
565
+ gems[spec.name] ||= spec
566
566
  end
567
567
 
568
568
  unless gems.any?{|dir, name| name =~ /^bundler-[.0-9]+/}
@@ -570,34 +570,46 @@ EOF
570
570
  Ocra.verbose_msg "From Gemfile, forcing inclusion of bundler gem itself"
571
571
  bundler_spec = Gem.loaded_specs["bundler"]
572
572
  bundler_spec or Ocra.fatal_error "Unable to locate bundler gem"
573
- gems << [Pathname(bundler_spec.base_dir), bundler_spec.full_name]
573
+ gems["bundler"] ||= spec
574
574
  end
575
575
  end
576
576
 
577
577
  if defined?(Gem)
578
+ # Include Gems that are loaded
579
+ Gem.loaded_specs.each { |gemname, spec| gems[gemname] ||= spec }
580
+ # Fall back to gem detection (loaded_specs are not population on
581
+ # all Ruby versions)
578
582
  features.each do |feature|
583
+ # Detect load path unless absolute
579
584
  if not feature.absolute?
580
585
  feature = find_load_path(Pathname($:), feature)
581
586
  next if feature.nil? # Could be enumerator.so
582
587
  end
588
+ # Skip if found in known Gem dir
589
+ if gems.find { |gem, spec| feature.subpath?(spec.gem_dir) }
590
+ features_from_gems << feature
591
+ next
592
+ end
583
593
  gempaths = Pathname(Gem.path)
584
594
  gempaths.each do |gempath|
585
595
  geminstallpath = Pathname(gempath) / "gems"
586
596
  if feature.subpath?(geminstallpath)
587
597
  gemlocalpath = feature.relative_path_from(geminstallpath)
588
598
  fullgemname = gemlocalpath.path.split('/').first
589
- gems << [gempath, fullgemname]
590
- features_from_gems << feature
599
+ gemspecpath = gempath / 'specifications' / "#{fullgemname}.gemspec"
600
+ if spec = Gem::Specification.load(gemspecpath)
601
+ gems[spec.name] ||= spec
602
+ features_from_gems << feature
603
+ else
604
+ Ocra.warn "Failed to load gemspec for '#{fullgemname}'"
605
+ end
591
606
  end
592
607
  end
593
608
  end
594
609
 
595
- gems = sort_uniq(gems)
596
610
  gem_files = []
597
- gems.each do |gempath, fullgemname|
598
- gemspecpath = gempath / 'specifications' / "#{fullgemname}.gemspec"
599
- @gemspecs << gemspecpath
600
- spec = Gem::Specification.load(gemspecpath)
611
+ gems.each do |gemname, spec|
612
+ @gemspecs << Pathname(spec.spec_file) if File.exist?(spec.spec_file)
601
613
 
602
614
  # Determine which set of files to include for this particular gem
603
615
  include = [ :loaded, :files ]
@@ -638,7 +650,7 @@ EOF
638
650
 
639
651
  Ocra.msg "Detected gem #{spec.full_name} (#{include.join(', ')})"
640
652
 
641
- gem_root = gempath / "gems" / spec.full_name
653
+ gem_root = Pathname(spec.gem_dir)
642
654
  gem_root_files = nil
643
655
  files = []
644
656
 
data/lib/ocra.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Ocra
2
- VERSION = '1.3.1'
2
+ VERSION = '1.3.2'
3
3
  end
Binary file
data/share/ocra/stub.exe CHANGED
Binary file
data/share/ocra/stubw.exe CHANGED
Binary file
data/test/test_ocra.rb CHANGED
@@ -1,4 +1,5 @@
1
- require "test/unit"
1
+ require "minitest/autorun"
2
+
2
3
  require "tmpdir"
3
4
  require "fileutils"
4
5
  require "rbconfig"
@@ -15,7 +16,7 @@ end
15
16
 
16
17
  include FileUtils
17
18
 
18
- class TestOcra < Test::Unit::TestCase
19
+ class TestOcra < MiniTest::Test
19
20
 
20
21
  # Default arguments for invoking OCRA when running tests.
21
22
  DefaultArgs = [ '--no-lzma', '--verbose' ]
metadata CHANGED
@@ -1,67 +1,82 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ocra
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.3.2
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 1
10
- version: 1.3.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Lars Christensen
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-03-29 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rdoc
12
+ date: 2014-07-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: minitest
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '5.3'
22
+ type: :development
22
23
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
24
25
  none: false
25
- requirements:
26
+ requirements:
26
27
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 19
29
- segments:
30
- - 3
31
- - 10
32
- version: "3.10"
28
+ - !ruby/object:Gem::Version
29
+ version: '5.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rdoc
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '4.0'
33
38
  type: :development
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: hoe
37
39
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
39
41
  none: false
40
- requirements:
42
+ requirements:
41
43
  - - ~>
42
- - !ruby/object:Gem::Version
43
- hash: 13
44
- segments:
45
- - 3
46
- - 5
47
- version: "3.5"
44
+ - !ruby/object:Gem::Version
45
+ version: '4.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: hoe
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '3.12'
48
54
  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.
55
- email: larsch@belunktum.dk
56
- executables:
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '3.12'
62
+ description: ! 'OCRA (One-Click Ruby Application) builds Windows executables from
63
+ Ruby
64
+
65
+ source code. The executable is a self-extracting, self-running
66
+
67
+ executable that contains the Ruby interpreter, your source code and
68
+
69
+ any additionally needed ruby libraries or DLL.'
70
+ email:
71
+ - larsch@belunktum.dk
72
+ executables:
57
73
  - ocra
58
74
  extensions: []
59
-
60
- extra_rdoc_files:
75
+ extra_rdoc_files:
61
76
  - History.txt
62
77
  - Manifest.txt
63
78
  - README.rdoc
64
- files:
79
+ files:
65
80
  - History.txt
66
81
  - Manifest.txt
67
82
  - README.rdoc
@@ -75,38 +90,32 @@ files:
75
90
  - lib/ocra.rb
76
91
  - .gemtest
77
92
  homepage: http://ocra.rubyforge.org
78
- licenses: []
79
-
93
+ licenses:
94
+ - MIT
80
95
  post_install_message:
81
- rdoc_options:
96
+ rdoc_options:
82
97
  - --main
83
98
  - README.rdoc
84
- require_paths:
99
+ require_paths:
85
100
  - lib
86
- required_ruby_version: !ruby/object:Gem::Requirement
101
+ required_ruby_version: !ruby/object:Gem::Requirement
87
102
  none: false
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
103
+ requirements:
104
+ - - ! '>='
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
108
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
109
+ requirements:
110
+ - - ! '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
104
113
  requirements: []
105
-
106
- rubyforge_project: ocra
107
- rubygems_version: 1.8.24
114
+ rubyforge_project:
115
+ rubygems_version: 1.8.28
108
116
  signing_key:
109
117
  specification_version: 3
110
- summary: OCRA (One-Click Ruby Application) builds Windows executables from Ruby
111
118
  source code
112
- test_files:
119
+ summary: OCRA (One-Click Ruby Application) builds Windows executables from Ruby source
120
+ code
121
+ test_files:
113
122
  - test/test_ocra.rb