releasy 0.2.0 → 0.2.2

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.
Files changed (60) hide show
  1. data/.yardopts +3 -1
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +114 -41
  4. data/Rakefile +1 -1
  5. data/bin/7z_sfx_LICENSE.txt +56 -0
  6. data/bin/7za.exe +0 -0
  7. data/bin/7za_exe_LICENSE.txt +29 -0
  8. data/lib/releasy.rb +4 -1
  9. data/lib/releasy/builders/builder.rb +14 -6
  10. data/lib/releasy/builders/ocra_builder.rb +4 -2
  11. data/lib/releasy/builders/osx_app.rb +18 -6
  12. data/lib/releasy/builders/source.rb +9 -2
  13. data/lib/releasy/builders/windows_folder.rb +12 -3
  14. data/lib/releasy/builders/windows_installer.rb +2 -3
  15. data/lib/releasy/builders/windows_standalone.rb +13 -3
  16. data/lib/releasy/builders/windows_wrapped.rb +14 -4
  17. data/lib/releasy/cli/install_sfx.rb +1 -1
  18. data/lib/releasy/deployers.rb +1 -1
  19. data/lib/releasy/deployers/deployer.rb +22 -1
  20. data/lib/releasy/deployers/github.rb +31 -124
  21. data/lib/releasy/deployers/local.rb +55 -0
  22. data/lib/releasy/deployers/rsync.rb +59 -0
  23. data/lib/releasy/mixins/has_packagers.rb +1 -1
  24. data/lib/releasy/mixins/utilities.rb +34 -0
  25. data/lib/releasy/packagers/dmg.rb +17 -0
  26. data/lib/releasy/packagers/exe.rb +18 -1
  27. data/lib/releasy/packagers/packager.rb +22 -6
  28. data/lib/releasy/packagers/seven_zip.rb +17 -0
  29. data/lib/releasy/packagers/tar_bzip2.rb +19 -0
  30. data/lib/releasy/packagers/tar_gzip.rb +19 -0
  31. data/lib/releasy/packagers/tar_packager.rb +2 -1
  32. data/lib/releasy/packagers/zip.rb +17 -0
  33. data/lib/releasy/project.rb +45 -4
  34. data/lib/releasy/version.rb +1 -1
  35. data/releasy.gemspec +1 -1
  36. data/test/releasy/builders/data/Main.rb +3 -2
  37. data/test/releasy/builders/helpers/builder_helper.rb +35 -0
  38. data/test/releasy/builders/helpers/ocra_builder_helper.rb +31 -0
  39. data/test/releasy/builders/helpers/windows_builder_helper.rb +25 -0
  40. data/test/releasy/builders/osx_app_test.rb +6 -4
  41. data/test/releasy/builders/source_test.rb +7 -4
  42. data/test/releasy/builders/windows_folder_test.rb +3 -1
  43. data/test/releasy/builders/windows_installer_test.rb +6 -4
  44. data/test/releasy/builders/windows_standalone_test.rb +6 -4
  45. data/test/releasy/builders/windows_wrapped_test.rb +3 -1
  46. data/test/releasy/cli/install_sfx_test.rb +1 -1
  47. data/test/releasy/deployers/github_test.rb +30 -32
  48. data/test/releasy/deployers/local_test.rb +93 -0
  49. data/test/releasy/deployers/rsync_test.rb +55 -0
  50. data/test/releasy/integration/source_test.rb +6 -6
  51. data/test/releasy/mixins/utilities_test.rb +50 -0
  52. data/test/releasy/packagers/packager_test.rb +79 -0
  53. data/test/releasy/packagers_test.rb +12 -6
  54. data/test/releasy/project_test.rb +5 -5
  55. data/test/teststrap.rb +6 -0
  56. data/test/yard_test.rb +1 -1
  57. metadata +40 -28
  58. data/lib/releasy/mixins/exec.rb +0 -14
  59. data/test/releasy/builders/ocra_builder_test.rb +0 -37
  60. data/test/releasy/builders/windows_builder_test.rb +0 -26
data/.yardopts CHANGED
@@ -1,4 +1,6 @@
1
1
  --title 'Releasy Documentation'
2
2
  -
3
3
  CHANGELOG.md
