jrubyfx 0.9.1-java
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/LICENSE +202 -0
- data/README.md +97 -0
- data/bin/jrubyfx-jarify +90 -0
- data/bin/rubyfx-generator +81 -0
- data/lib/jrubyfx.rb +27 -0
- data/lib/jrubyfx/core_ext/border_pane.rb +29 -0
- data/lib/jrubyfx/core_ext/circle.rb +26 -0
- data/lib/jrubyfx/core_ext/column_constraints.rb +41 -0
- data/lib/jrubyfx/core_ext/duration.rb +28 -0
- data/lib/jrubyfx/core_ext/effects.rb +30 -0
- data/lib/jrubyfx/core_ext/file_chooser.rb +60 -0
- data/lib/jrubyfx/core_ext/labeled.rb +24 -0
- data/lib/jrubyfx/core_ext/media_player.rb +23 -0
- data/lib/jrubyfx/core_ext/node.rb +24 -0
- data/lib/jrubyfx/core_ext/observable_value.rb +36 -0
- data/lib/jrubyfx/core_ext/pagination.rb +26 -0
- data/lib/jrubyfx/core_ext/parallel_transition.rb +28 -0
- data/lib/jrubyfx/core_ext/parent.rb +28 -0
- data/lib/jrubyfx/core_ext/path.rb +41 -0
- data/lib/jrubyfx/core_ext/progress_indicator.rb +38 -0
- data/lib/jrubyfx/core_ext/radial_gradient.rb +37 -0
- data/lib/jrubyfx/core_ext/region.rb +39 -0
- data/lib/jrubyfx/core_ext/rotate.rb +37 -0
- data/lib/jrubyfx/core_ext/scene.rb +29 -0
- data/lib/jrubyfx/core_ext/shape.rb +27 -0
- data/lib/jrubyfx/core_ext/stage.rb +77 -0
- data/lib/jrubyfx/core_ext/stop.rb +29 -0
- data/lib/jrubyfx/core_ext/table_view.rb +35 -0
- data/lib/jrubyfx/core_ext/timeline.rb +47 -0
- data/lib/jrubyfx/core_ext/transition.rb +25 -0
- data/lib/jrubyfx/core_ext/xy_chart.rb +53 -0
- data/lib/jrubyfx/dsl.rb +217 -0
- data/lib/jrubyfx/fxml_application.rb +44 -0
- data/lib/jrubyfx/fxml_controller.rb +270 -0
- data/lib/jrubyfx/fxml_module.rb +98 -0
- data/lib/jrubyfx/java_fx_impl.rb +139 -0
- data/lib/jrubyfx/jfx_imports.rb +107 -0
- data/lib/jrubyfx/utils.rb +56 -0
- data/lib/jrubyfx/utils/__ignore_java_stupid_rdoc.rb +24 -0
- data/lib/jrubyfx/utils/common_converters.rb +140 -0
- data/lib/jrubyfx/utils/common_utils.rb +72 -0
- data/lib/jrubyfx/version.rb +4 -0
- data/lib/jrubyfx_tasks.rb +110 -0
- metadata +116 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
=begin
|
2
|
+
JRubyFX - Write JavaFX and FXML in Ruby
|
3
|
+
Copyright (C) 2013 The JRubyFX Team
|
4
|
+
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
you may not use this file except in compliance with the License.
|
7
|
+
You may obtain a copy of the License at
|
8
|
+
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
See the License for the specific language governing permissions and
|
15
|
+
limitations under the License.
|
16
|
+
=end
|
17
|
+
require 'jrubyfx/utils/common_converters'
|
18
|
+
|
19
|
+
module JRubyFX
|
20
|
+
# Several utilities that have no better place to go
|
21
|
+
module Utils
|
22
|
+
# Utilities to manage argument properties for build/with
|
23
|
+
module CommonUtils
|
24
|
+
##
|
25
|
+
# If last argument of the arg list is a hash-like entity (:each_pair)
|
26
|
+
# then this strip off last argument and return it as second return
|
27
|
+
# value.
|
28
|
+
# === Examples:
|
29
|
+
# split_args_from_properties(1, 2, a: 1) #=> [[1,2], {a: 1}]
|
30
|
+
# split_args_from_properties(1, 2) #=> [[1,2], {}]
|
31
|
+
#
|
32
|
+
def split_args_from_properties(*args)
|
33
|
+
if !args.empty? and args.last.respond_to? :each_pair
|
34
|
+
properties = args.pop
|
35
|
+
else
|
36
|
+
properties = {}
|
37
|
+
end
|
38
|
+
|
39
|
+
return args, properties
|
40
|
+
end
|
41
|
+
|
42
|
+
##
|
43
|
+
# Sets the hashmap given on the passed in object as a set of properties,
|
44
|
+
# using converter if necessary.
|
45
|
+
#
|
46
|
+
def populate_properties(obj, properties)
|
47
|
+
properties.each_pair do |name, value|
|
48
|
+
obj.send(name.to_s + '=', *attempt_conversion(obj, name, value))
|
49
|
+
end
|
50
|
+
obj
|
51
|
+
end
|
52
|
+
|
53
|
+
##
|
54
|
+
# Attempts to convert given value to JavaFX equvalent, if any, by calling
|
55
|
+
# obj.name_CommonConverters::ARG_CONVERTER_SUFFING, which is created by
|
56
|
+
# calling CommonConverters.converter_for in your class.
|
57
|
+
# See CommonConverters for current conversions
|
58
|
+
#
|
59
|
+
def attempt_conversion(obj, name, *values)
|
60
|
+
converter_method = name.to_s +
|
61
|
+
JRubyFX::Utils::CommonConverters::ARG_CONVERTER_SUFFIX
|
62
|
+
|
63
|
+
# Each type can create their own converter method to coerce things
|
64
|
+
# like symbols into real values JavaFX likes.
|
65
|
+
if obj.respond_to? converter_method
|
66
|
+
values = obj.__send__ converter_method, *values
|
67
|
+
end
|
68
|
+
values
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
=begin
|
2
|
+
JRubyFX - Write JavaFX and FXML in Ruby
|
3
|
+
Copyright (C) 2013 The JRubyFX Team
|
4
|
+
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
you may not use this file except in compliance with the License.
|
7
|
+
You may obtain a copy of the License at
|
8
|
+
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
See the License for the specific language governing permissions and
|
15
|
+
limitations under the License.
|
16
|
+
=end
|
17
|
+
|
18
|
+
# DO NOT INCLUDE ANY JRUBYFX CODE DIRECTLY!!! THIS IS A RAKEFILE EXTENSION!!!
|
19
|
+
require 'open-uri'
|
20
|
+
require 'rake'
|
21
|
+
require 'tmpdir'
|
22
|
+
|
23
|
+
module JRubyFX
|
24
|
+
# This module contains utilities to jarify an app, and can be used in a rakefile or a running app.
|
25
|
+
module Tasks
|
26
|
+
extend Rake::DSL
|
27
|
+
# Base URL of JRuby-complete.jar download location
|
28
|
+
BASE_URL='http://repository.codehaus.org/org/jruby/jruby-complete'
|
29
|
+
|
30
|
+
##
|
31
|
+
# Downloads the jruby-complete jar file for `jruby_version` and save in
|
32
|
+
# ~/.jruby-jar/jruby-complete.jar unless it already exits. If the jar is
|
33
|
+
# corrupt or an older version, set force to true to delete and re-download
|
34
|
+
def download_jruby(jruby_version, force=false)
|
35
|
+
dist = "#{ENV['HOME']}/.jruby-jar"
|
36
|
+
unless force || (File.exists?("#{dist}/jruby-complete.jar") && File.size("#{dist}/jruby-complete.jar") > 0)
|
37
|
+
mkdir_p dist
|
38
|
+
base_dir = Dir.pwd
|
39
|
+
cd dist
|
40
|
+
puts "JRuby complete jar not found. Downloading... (May take awhile)"
|
41
|
+
download(jruby_version)
|
42
|
+
cd base_dir
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
##
|
47
|
+
# Creates a full jar from the given source pattern (must be a pattern to match
|
48
|
+
# files), with the given main script as the script to launch when the jarfile
|
49
|
+
# is run. The output jar is saved in the `target` dir, which also doubles as a
|
50
|
+
# temporary work dir. `jar` is the executable that makes jars. If `target` is
|
51
|
+
# nill then a random temporary directory is created, and output_jar is the
|
52
|
+
# full path to the jar file to save
|
53
|
+
def jarify_jrubyfx(src="src/*" ,main_script=nil, target="target", output_jar="jrubyfx-app.jar", opts = {})
|
54
|
+
if target_was_nil = target == nil
|
55
|
+
target = Dir.mktmpdir("jrubyfx")
|
56
|
+
final_jar = output_jar
|
57
|
+
output_jar = File.basename output_jar
|
58
|
+
end
|
59
|
+
# set defaults
|
60
|
+
opts = {file_filter: ->(f){true},jar: "jar"}.merge(opts)
|
61
|
+
|
62
|
+
mkdir_p target
|
63
|
+
|
64
|
+
#copy jruby jar file in, along with script and our rb files
|
65
|
+
cp "#{ENV['HOME']}/.jruby-jar/jruby-complete.jar", "#{target}/#{output_jar}"
|
66
|
+
|
67
|
+
#copy source in
|
68
|
+
FileList[src].each do |iv_srv|
|
69
|
+
cp iv_srv, "#{target}/#{File.basename(iv_srv)}" if (main_script == nil || main_script != iv_srv) && opts[:file_filter].call(iv_srv)
|
70
|
+
end
|
71
|
+
cp main_script, "#{target}/jar-bootstrap.rb" unless main_script == nil
|
72
|
+
|
73
|
+
unless File.exists? "#{target}/jar-bootstrap.rb"
|
74
|
+
puts "@"*79
|
75
|
+
puts "@#{"!!!WARNING!!!".center(79-2)}@"
|
76
|
+
puts "@#{"jar-bootstrap.rb NOT FOUND!".center(79-2)}@"
|
77
|
+
puts "@#{"Did you set main_src= or have jar-bootstrap in src= ?".center(79-2)}@"
|
78
|
+
puts "@"*79
|
79
|
+
end
|
80
|
+
|
81
|
+
#copy our libs in
|
82
|
+
FileList["#{File.dirname(__FILE__)}/*"].each do |librb|
|
83
|
+
cp_r librb, target
|
84
|
+
end
|
85
|
+
|
86
|
+
# edit the jar
|
87
|
+
base_dir = Dir.pwd
|
88
|
+
cd target
|
89
|
+
sh "#{opts[:jar]} ufe '#{output_jar}' org.jruby.JarBootstrapMain *"
|
90
|
+
chmod 0775, output_jar
|
91
|
+
cd base_dir
|
92
|
+
|
93
|
+
if target_was_nil
|
94
|
+
mv "#{target}/#{output_jar}", final_jar
|
95
|
+
rm_rf target
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
private
|
100
|
+
def download(version_string) #:nodoc:
|
101
|
+
File.open("jruby-complete.jar","wb") do |f|
|
102
|
+
f.write(open("#{BASE_URL}/#{version_string}/jruby-complete-#{version_string}.jar").read)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
module_function :jarify_jrubyfx
|
107
|
+
module_function :download_jruby
|
108
|
+
module_function :download
|
109
|
+
end
|
110
|
+
end
|
metadata
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jrubyfx
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.9.1
|
6
|
+
platform: java
|
7
|
+
authors:
|
8
|
+
- Patrick Plenefisch
|
9
|
+
- Thomas E Enebo
|
10
|
+
- Hiroshi Nakamura
|
11
|
+
- Hiro Asari
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
date: 2013-01-24 00:00:00.000000000 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: rake
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: !binary |-
|
24
|
+
MA==
|
25
|
+
none: false
|
26
|
+
requirement: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: !binary |-
|
31
|
+
MA==
|
32
|
+
none: false
|
33
|
+
prerelease: false
|
34
|
+
type: :development
|
35
|
+
description: Enables JavaFX with FXML controllers and application in pure ruby
|
36
|
+
email:
|
37
|
+
- simonpatp@gmail.com
|
38
|
+
- tom.enebo@gmail.com
|
39
|
+
- nahi@ruby-lang.org
|
40
|
+
- asari.ruby@gmail.com
|
41
|
+
executables:
|
42
|
+
- rubyfx-generator
|
43
|
+
- jrubyfx-jarify
|
44
|
+
extensions: []
|
45
|
+
extra_rdoc_files: []
|
46
|
+
files:
|
47
|
+
- lib/jrubyfx.rb
|
48
|
+
- lib/jrubyfx_tasks.rb
|
49
|
+
- lib/jrubyfx/dsl.rb
|
50
|
+
- lib/jrubyfx/fxml_application.rb
|
51
|
+
- lib/jrubyfx/fxml_controller.rb
|
52
|
+
- lib/jrubyfx/fxml_module.rb
|
53
|
+
- lib/jrubyfx/java_fx_impl.rb
|
54
|
+
- lib/jrubyfx/jfx_imports.rb
|
55
|
+
- lib/jrubyfx/utils.rb
|
56
|
+
- lib/jrubyfx/version.rb
|
57
|
+
- lib/jrubyfx/core_ext/border_pane.rb
|
58
|
+
- lib/jrubyfx/core_ext/circle.rb
|
59
|
+
- lib/jrubyfx/core_ext/column_constraints.rb
|
60
|
+
- lib/jrubyfx/core_ext/duration.rb
|
61
|
+
- lib/jrubyfx/core_ext/effects.rb
|
62
|
+
- lib/jrubyfx/core_ext/file_chooser.rb
|
63
|
+
- lib/jrubyfx/core_ext/labeled.rb
|
64
|
+
- lib/jrubyfx/core_ext/media_player.rb
|
65
|
+
- lib/jrubyfx/core_ext/node.rb
|
66
|
+
- lib/jrubyfx/core_ext/observable_value.rb
|
67
|
+
- lib/jrubyfx/core_ext/pagination.rb
|
68
|
+
- lib/jrubyfx/core_ext/parallel_transition.rb
|
69
|
+
- lib/jrubyfx/core_ext/parent.rb
|
70
|
+
- lib/jrubyfx/core_ext/path.rb
|
71
|
+
- lib/jrubyfx/core_ext/progress_indicator.rb
|
72
|
+
- lib/jrubyfx/core_ext/radial_gradient.rb
|
73
|
+
- lib/jrubyfx/core_ext/region.rb
|
74
|
+
- lib/jrubyfx/core_ext/rotate.rb
|
75
|
+
- lib/jrubyfx/core_ext/scene.rb
|
76
|
+
- lib/jrubyfx/core_ext/shape.rb
|
77
|
+
- lib/jrubyfx/core_ext/stage.rb
|
78
|
+
- lib/jrubyfx/core_ext/stop.rb
|
79
|
+
- lib/jrubyfx/core_ext/table_view.rb
|
80
|
+
- lib/jrubyfx/core_ext/timeline.rb
|
81
|
+
- lib/jrubyfx/core_ext/transition.rb
|
82
|
+
- lib/jrubyfx/core_ext/xy_chart.rb
|
83
|
+
- lib/jrubyfx/utils/__ignore_java_stupid_rdoc.rb
|
84
|
+
- lib/jrubyfx/utils/common_converters.rb
|
85
|
+
- lib/jrubyfx/utils/common_utils.rb
|
86
|
+
- LICENSE
|
87
|
+
- README.md
|
88
|
+
- bin/rubyfx-generator
|
89
|
+
- bin/jrubyfx-jarify
|
90
|
+
homepage: https://github.com/byteit101/JRubyFX
|
91
|
+
licenses: []
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: !binary |-
|
101
|
+
MA==
|
102
|
+
none: false
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - ">="
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: !binary |-
|
108
|
+
MA==
|
109
|
+
none: false
|
110
|
+
requirements: []
|
111
|
+
rubyforge_project: jrubyfx
|
112
|
+
rubygems_version: 1.8.24
|
113
|
+
signing_key:
|
114
|
+
specification_version: 3
|
115
|
+
summary: JavaFX for JRuby with FXML
|
116
|
+
test_files: []
|