Class: GlimmerApplication
- Inherits:
-
Object
- Object
- GlimmerApplication
- Defined in:
- lib/glimmer_application.rb
Constant Summary collapse
- OPERATING_SYSTEMS_SUPPORTED =
["mac", "windows", "linux"]
- TEXT_USAGE =
"Usage: glimmer application.rb\n\nRuns a Glimmer application using JRuby, automatically preloading\nthe glimmer ruby gem and SWT jar dependency.\n\nExample: glimmer hello_world.rb\nThis runs the Glimmer application hello_world.rb\n"
Class Method Summary collapse
- .jruby_command_options ⇒ Object
- .jruby_os_specific_options ⇒ Object
- .launch(application) ⇒ Object
- .platform_os ⇒ Object
- .swt_jar_file ⇒ Object
Instance Method Summary collapse
- #display_usage ⇒ Object
-
#initialize(application_path) ⇒ GlimmerApplication
constructor
A new instance of GlimmerApplication.
- #launch_application ⇒ Object
- #start ⇒ Object
Constructor Details
#initialize(application_path) ⇒ GlimmerApplication
Returns a new instance of GlimmerApplication.
37 38 39 |
# File 'lib/glimmer_application.rb', line 37 def initialize(application_path) @application_path = application_path end |
Class Method Details
.jruby_command_options ⇒ Object
28 29 30 |
# File 'lib/glimmer_application.rb', line 28 def "#{jruby_os_specific_options} -J-classpath \"#{swt_jar_file}\"" end |
.jruby_os_specific_options ⇒ Object
24 25 26 |
# File 'lib/glimmer_application.rb', line 24 def OS.mac? ? "-J-XstartOnFirstThread" : "" end |
.launch(application) ⇒ Object
32 33 34 |
# File 'lib/glimmer_application.rb', line 32 def launch(application) system "jruby #{jruby_command_options} -r glimmer -S #{application}" end |
.platform_os ⇒ Object
16 17 18 |
# File 'lib/glimmer_application.rb', line 16 def platform_os OPERATING_SYSTEMS_SUPPORTED.detect {|os| OS.send("#{os}?")} end |
.swt_jar_file ⇒ Object
20 21 22 |
# File 'lib/glimmer_application.rb', line 20 def swt_jar_file @swt_jar_file ||= File.(File.join(__FILE__, '..', '..', 'vendor', 'swt', platform_os, 'swt.jar')) end |
Instance Method Details
#display_usage ⇒ Object
54 55 56 |
# File 'lib/glimmer_application.rb', line 54 def display_usage puts TEXT_USAGE end |
#launch_application ⇒ Object
49 50 51 52 |
# File 'lib/glimmer_application.rb', line 49 def launch_application puts "Launching Glimmer Application: #{@application_path}" self.class.launch(@application_path) end |
#start ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/glimmer_application.rb', line 41 def start if @application_path launch_application else display_usage end end |