4
- LICENSE.txt
4
+ LICENSE.txt
5
+ bin/7za_exe_LICENSE.txt
6
+ bin/7z_sfx_LICENSE.txt
@@ -1,6 +1,15 @@
1
1
  Releasy Change Log
2
2
  ==================
3
3
 
4
+ v0.2.2
5
+ ------
6
+
7
+ * Added new deployers: :rsync and :local
8
+ * Removed 7z installation dependency on Windows (included 7za.exe in gem).
9
+ * Fixes for Ruby 1.8.7
10
+ * :osx_app build - Change directory into application directory before running app.
11
+ * :osx_app build - Add BINARY to list of "fake" encodings.
12
+
4
13
  v0.2.0
5
14
  ------
6
15
 
data/README.md CHANGED
@@ -1,49 +1,32 @@
1
1
  Releasy
2
2
  =======
3
3
 
4
- _Releasy_ automates the release of Ruby applications (name comes from "Release + easy").
5
- By configuring a {Releasy::Project} in your application's rakefile, Releasy can generates a number of Rake tasks for use
6
- when there is a need to build, archive and/or deploy a new version of the application.
7
-
8
- Releasy allows cross-platform releases, relying on OS X or Windows "wrappers" to act as templates.
4
+ _Releasy_ automates the release of Ruby applications for non-Ruby users, such as games or GUI applications.
5
+ By configuring a {Releasy::Project} in your application's Rakefile, Releasy can generate Rake tasks for use
6
+ when there is a need to build, package (archive) and/or deploy a new version of the application.
9
7
 
10
8
  * Author: [Bil Bas (Spooner)](https://github.com/Spooner)
11
9
  * Licence: [MIT](http://www.opensource.org/licenses/mit-license.php)
12
10
  * [Github project](https://github.com/Spooner/releasy)
13
11
  * [Reporting issues](https://github.com/Spooner/releasy/issues)
14
- * Relapse has been tested on Ruby 1.9.3 and 1.8.7 on Windows, Lubuntu and OS X. However, since this is an early version, please ensure that you double-check any releases created by Releasy before publishing them!
15
-
16
- Build types supported
17
- ----------------------
18
-
19
- The project can build one or more release folders:
12
+ * Releasy has been tested on Ruby 1.9.3 and 1.8.7 on Windows, Lubuntu and OS X. However, since this is an early version, please ensure that you double-check any releases created by Releasy before publishing them!
20
13
 
21
- * `:source` - Plain source folder, which can be used by anyone with Ruby already installed.
22
- * `:osx_app` - OS X application bundle (.app) build, requiring a pre-made Ruby OS X wrapper. Note that this only contains binary gems for Gosu, TexPlay and Chipmunk, but will work with applications using any other source gems.
23
- * `:windows_folder` - A folder containing Ruby, application source files and an EXE to run them [creation on Windows only].
24
- * `:windows_wrapped` - A folder containing Ruby, application source files and an EXE to run them, requiring a copy of a RubyInstaller archive [creation on OSX/Linux].
25
- * `:windows_installer` - A regular Windows installer [creation on Windows only and requires InnoSetup to be installed].
26
- * `:windows_standalone` - Standalone EXE file that self-extracts to a temporary directory - slower startup than the other Windows options [creation on Windows only].
27
14
 
28
- Package types supported
29
- -----------------------
15
+ Key features
16
+ ------------
30
17
 
31
- Optionally, release folders can be packaged into an archive using one or more of:
18
+ * Package up Ruby applications (Games, GUI applications, etc.) for non-ruby users.
19
+ * Build OSX application bundle (.app) on any platform.
20
+ * Build Windows executable (.exe) on any platform.
21
+ * Build Windows installer on Windows only.
22
+ * Build, package (compress) and deploy your executables for all platforms from a single rake command ('rake deploy').
32
23
 
33
- * `:dmg` - OS X self-extractor (.dmg - requires `hdiutil` to be installed, so only available on OS X).
34
- * `:exe` - Windows self-extractor (.exe - Includes a 7z decompression module, so not efficient for small releases).
35
- * `:"7z"` - 7Zip format (.7z - Best compression).
36
- * `:tar_bz2` - BZip2 tarball (.tar.bz2).
37
- * `:tar_gz` - GZip tarball (.tar.gz).
38
- * `:zip` - Standard zip format (.zip - Poor compression, but best compatibility).
39
24
 
40
- Deploy types supported
41
- ----------------------
25
+ Installation
26
+ ------------
42
27
 
43
- Optionally, packaged releases can be deployed using one or more of:
28
+ gem install releasy
44
29
 
45
- * `:github` - Upload to Github downloads.
46
- * Others, such as `:dropbox`, when I get around to implementing them.
47
30
 
48
31
  Example
49
32
  -------
@@ -71,13 +54,13 @@ Example
71
54
  # Create a variety of releases, for all platforms.
72
55
  add_build :osx_app do
73
56
  url "com.github.my_application"
74
- wrapper "../osx_app/gosu-mac-wrapper-0.7.41.tar.gz"
57
+ wrapper "wrappers/gosu-mac-wrapper-0.7.41.tar.gz" # Assuming this is where you downloaded this file.
75
58
  icon "media/icon.icns"
76
59
  add_package :tar_gz
77
60
  end
78
61
 
79
62
  add_build :source do
80
- add_package :zip
63
+ add_package :"7z"
81
64
  end
82
65
 
83
66
  add_build :windows_folder do
@@ -93,6 +76,12 @@ Example
93
76
  add_package :zip
94
77
  end
95
78
 
79
+ add_build :windows_wrapped do
80
+ wrapper "wrappers/ruby-1.9.3-p0-i386-mingw32.7z" # Assuming this is where you downloaded this file.
81
+ exclude_tcl_tk
82
+ add_package :zip
83
+ end
84
+
96
85
  add_deploy :github # Upload to a github project.
97
86
  end
98
87
  #>>>
@@ -102,6 +91,8 @@ Example
102
91
  Note: The `windows:folder`, `windows:installer` and `windows:standalone` will be created only if running on Windows.
103
92
  The `windows:wrapped` task will not be created if running on Windows.
104
93
 
94
+ The output from "rake -T" on Windows would be:
95
+
105
96
  rake build # Build My Application 1.4.0
106
97
  rake build:osx # Build all osx
107
98
  rake build:osx:app # Build OS X app
@@ -111,19 +102,99 @@ The `windows:wrapped` task will not be created if running on Windows.
111
102
  rake build:windows:installer # Build windows installer
112
103
  rake deploy # Deploy My Application 1.4.0
113
104
  rake deploy:osx:app:tar_gz:github # github <= osx app .tar.gz
114
- rake deploy:source:zip:github # github <= source .zip
105
+ rake deploy:source:7z:github # github <= source .7z
115
106
  rake deploy:windows:folder:exe:github # github <= windows folder .exe
116
- rake deploy:windows:installer:exe:github # github <= windows installer .zip
107
+ rake deploy:windows:installer:zip:github # github <= windows installer .zip
117
108
  rake generate:images # Generate images
118
109
  rake package # Package My Application 1.4.0
119
110
  rake package:osx:app:tar_gz # Package osx app .tar.gz
120
- rake package:source:zip # Package source .zip
111
+ rake package:source:7z # Package source .7z
121
112
  rake package:windows:folder:exe # Package windows folder .exe
122
113
  rake package:windows:installer:zip # Package windows installer .zip
123
114
 
124
115
  A variety of unlisted tasks are also created, that allow for more control, such as `deploy:github` (Deploy all packages to Github only),
125
116
  `deploy:windows:folder` (deploy all windows folder packages all destinations) or `package:windows` (Package all windows builds).
126
117
 
118
+
119
+ Build types supported
120
+ ----------------------
121
+
122
+ The project can build one or more release folders:
123
+
124
+ * `:source`
125
+ - Plain source folder, which can be used by anyone with Ruby already installed.
126
+ - See {Releasy::Builders::Source}
127
+ * `:osx_app`
128
+ - OS X application bundle (.app) build, requiring a pre-made Ruby OS X wrapper. Note that this only contains binary gems for Gosu, TexPlay and Chipmunk, but will work with applications using any other source gems.
129
+ - See {Releasy::Builders::OsxApp}
130
+ * `:windows_folder`
131
+ - A folder containing Ruby, application source files and an EXE to run them.
132
+ - Available on _Windows only_.
133
+ - See {Releasy::Builders::WindowsFolder}
134
+ * `:windows_wrapped`
135
+ - A folder containing Ruby, application source files and an EXE to run them, requiring a copy of a RubyInstaller archive.
136
+ - Available on _OS X and Linux only_.
137
+ - Creates larger release than other Windows build options.
138
+ - See {Releasy::Builders::WindowsWrapped}
139
+ * `:windows_installer`
140
+ - A Windows installer.
141
+ - Available on _Windows only and requires [InnoSetup](http://www.jrsoftware.org/isinfo.php) to be installed_.
142
+ - See {Releasy::Builders::WindowsInstaller}
143
+ * `:windows_standalone`
144
+ - Standalone EXE file that self-extracts to a temporary directory, which is the default behaviour for [Ocra](https://github.com/larsch/ocra).
145
+ - Available on _Windows only_.
146
+ - Slower startup than the other Windows build options (up to 2s slower).
147
+ - See {Releasy::Builders::WindowsStandalone}
148
+
149
+ See {Releasy::Project#add_build}
150
+
151
+
152
+ Package types supported
153
+ -----------------------
154
+
155
+ Optionally, release folders can be packaged into an archive using one or more of:
156
+
157
+ * `:"7z"`
158
+ - 7Zip format (.7z - Best compression).
159
+ - See {Releasy::Packagers::SevenZip}
160
+ * `:dmg`
161
+ - OS X self-extractor (.dmg - requires `hdiutil` to be installed, so only available on OS X).
162
+ - Available on OS X only (`hdiutils` command required).
163
+ - See {Releasy::Packagers::Dmg}
164
+ * `:exe`
165
+ - Windows self-extractor (.exe - Includes a 7z decompression module, so not efficient for small releases).
166
+ - See {Releasy::Packagers::Exe}
167
+ * `:tar_bz2`
168
+ - Bzip2 tarball (.tar.bz2).
169
+ - See {Releasy::Packagers::TarBzip2}
170
+ * `:tar_gz`
171
+ - Gzip tarball (.tar.gz).
172
+ - See {Releasy::Packagers::TarGzip}
173
+ * `:zip`
174
+ - Standard zip format (.zip - Poor compression, but best compatibility).
175
+ - See {Releasy::Packagers::Zip}
176
+
177
+ See {Releasy::Mixins::HasPackagers#add_package}
178
+
179
+
180
+ Deploy types supported
181
+ ----------------------
182
+
183
+ Optionally, packaged releases can be deployed using one or more of:
184
+
185
+ * `:github`
186
+ - Upload to a Github project's downloads page.
187
+ - See {Releasy::Deployers::Github}
188
+ * `:local`
189
+ - Copy files locally, for example into a local web server or dropbox folder.
190
+ - See {Releasy::Deployers::Local}
191
+ * `:rsync`
192
+ - Upload to remote server with rsync (requires 'rsync' command be installed).
193
+ - See {Releasy::Deployers::Rsync}
194
+
195
+ See {Releasy::Project#add_deploy}
196
+
197
+
127
198
  CLI Commands
128
199
  ------------
129
200
 
@@ -135,7 +206,7 @@ Releasy also provides some supplementary commands:
135
206
  External Requirements
136
207
  ---------------------
137
208
 
138
- ### 7-Zip
209
+ ### 7-Zip (OS X/Linux only - Windows `7za` executable included in Windows)
139
210
 
140
211
  The [7z](http://www.7-zip.org) command must be installed on your system for Releasy to work:
141
212
 
@@ -147,9 +218,9 @@ The [7z](http://www.7-zip.org) command must be installed on your system for Rele
147
218
 
148
219
  <pre>sudo apt-get install p7zip-full</pre>
149
220
 
150
- - Installing on Windows (or other OS)
221
+ - Installing on other OS
151
222
 
152
- * [Download 7-Zip](http://www.7-zip.org/download.html) - Either the full version or the command line version will work with Releasy.
223
+ * [Download 7-Zip](http://www.7-zip.org/download.html)
153
224
 
154
225
  ### To build `:windows_installer` release (Windows only)
155
226
 
@@ -163,6 +234,8 @@ The [7z](http://www.7-zip.org) command must be installed on your system for Rele
163
234
 
164
235
  [libgosu app wrapper](http://www.libgosu.org/downloads/). Latest version of the OS X-compatible wrapper is "gosu-mac-wrapper-0.7.41.tar.gz" which uses Ruby 1.9.2 and includes some binary gems: Gosu, Chipmunk and TexPlay.
165
236
 
237
+ Warning: "gosu-mac-0.7.41.tar.gz" is NOT the complete OS X app wrapper, but rather just the Gosu gem pre-compiled for OS X!
238
+
166
239
  Credits
167
240
  -------
168
241
 
@@ -175,5 +248,5 @@ Credits
175
248
  Third Party Assets included
176
249
  ---------------------------
177
250
 
178
- * bin/7z.sfx - Windows [7z 9.20](http://www.7-zip.org) self-extractor module, which can be installed using `releasy install-sfx` [License: [GNU LGPL](http://www.7-zip.org/license.txt)]
179
-
251
+ * bin/7z.sfx - Windows [7-ZIP](http://www.7-zip.org) self-extractor module, which can be installed using `releasy install-sfx` [License: [GNU LGPL](http://www.7-zip.org/license.txt)]
252
+ * bin/7za.exe - Windows [7-ZIP](http://www.7-zip.org) CLI executable.
data/Rakefile CHANGED
@@ -17,7 +17,7 @@ task :test do
17
17
  Rake::TestTask.new do |t|
18
18
  t.libs << "test"
19
19
  t.pattern = "test/**/*_test.rb"
20
- t.verbose = true
20
+ # t.options = "--verbose" # Add --verbose to run full descriptive list.
21
21
  end
22
22
  end
23
23
 
@@ -0,0 +1,56 @@
1
+ 7-Zip
2
+ ~~~~~
3
+ License for use and distribution
4
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ 7-Zip Copyright (C) 1999-2010 Igor Pavlov.
7
+
8
+ Licenses for files are:
9
+
10
+ 1) 7z.dll: GNU LGPL + unRAR restriction
11
+ 2) All other files: GNU LGPL
12
+
13
+ The GNU LGPL + unRAR restriction means that you must follow both
14
+ GNU LGPL rules and unRAR restriction rules.
15
+
16
+
17
+ Note:
18
+ You can use 7-Zip on any computer, including a computer in a commercial
19
+ organization. You don't need to register or pay for 7-Zip.
20
+
21
+
22
+ GNU LGPL information
23
+ --------------------
24
+
25
+ This library is free software; you can redistribute it and/or
26
+ modify it under the terms of the GNU Lesser General Public
27
+ License as published by the Free Software Foundation; either
28
+ version 2.1 of the License, or (at your option) any later version.
29
+
30
+ This library is distributed in the hope that it will be useful,
31
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
32
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
33
+ Lesser General Public License for more details.
34
+
35
+ You can receive a copy of the GNU Lesser General Public License from
36
+ http://www.gnu.org/
37
+
38
+
39
+ unRAR restriction
40
+ -----------------
41
+
42
+ The decompression engine for RAR archives was developed using source
43
+ code of unRAR program.
44
+ All copyrights to original unRAR code are owned by Alexander Roshal.
45
+
46
+ The license for original unRAR code has the following restriction:
47
+
48
+ The unRAR sources cannot be used to re-create the RAR compression algorithm,
49
+ which is proprietary. Distribution of modified unRAR sources in separate form
50
+ or as a part of other software is permitted, provided that it is clearly
51
+ stated in the documentation and source comments that the code may
52
+ not be used to develop a RAR (WinRAR) compatible archiver.
53
+
54
+
55
+ --
56
+ Igor Pavlov
Binary file
@@ -0,0 +1,29 @@
1
+ 7-Zip Command line version
2
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
3
+ License for use and distribution
4
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5
+
6
+ 7-Zip Copyright (C) 1999-2010 Igor Pavlov.
7
+
8
+ 7za.exe is distributed under the GNU LGPL license
9
+
10
+ Notes:
11
+ You can use 7-Zip on any computer, including a computer in a commercial
12
+ organization. You don't need to register or pay for 7-Zip.
13
+
14
+
15
+ GNU LGPL information
16
+ --------------------
17
+
18
+ This library is free software; you can redistribute it and/or
19
+ modify it under the terms of the GNU Lesser General Public
20
+ License as published by the Free Software Foundation; either
21
+ version 2.1 of the License, or (at your option) any later version.
22
+
23
+ This library is distributed in the hope that it will be useful,
24
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
25
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26
+ Lesser General Public License for more details.
27
+
28
+ You can receive a copy of the GNU Lesser General Public License from
29
+ http://www.gnu.org/
@@ -4,11 +4,14 @@ $LOAD_PATH.unshift File.expand_path("..", __FILE__)
4
4
 
5
5
  # Application release manager.
6
6
  module Releasy
7
- def self.win_platform?; RUBY_PLATFORM =~ /mingw|win32/; end
7
+ def self.win_platform?; !!(RUBY_PLATFORM =~ /mingw|win32/); end
8
8
 
9
9
  # An error caused when Releasy configuration is incorrect or inconsistent.
10
10
  class ConfigError < StandardError; end
11
11
 
12
+ # Failed to find a particular CLI command on the system.
13
+ class CommandNotFoundError < StandardError; end
14
+
12
15
  # Modules used to extend Releasy classes.
13
16
  module Mixins; end
14
17
  end
@@ -1,21 +1,29 @@
1
1
  require "releasy/mixins/has_packagers"
2
- require "releasy/mixins/exec"
2
+ require "releasy/mixins/utilities"
3
3
  require "releasy/mixins/log"
4
4
 
5
5
  module Releasy
6
6
  module Builders
7
7
  # Builds release folders.
8
8
  # @abstract
9
+ #
10
+ # @attr suffix [String] Suffix on the folder generated, after name and version.
9
11
  class Builder
10
12
  include Rake::DSL
11
13
  include Mixins::HasPackagers
12
- include Mixins::Exec
14
+ include Mixins::Utilities
13
15
  include Mixins::Log
14
16
 
15
17
  # @return [Project] that this Builder belongs to.
16
18
  attr_reader :project
17
- # @return [String] Suffix on the folder generated, after name and version.
18
- attr_accessor :folder_suffix
19
+
20
+ attr_reader :suffix
21
+ def suffix=(suffix)
22
+ raise TypeError, "suffix must be a String" unless suffix.is_a? String
23
+ @suffix = suffix
24
+ end
25
+ alias_method :folder_suffix, :suffix
26
+ alias_method :folder_suffix=, :suffix=
19
27
 
20
28
  # @return [Symbol] Type of builder.
21
29
  def type; self.class::TYPE; end
@@ -26,7 +34,7 @@ module Builders
26
34
  def initialize(project)
27
35
  super()
28
36
  @project = project
29
- @folder_suffix = self.class::DEFAULT_FOLDER_SUFFIX
37
+ @suffix = self.class::DEFAULT_FOLDER_SUFFIX
30
38
  setup
31
39
  end
32
40
 
@@ -34,7 +42,7 @@ module Builders
34
42
  # @return [String] Called from the project, but users don't need to know about it.
35
43
  def task_group; type.to_s.split(/_/).first; end
36
44
  # @return [String] Output folder.
37
- def folder; "#{project.folder_base}#{folder_suffix.empty? ? '' : '_'}#{folder_suffix}"; end
45
+ def folder; "#{project.folder_base}#{suffix.empty? ? '' : '_'}#{suffix}"; end
38
46
 
39
47
  protected
40
48
  # Called by {#initalize}
@@ -2,14 +2,16 @@ require "releasy/builders/windows_builder"
2
2
 
3
3
  module Releasy
4
4
  module Builders
5
- # Functionality for a {WindowsBuilder} that use Ocra and runs on Windows.
5
+ # Functionality for a {WindowsBuilder} that use Ocra to build on Windows.
6
+ #
6
7
  # @attr icon [String] Optional filename of icon to show on executable/installer (.ico).
8
+ #
7
9
  # @abstract
8
10
  class OcraBuilder < WindowsBuilder
9
11
  OCRA_COMMAND = "ocra"
10
12
  ICON_EXTENSION = ".ico"
11
13
 
12
- # @return [String] Extra options to send to Ocra (Windows outputs only).
14
+ # @return [String] Extra options to send to Ocra, but they are unlikely to be needed explicitly. '_--no-enc_' is automatically used if {#exclude_encoding} is called and '_--console_' or '_--window_' is used based on {#executable_type}
13
15
  attr_accessor :ocra_parameters
14
16
 
15
17
  def valid_for_platform?; Releasy.win_platform?; end