glimmer 0.1.3 → 0.1.4.swt.pre.4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +7 -4
- data/README.markdown +32 -30
- data/Rakefile +5 -24
- data/TODO.md +11 -0
- data/VERSION +1 -1
- data/bin/glimmer +2 -132
- data/glimmer.gemspec +42 -48
- data/lib/command_handlers/models/r_widget.rb +4 -4
- data/samples/contactmanager/contact_manager.rb +17 -8
- data/samples/contactmanager/contact_manager_presenter.rb +6 -2
- data/samples/contactmanager/contact_repository.rb +1 -1
- data/samples/hello_combo.rb +6 -2
- data/samples/hello_list_multi_selection.rb +46 -0
- data/samples/hello_list_single_selection.rb +36 -0
- data/samples/hello_tab.rb +26 -0
- data/samples/hello_world.rb +8 -19
- data/samples/login.rb +1 -3
- data/samples/tictactoe/tic_tac_toe.rb +2 -2
- data/test/glimmer_combo_data_binding_test.rb +1 -1
- data/test/glimmer_constant_test.rb +4 -5
- data/test/glimmer_data_binding_test.rb +1 -1
- data/test/glimmer_list_data_binding_test.rb +1 -1
- data/test/glimmer_listeners_test.rb +1 -1
- data/test/glimmer_shine_data_binding_test.rb +2 -2
- data/test/glimmer_tab_item_test.rb +1 -1
- data/test/glimmer_table_data_binding_test.rb +1 -1
- data/test/glimmer_test.rb +3 -4
- data/test/helper.rb +5 -2
- data/test/observable_model_test.rb +2 -2
- data/test/r_widget_test.rb +1 -1
- data/test/samples/contactmanager/contact_manager_presenter_test.rb +26 -2
- data/test/samples/tictactoe/tic_tac_toe_test.rb +2 -2
- data/test/xml/glimmer_xml_test.rb +2 -2
- metadata +124 -130
- data/.rvmrc +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0c2d8ed17928ac65a3760bbbc43fb7dafb718bb500116e4de2f2c355311bdc32
|
4
|
+
data.tar.gz: a79c62bbc5cbbdabe7882cf8241f6c76fcd9aaed183c407528a7142c141853ff
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7e26a2ce37f22ff29b225102d69b17e948931ef0d7786702ec49e6bed5f9d20bb3ef272283edae340e71bc9a193993c98640960b753eebb32db42b9a5c384937
|
7
|
+
data.tar.gz: d07a82c549e2d89cafd96b95429d4c9d07c1ae189e725c627269b3578e76b9244be4f9ad5bf84c103277cca4269e7d13c4e39a8a5046aa3faf0346becfff975d
|
data/.ruby-gemset
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
glimmer
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jruby-9.1.12.0
|
data/Gemfile
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
source 'http://rubygems.org'
|
2
2
|
|
3
|
-
gem 'facets', '
|
3
|
+
gem 'facets', '3.1.0'
|
4
4
|
|
5
5
|
group :development do
|
6
|
-
gem "
|
7
|
-
gem "
|
8
|
-
gem "
|
6
|
+
gem "rdoc", "~> 2.3.0"
|
7
|
+
gem "bundler", "~> 1.0"
|
8
|
+
gem "jeweler", "~> 2.3.0"
|
9
|
+
gem "coveralls", "= 0.8.5", require: false
|
10
|
+
gem "simplecov", "~> 0.10.0", require: nil
|
11
|
+
gem "puts_debuggerer", "0.6.1"
|
9
12
|
end
|
data/README.markdown
CHANGED
@@ -1,11 +1,13 @@
|
|
1
|
-
Glimmer
|
2
|
-
|
3
|
-
Glimmer is a JRuby DSL that enables easy and efficient authoring of desktop application user-interfaces
|
1
|
+
# Glimmer (The Original One And Only)
|
2
|
+
|
3
|
+
Glimmer is a cross-platform Ruby desktop development library. Glimmer's main innovation is a JRuby DSL that enables easy and efficient authoring of desktop application user-interfaces while relying on the robust platform-independent Eclipse SWT library. Glimmer additionally innovates by having built-in desktop UI data-binding support to greatly facilitate synchronizing the UI with domain models. As a result, that achieves true decoupling of object oriented components, enabling developers to solve business problems without worrying about UI concerns, or alternatively drive development UI-first, and then write clean business components test-first afterward.
|
4
|
+
|
5
|
+
You may learn more by reading this article: * [Eclipse Zone Tutorial](http://eclipse.dzone.com/articles/an-introduction-glimmer)
|
4
6
|
|
5
7
|
![Glimmer](https://github.com/AndyObtiva/glimmer/raw/master/images/Bitter-sweet.jpg)
|
6
8
|
|
7
|
-
Example
|
8
|
-
|
9
|
+
## Example
|
10
|
+
|
9
11
|
shell {
|
10
12
|
text "Example"
|
11
13
|
label {
|
@@ -13,42 +15,42 @@ Example
|
|
13
15
|
}
|
14
16
|
}.open
|
15
17
|
|
16
|
-
Getting Started
|
17
|
-
|
18
|
-
1. Download the "SWT binary and source"
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
Samples
|
27
|
-
|
18
|
+
## Getting Started
|
19
|
+
|
20
|
+
1. Download and extract the ["SWT binary and source"](http://download.eclipse.org/eclipse/downloads/drops4/R-4.7-201706120950/#SWT).
|
21
|
+
2. Add swt.jar to your Java CLASSPATH environment (e.g. `export CLASSPATH="/path_to_swt_jar/swt.jar"`)
|
22
|
+
3. Download and setup jRuby 1.5.6 (`rvm install jruby-9.1.12.0`)
|
23
|
+
4. Install bundler (gem install bundler)
|
24
|
+
5. Install project required gems (bundle install)
|
25
|
+
6. Write a program that requires the file "lib/glimmer.rb" (or glimmer gem) and has the UI class (view) include the Glimmer module
|
26
|
+
7. Run your program with `bin/glimmer` or jruby (pass `-J-XstartOnFirstThread` option if on the Mac)
|
27
|
+
|
28
|
+
## Samples
|
29
|
+
|
28
30
|
Check the "samples" folder for examples on how to write Glimmer applications.
|
29
31
|
|
30
|
-
Mac Support
|
31
|
-
|
32
|
+
## Mac Support
|
33
|
+
|
32
34
|
In order to run Glimmer on the Mac, you need to pass an extra option to JRuby. For example:
|
33
|
-
jruby samples/hello_world.rb
|
35
|
+
`jruby -J-XstartOnFirstThread samples/hello_world.rb`
|
36
|
+
|
37
|
+
## Background
|
34
38
|
|
35
|
-
Background
|
36
|
-
---
|
37
39
|
Ruby is a dynamically-typed object-oriented language, which provides great productivity gains due to its powerful expressive syntax and dynamic nature. While it is proven by the Ruby on Rails framework for web development, it currently lacks a robust platform-independent framework for building desktop applications. Given that Java libraries can now be utilized in Ruby code through JRuby, Eclipse technologies, such as SWT, JFace, and RCP can help fill the gap of desktop application development with Ruby.
|
38
40
|
|
39
|
-
Resources
|
40
|
-
|
41
|
+
## Resources
|
42
|
+
|
41
43
|
* [Eclipse Zone Tutorial](http://eclipse.dzone.com/articles/an-introduction-glimmer)
|
42
44
|
* [InfoQ Article](http://www.infoq.com/news/2008/02/glimmer-jruby-swt)
|
43
45
|
* [RubyConf 2008 Video](http://rubyconf2008.confreaks.com/desktop-development-with-glimmer.html)
|
44
46
|
* [Code Painter Blog](http://andymaleh.blogspot.com/search/label/Glimmer)
|
45
47
|
|
46
|
-
Contributors
|
47
|
-
|
48
|
+
## Contributors
|
49
|
+
|
48
50
|
* Annas "Andy" Al Maleh (Founder)
|
49
51
|
* Dennis Theisen
|
50
52
|
|
51
|
-
License
|
52
|
-
|
53
|
-
Copyright (c)
|
54
|
-
See LICENSE.txt for further details.
|
53
|
+
## License
|
54
|
+
|
55
|
+
Copyright (c) 2007-2017 Annas Al Maleh.
|
56
|
+
See LICENSE.txt for further details.
|
data/Rakefile
CHANGED
@@ -17,12 +17,10 @@ Jeweler::Tasks.new do |gem|
|
|
17
17
|
gem.license = "MIT"
|
18
18
|
gem.summary = %Q{Desktop application development library}
|
19
19
|
gem.description = %Q{JRuby DSL that enables easy and efficient authoring of user-interfaces using the robust platform-independent Eclipse SWT library}
|
20
|
-
gem.email = "andy@
|
21
|
-
gem.authors = ["
|
22
|
-
|
23
|
-
#
|
24
|
-
gem.add_runtime_dependency 'facets', '2.9.0'
|
25
|
-
# gem.add_development_dependency 'rspec', '> 1.2.3'
|
20
|
+
gem.email = "andy.am@gmail.com"
|
21
|
+
gem.authors = ["AndyMaleh"]
|
22
|
+
gem.executables = ['glimmer']
|
23
|
+
# dependencies defined in Gemfile
|
26
24
|
end
|
27
25
|
Jeweler::RubygemsDotOrgTasks.new
|
28
26
|
|
@@ -31,24 +29,7 @@ Rake::TestTask.new(:test) do |test|
|
|
31
29
|
test.libs << 'lib' << 'samples' << 'test'
|
32
30
|
test.pattern = 'test/**/*_test.rb'
|
33
31
|
test.verbose = true
|
34
|
-
test.ruby_opts = ['-J-XstartOnFirstThread']
|
35
|
-
end
|
36
|
-
|
37
|
-
require 'rcov/rcovtask'
|
38
|
-
Rcov::RcovTask.new do |test|
|
39
|
-
test.libs << 'test'
|
40
|
-
test.pattern = 'test/**/*_test.rb'
|
41
|
-
test.verbose = true
|
32
|
+
test.ruby_opts = ['-J-XstartOnFirstThread -Xcli.debug=true --debug']
|
42
33
|
end
|
43
34
|
|
44
35
|
task :default => :test
|
45
|
-
|
46
|
-
require 'rake/rdoctask'
|
47
|
-
Rake::RDocTask.new do |rdoc|
|
48
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
49
|
-
|
50
|
-
rdoc.rdoc_dir = 'rdoc'
|
51
|
-
rdoc.title = "glimmer #{version}"
|
52
|
-
rdoc.rdoc_files.include('README*')
|
53
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
54
|
-
end
|
data/TODO.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# TODO
|
2
|
+
|
3
|
+
Here is a list of tasks to do (please delete once done):
|
4
|
+
|
5
|
+
* Export executable to path during gem install
|
6
|
+
* Route puts to a debug logger with log options
|
7
|
+
* Upgrade test suite to RSPec
|
8
|
+
* Download/Setup SWT Jar as part of gem install
|
9
|
+
* Add version revision matching SWT version (e.g. 0.1.4.swt-4.7.0)
|
10
|
+
* Support Tree databinding
|
11
|
+
* Increase test coverage to 80%
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4.swt-4.7.0
|
data/bin/glimmer
CHANGED
@@ -1,132 +1,2 @@
|
|
1
|
-
#!/
|
2
|
-
|
3
|
-
require 'abbrev'
|
4
|
-
load File.dirname(__FILE__) + '/../Rakefile'
|
5
|
-
|
6
|
-
# Displayed when no valid command is given
|
7
|
-
HELP_TEXT = <<-EOS
|
8
|
-
usage: glimmer COMMAND [ARGS]
|
9
|
-
|
10
|
-
Available COMMANDS:
|
11
|
-
list - display all installed Glimmer applications (samples)
|
12
|
-
run - run any glimmer application or sample by name
|
13
|
-
generate - create a new project with a scaffold of an application
|
14
|
-
|
15
|
-
Note: You can use abbreviations as long as they're unambiguos (g for generate)
|
16
|
-
EOS
|
17
|
-
|
18
|
-
# the generate-command will create this file for a new project to start with
|
19
|
-
GLIMMER_BASE_TEMPLATE = <<-EOS
|
20
|
-
require 'rubygems'
|
21
|
-
require 'swt'
|
22
|
-
|
23
|
-
|
24
|
-
class <%= @name %>
|
25
|
-
include Glimmer
|
26
|
-
# Remember to include all SWT packages that you need
|
27
|
-
# or you will get a `const_missing' error
|
28
|
-
include_package 'org.eclipse.swt.layout'
|
29
|
-
|
30
|
-
def initialize
|
31
|
-
build
|
32
|
-
end
|
33
|
-
|
34
|
-
def build
|
35
|
-
@shell = shell {
|
36
|
-
text "<%= @name %>"
|
37
|
-
|
38
|
-
composite {
|
39
|
-
layout GridLayout.new(2, false)
|
40
|
-
button {
|
41
|
-
text "&Click"
|
42
|
-
on_widget_selected { @label.text("You clicked the button") }
|
43
|
-
}
|
44
|
-
@label = label { text "Click the button to change me" }
|
45
|
-
}
|
46
|
-
}
|
47
|
-
end
|
48
|
-
|
49
|
-
def launch
|
50
|
-
@shell.open
|
51
|
-
end
|
52
|
-
end
|
53
|
-
# Start the application
|
54
|
-
<%= @name %>.new.launch
|
55
|
-
EOS
|
56
|
-
|
57
|
-
class GlimmerRunner
|
58
|
-
|
59
|
-
COMMANDS = %w[list run generate]
|
60
|
-
|
61
|
-
PLATFORM_EXTENSION = (PLATFORM =~ /win\d\d/) ? '.bat' : ''
|
62
|
-
JRUBY_COMMAND = "jruby#{PLATFORM_EXTENSION} -S"
|
63
|
-
SAMPLES_PATH = File.dirname(__FILE__) + "/../samples"
|
64
|
-
# This could be avoided by naming the main application like the directory (i.e. without underscores)
|
65
|
-
# You need to add new multi file applications to this list, so that they can be started using "glimmer run"
|
66
|
-
SAMPLES = {"contactmanager" => "contact_manager", "tictactoe" => "tic_tac_toe", "glimmereditor" => "glimmer_editor"}
|
67
|
-
|
68
|
-
JRUBY_BAT_LIB_REGEX = /Djava\.library\.path="%ECLIPSE_HOME%\\plugins\\org\.eclipse\.swt\.win32\.win32.x86_3.4.1.v3449c"/
|
69
|
-
|
70
|
-
def initialize(command, name)
|
71
|
-
@command, @name = command, name
|
72
|
-
decide
|
73
|
-
end
|
74
|
-
|
75
|
-
def decide
|
76
|
-
shortcuts = COMMANDS.abbrev
|
77
|
-
if @command and shortcuts.keys.include?(cmd = @command.downcase)
|
78
|
-
send(shortcuts[cmd])
|
79
|
-
else
|
80
|
-
puts HELP_TEXT
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
# Run a sample application or any user application with jruby
|
85
|
-
def run
|
86
|
-
return puts("usage example: glimmer run tictactoe") unless @name
|
87
|
-
# Search for the filename (and add the .rb extension if not provided), and run it
|
88
|
-
if File.exist?("#{@name}#{'.rb' unless @name =~ /.rb$/}")
|
89
|
-
command = "#{JRUBY_COMMAND} \"#{@name.gsub(/\\/, '/')}#{'.rb' unless @name =~ /.rb$/}\""
|
90
|
-
else
|
91
|
-
# Search for all installed samples and try to run of those
|
92
|
-
command = "#{JRUBY_COMMAND} \"#{SAMPLES_PATH}/#{fetch_app(@name)}.rb\""
|
93
|
-
end
|
94
|
-
puts "Starting the application with following command:"
|
95
|
-
puts command
|
96
|
-
system command
|
97
|
-
end
|
98
|
-
|
99
|
-
def list
|
100
|
-
single_file_apps = Dir["#{SAMPLES_PATH}/*.rb"]
|
101
|
-
multi_file_apps = Dir["#{SAMPLES_PATH}/*"].reject{ |file| file =~ /.rb$/}
|
102
|
-
puts "Installed Glimmer applications:"
|
103
|
-
(single_file_apps + multi_file_apps).each_with_index do |file, index|
|
104
|
-
puts "#{index+1}. #{File.basename(file, '.*')}"
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
def generate
|
109
|
-
return puts("usage example: glimmer generate my_test_project") unless @name
|
110
|
-
puts "Creating project named: #{@name}"
|
111
|
-
Dir.mkdir(@name)
|
112
|
-
filename = "#{@name}/#{@name}.rb"
|
113
|
-
puts "Creating glimmer file: #{filename}"
|
114
|
-
File.open(filename, 'w') do |file|
|
115
|
-
file.write(GemHelper.render_template(GLIMMER_BASE_TEMPLATE, {:name => @name.capitalize}))
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
private
|
120
|
-
# This could be avoided by naming the main application like the directory (i.e. without underscores)
|
121
|
-
def fetch_app(name)
|
122
|
-
return name if SAMPLES[name].nil?
|
123
|
-
"#{name}/#{SAMPLES[name]}"
|
124
|
-
end
|
125
|
-
|
126
|
-
end
|
127
|
-
|
128
|
-
|
129
|
-
# Here's where the action starts
|
130
|
-
command, name = ARGV[0], ARGV[1]
|
131
|
-
|
132
|
-
GlimmerRunner.new(command, name)
|
1
|
+
#!/bin/bash
|
2
|
+
ruby -J-XstartOnFirstThread $1
|
data/glimmer.gemspec
CHANGED
@@ -2,28 +2,31 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: glimmer 0.1.4.swt.pre.4.7.0 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.1.
|
8
|
+
s.name = "glimmer".freeze
|
9
|
+
s.version = "0.1.4.swt.pre.4.7.0"
|
9
10
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new("
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.description =
|
15
|
-
s.email =
|
16
|
-
s.executables = ["glimmer"]
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1".freeze) if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib".freeze]
|
13
|
+
s.authors = ["AndyMaleh".freeze]
|
14
|
+
s.date = "2017-07-21"
|
15
|
+
s.description = "JRuby DSL that enables easy and efficient authoring of user-interfaces using the robust platform-independent Eclipse SWT library".freeze
|
16
|
+
s.email = "andy.am@gmail.com".freeze
|
17
|
+
s.executables = ["glimmer".freeze]
|
17
18
|
s.extra_rdoc_files = [
|
18
19
|
"LICENSE.txt",
|
19
20
|
"README.markdown"
|
20
21
|
]
|
21
22
|
s.files = [
|
22
|
-
".
|
23
|
+
".ruby-gemset",
|
24
|
+
".ruby-version",
|
23
25
|
"Gemfile",
|
24
26
|
"LICENSE.txt",
|
25
27
|
"README.markdown",
|
26
28
|
"Rakefile",
|
29
|
+
"TODO.md",
|
27
30
|
"VERSION",
|
28
31
|
"bin/glimmer",
|
29
32
|
"glimmer.gemspec",
|
@@ -76,6 +79,9 @@ Gem::Specification.new do |s|
|
|
76
79
|
"samples/contactmanager/contact_manager_presenter.rb",
|
77
80
|
"samples/contactmanager/contact_repository.rb",
|
78
81
|
"samples/hello_combo.rb",
|
82
|
+
"samples/hello_list_multi_selection.rb",
|
83
|
+
"samples/hello_list_single_selection.rb",
|
84
|
+
"samples/hello_tab.rb",
|
79
85
|
"samples/hello_world.rb",
|
80
86
|
"samples/login.rb",
|
81
87
|
"samples/tictactoe/tic_tac_toe.rb",
|
@@ -96,51 +102,39 @@ Gem::Specification.new do |s|
|
|
96
102
|
"test/samples/tictactoe/tic_tac_toe_test.rb",
|
97
103
|
"test/xml/glimmer_xml_test.rb"
|
98
104
|
]
|
99
|
-
s.homepage =
|
100
|
-
s.licenses = ["MIT"]
|
101
|
-
s.
|
102
|
-
s.
|
103
|
-
s.summary = %q{Desktop application development library}
|
104
|
-
s.test_files = [
|
105
|
-
"test/glimmer_combo_data_binding_test.rb",
|
106
|
-
"test/glimmer_constant_test.rb",
|
107
|
-
"test/glimmer_data_binding_test.rb",
|
108
|
-
"test/glimmer_list_data_binding_test.rb",
|
109
|
-
"test/glimmer_listeners_test.rb",
|
110
|
-
"test/glimmer_shine_data_binding_test.rb",
|
111
|
-
"test/glimmer_tab_item_test.rb",
|
112
|
-
"test/glimmer_table_data_binding_test.rb",
|
113
|
-
"test/glimmer_test.rb",
|
114
|
-
"test/helper.rb",
|
115
|
-
"test/observable_model_test.rb",
|
116
|
-
"test/r_widget_test.rb",
|
117
|
-
"test/samples/contactmanager/contact_manager_presenter_test.rb",
|
118
|
-
"test/samples/tictactoe/tic_tac_toe_test.rb",
|
119
|
-
"test/xml/glimmer_xml_test.rb"
|
120
|
-
]
|
105
|
+
s.homepage = "http://github.com/AndyObtiva/glimmer".freeze
|
106
|
+
s.licenses = ["MIT".freeze]
|
107
|
+
s.rubygems_version = "2.6.11".freeze
|
108
|
+
s.summary = "Desktop application development library".freeze
|
121
109
|
|
122
110
|
if s.respond_to? :specification_version then
|
123
|
-
s.specification_version =
|
111
|
+
s.specification_version = 4
|
124
112
|
|
125
113
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
126
|
-
s.add_runtime_dependency(%q<facets
|
127
|
-
s.add_development_dependency(%q<
|
128
|
-
s.add_development_dependency(%q<
|
129
|
-
s.add_development_dependency(%q<
|
130
|
-
s.
|
114
|
+
s.add_runtime_dependency(%q<facets>.freeze, ["= 3.1.0"])
|
115
|
+
s.add_development_dependency(%q<rdoc>.freeze, ["~> 2.3.0"])
|
116
|
+
s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
117
|
+
s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.3.0"])
|
118
|
+
s.add_development_dependency(%q<coveralls>.freeze, ["= 0.8.5"])
|
119
|
+
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.10.0"])
|
120
|
+
s.add_development_dependency(%q<puts_debuggerer>.freeze, ["= 0.6.1"])
|
131
121
|
else
|
132
|
-
s.add_dependency(%q<facets
|
133
|
-
s.add_dependency(%q<
|
134
|
-
s.add_dependency(%q<
|
135
|
-
s.add_dependency(%q<
|
136
|
-
s.add_dependency(%q<
|
122
|
+
s.add_dependency(%q<facets>.freeze, ["= 3.1.0"])
|
123
|
+
s.add_dependency(%q<rdoc>.freeze, ["~> 2.3.0"])
|
124
|
+
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
125
|
+
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.0"])
|
126
|
+
s.add_dependency(%q<coveralls>.freeze, ["= 0.8.5"])
|
127
|
+
s.add_dependency(%q<simplecov>.freeze, ["~> 0.10.0"])
|
128
|
+
s.add_dependency(%q<puts_debuggerer>.freeze, ["= 0.6.1"])
|
137
129
|
end
|
138
130
|
else
|
139
|
-
s.add_dependency(%q<facets
|
140
|
-
s.add_dependency(%q<
|
141
|
-
s.add_dependency(%q<
|
142
|
-
s.add_dependency(%q<
|
143
|
-
s.add_dependency(%q<
|
131
|
+
s.add_dependency(%q<facets>.freeze, ["= 3.1.0"])
|
132
|
+
s.add_dependency(%q<rdoc>.freeze, ["~> 2.3.0"])
|
133
|
+
s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
|
134
|
+
s.add_dependency(%q<jeweler>.freeze, ["~> 2.3.0"])
|
135
|
+
s.add_dependency(%q<coveralls>.freeze, ["= 0.8.5"])
|
136
|
+
s.add_dependency(%q<simplecov>.freeze, ["~> 0.10.0"])
|
137
|
+
s.add_dependency(%q<puts_debuggerer>.freeze, ["= 0.6.1"])
|
144
138
|
end
|
145
139
|
end
|
146
140
|
|
@@ -44,16 +44,16 @@ class RWidget
|
|
44
44
|
|
45
45
|
def self.widget_exists?(underscored_widget_name)
|
46
46
|
begin
|
47
|
-
eval underscored_widget_name.camelcase
|
47
|
+
eval underscored_widget_name.camelcase(:upper)
|
48
48
|
true
|
49
|
-
rescue NameError
|
49
|
+
rescue NameError
|
50
50
|
false
|
51
51
|
end
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
def widget_listener_exists?(underscored_listener_name)
|
55
55
|
listener_method_name = underscored_listener_name.listener_method_name(:lower)
|
56
|
-
@widget.getClass.getMethods.each do |widget_method|
|
56
|
+
@widget.getClass.getMethods.each do |widget_method|
|
57
57
|
if widget_method.getName.match(/add.*Listener/)
|
58
58
|
widget_method.getParameterTypes.each do |listener_type|
|
59
59
|
listener_type.getMethods.each do |listener_method|
|
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require_relative "contact_manager_presenter"
|
2
|
+
require_relative "../../lib/glimmer"
|
3
3
|
|
4
4
|
class RWidget
|
5
5
|
include_package 'org.eclipse.jface.viewers'
|
@@ -48,13 +48,22 @@ class ContactManager
|
|
48
48
|
text "Email"
|
49
49
|
width 120
|
50
50
|
}
|
51
|
-
items bind(contact_manager_presenter, :results),
|
51
|
+
items bind(contact_manager_presenter, :results),
|
52
|
+
column_properties(:first_name, :last_name, :email)
|
52
53
|
}
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
54
|
+
composite {
|
55
|
+
layout GridLayout.new(2, false)
|
56
|
+
button {
|
57
|
+
text "&List"
|
58
|
+
on_widget_selected {
|
59
|
+
contact_manager_presenter.list
|
60
|
+
}
|
61
|
+
}
|
62
|
+
button {
|
63
|
+
text "&Find"
|
64
|
+
on_widget_selected {
|
65
|
+
contact_manager_presenter.find
|
66
|
+
}
|
58
67
|
}
|
59
68
|
}
|
60
69
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative "contact_repository"
|
2
2
|
|
3
3
|
class ContactManagerPresenter
|
4
4
|
attr_accessor :results
|
@@ -10,8 +10,12 @@ class ContactManagerPresenter
|
|
10
10
|
@results = []
|
11
11
|
end
|
12
12
|
|
13
|
+
def list
|
14
|
+
self.results=@contact_repository.find({})
|
15
|
+
end
|
16
|
+
|
13
17
|
def find
|
14
|
-
filter_map =
|
18
|
+
filter_map = {}
|
15
19
|
@@contact_attributes.each do |attribute_name|
|
16
20
|
filter_map[attribute_name] = self.send(attribute_name) if self.send(attribute_name)
|
17
21
|
end
|
data/samples/hello_combo.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative "../lib/glimmer"
|
2
2
|
|
3
3
|
class Person
|
4
4
|
attr_accessor :country, :country_options
|
@@ -7,6 +7,10 @@ class Person
|
|
7
7
|
self.country_options=["", "Canada", "US", "Mexico"]
|
8
8
|
self.country = "Canada"
|
9
9
|
end
|
10
|
+
|
11
|
+
def reset_country
|
12
|
+
self.country = "Canada"
|
13
|
+
end
|
10
14
|
end
|
11
15
|
|
12
16
|
class HelloCombo
|
@@ -21,7 +25,7 @@ class HelloCombo
|
|
21
25
|
button {
|
22
26
|
text "Reset"
|
23
27
|
on_widget_selected do
|
24
|
-
person.
|
28
|
+
person.reset_country
|
25
29
|
end
|
26
30
|
}
|
27
31
|
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require_relative "../lib/glimmer"
|
2
|
+
|
3
|
+
class Person
|
4
|
+
attr_accessor :provinces, :provinces_options
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
self.provinces_options=[
|
8
|
+
"",
|
9
|
+
"Quebec",
|
10
|
+
"Ontario",
|
11
|
+
"Manitoba",
|
12
|
+
"Saskatchewan",
|
13
|
+
"Alberta",
|
14
|
+
"British Columbia",
|
15
|
+
"Nova Skotia",
|
16
|
+
"Newfoundland"
|
17
|
+
]
|
18
|
+
self.provinces = ["Quebec", "Manitoba", "Alberta"]
|
19
|
+
end
|
20
|
+
|
21
|
+
def reset_provinces
|
22
|
+
self.provinces = ["Quebec", "Manitoba", "Alberta"]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class HelloListMultiSelection
|
27
|
+
include Glimmer
|
28
|
+
def launch
|
29
|
+
person = Person.new
|
30
|
+
shell {
|
31
|
+
composite {
|
32
|
+
list(:multi) {
|
33
|
+
selection bind(person, :provinces)
|
34
|
+
}
|
35
|
+
button {
|
36
|
+
text "Reset"
|
37
|
+
on_widget_selected do
|
38
|
+
person.reset_provinces
|
39
|
+
end
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}.open
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
HelloListMultiSelection.new.launch
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative "../lib/glimmer"
|
2
|
+
|
3
|
+
class Person
|
4
|
+
attr_accessor :country, :country_options
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
self.country_options=["", "Canada", "US", "Mexico"]
|
8
|
+
self.country = "Canada"
|
9
|
+
end
|
10
|
+
|
11
|
+
def reset_country
|
12
|
+
self.country = "Canada"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class HelloListSingleSelection
|
17
|
+
include Glimmer
|
18
|
+
def launch
|
19
|
+
person = Person.new
|
20
|
+
shell {
|
21
|
+
composite {
|
22
|
+
list {
|
23
|
+
selection bind(person, :country)
|
24
|
+
}
|
25
|
+
button {
|
26
|
+
text "Reset"
|
27
|
+
on_widget_selected do
|
28
|
+
person.reset_country
|
29
|
+
end
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}.open
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
HelloListSingleSelection.new.launch
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative "../lib/glimmer"
|
2
|
+
|
3
|
+
class HelloTab
|
4
|
+
include Glimmer
|
5
|
+
def launch
|
6
|
+
shell {
|
7
|
+
text "SWT"
|
8
|
+
tab_folder {
|
9
|
+
tab_item {
|
10
|
+
text "Tab 1"
|
11
|
+
label {
|
12
|
+
text "Hello World!"
|
13
|
+
}
|
14
|
+
}
|
15
|
+
tab_item {
|
16
|
+
text "Tab 2"
|
17
|
+
label {
|
18
|
+
text "Bonjour Univers!"
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}.open
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
HelloTab.new.launch
|
data/samples/hello_world.rb
CHANGED
@@ -1,21 +1,10 @@
|
|
1
|
-
|
2
|
-
require File.dirname(__FILE__) + "/../lib/glimmer"
|
1
|
+
require_relative "../lib/glimmer"
|
3
2
|
|
4
|
-
|
5
|
-
include_package 'org.eclipse.swt'
|
6
|
-
include_package 'org.eclipse.swt.layout'
|
7
|
-
|
8
|
-
include Glimmer
|
3
|
+
include Glimmer
|
9
4
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
}
|
17
|
-
@shell.open
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
HelloWorld.new.launch
|
5
|
+
shell {
|
6
|
+
text "SWT"
|
7
|
+
label {
|
8
|
+
text "Hello World!"
|
9
|
+
}
|
10
|
+
}.open
|
data/samples/login.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "java"
|
2
2
|
require "observer"
|
3
|
-
|
3
|
+
require_relative "../lib/glimmer"
|
4
4
|
|
5
5
|
#Presents login screen data
|
6
6
|
class LoginPresenter
|
@@ -32,8 +32,6 @@ class LoginPresenter
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def login
|
35
|
-
self.user_name = ""
|
36
|
-
self.password = ""
|
37
35
|
self.status = "Logged In"
|
38
36
|
end
|
39
37
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative "helper"
|
2
2
|
|
3
3
|
class GlimmerTest < Test::Unit::TestCase
|
4
4
|
include Glimmer
|
@@ -14,13 +14,13 @@ class GlimmerTest < Test::Unit::TestCase
|
|
14
14
|
def teardown
|
15
15
|
@target.display.dispose if @target.display
|
16
16
|
end
|
17
|
-
|
18
|
-
def
|
17
|
+
|
18
|
+
def test_shell_with_default_layout_and_composite
|
19
19
|
@target = shell {
|
20
20
|
composite(:border, :no_focus) {
|
21
21
|
}
|
22
22
|
}
|
23
|
-
|
23
|
+
|
24
24
|
assert_equal 1, @target.widget.children.size
|
25
25
|
assert_instance_of Composite, @target.widget.children[0]
|
26
26
|
composite_widget = @target.widget.children[0]
|
@@ -28,4 +28,3 @@ class GlimmerTest < Test::Unit::TestCase
|
|
28
28
|
assert_has_style :border, composite_widget
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
data/test/glimmer_test.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative "helper"
|
2
2
|
|
3
3
|
class GlimmerTest < Test::Unit::TestCase
|
4
4
|
include Glimmer
|
@@ -163,7 +163,7 @@ class GlimmerTest < Test::Unit::TestCase
|
|
163
163
|
assert_equal 55, @spinner.widget.getSelection
|
164
164
|
end
|
165
165
|
|
166
|
-
def
|
166
|
+
def test_shell_and_list_default
|
167
167
|
@target = shell {
|
168
168
|
@list = list {
|
169
169
|
}
|
@@ -233,6 +233,5 @@ class GlimmerTest < Test::Unit::TestCase
|
|
233
233
|
assert_has_style :password, text_widget
|
234
234
|
assert_equal "Hello", text_widget.getText
|
235
235
|
end
|
236
|
-
|
237
|
-
end
|
238
236
|
|
237
|
+
end
|
data/test/helper.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'simplecov'
|
3
|
+
SimpleCov.start
|
2
4
|
require 'bundler'
|
5
|
+
require 'test/unit'
|
6
|
+
require 'puts_debuggerer'
|
7
|
+
|
3
8
|
begin
|
4
9
|
Bundler.setup(:default, :development)
|
5
10
|
rescue Bundler::BundlerError => e
|
@@ -7,8 +12,6 @@ rescue Bundler::BundlerError => e
|
|
7
12
|
$stderr.puts "Run `bundle install` to install missing gems"
|
8
13
|
exit e.status_code
|
9
14
|
end
|
10
|
-
require 'test/unit'
|
11
|
-
|
12
15
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
16
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'samples'))
|
14
17
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
@@ -1,6 +1,6 @@
|
|
1
|
-
|
1
|
+
require_relative "helper"
|
2
2
|
|
3
|
-
|
3
|
+
require_relative "../lib/command_handlers/models/observable_model"
|
4
4
|
|
5
5
|
require "test/unit"
|
6
6
|
class ObservableModelTest < Test::Unit::TestCase
|
data/test/r_widget_test.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require_relative "../../helper"
|
2
|
+
require_relative "../../../samples/contactmanager/contact_manager_presenter"
|
3
3
|
|
4
4
|
class ContactManagerPresenterTest < Test::Unit::TestCase
|
5
5
|
|
@@ -47,6 +47,30 @@ class ContactManagerPresenterTest < Test::Unit::TestCase
|
|
47
47
|
assert_equal 0, contacts.size
|
48
48
|
end
|
49
49
|
|
50
|
+
def test_find_specify_no_fields_for_all_results
|
51
|
+
contact_manager_presenter = ContactManagerPresenter.new
|
52
|
+
contact_manager_presenter.find
|
53
|
+
contacts = contact_manager_presenter.results
|
54
|
+
assert_not_nil contacts
|
55
|
+
assert_equal 4, contacts.size
|
56
|
+
assert_equal "Anne", contacts[0].first_name
|
57
|
+
assert_equal "Beatrice", contacts[1].first_name
|
58
|
+
assert_equal "Frank", contacts[2].first_name
|
59
|
+
assert_equal "franky", contacts[3].first_name
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_list_all_results
|
63
|
+
contact_manager_presenter = ContactManagerPresenter.new
|
64
|
+
contact_manager_presenter.list
|
65
|
+
contacts = contact_manager_presenter.results
|
66
|
+
assert_not_nil contacts
|
67
|
+
assert_equal 4, contacts.size
|
68
|
+
assert_equal "Anne", contacts[0].first_name
|
69
|
+
assert_equal "Beatrice", contacts[1].first_name
|
70
|
+
assert_equal "Frank", contacts[2].first_name
|
71
|
+
assert_equal "franky", contacts[3].first_name
|
72
|
+
end
|
73
|
+
|
50
74
|
def test_initial_results
|
51
75
|
contact_manager_presenter = ContactManagerPresenter.new
|
52
76
|
contacts = contact_manager_presenter.results
|
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require_relative "../../helper"
|
2
|
+
require_relative "../../../samples/tictactoe/tic_tac_toe_board"
|
3
3
|
|
4
4
|
class TicTacToeTest < Test::Unit::TestCase
|
5
5
|
|
metadata
CHANGED
@@ -1,114 +1,130 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 3
|
10
|
-
version: 0.1.3
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.4.swt.pre.4.7.0
|
11
5
|
platform: ruby
|
12
|
-
authors:
|
13
|
-
-
|
14
|
-
autorequire:
|
6
|
+
authors:
|
7
|
+
- AndyMaleh
|
8
|
+
autorequire:
|
15
9
|
bindir: bin
|
16
10
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
11
|
+
date: 2017-07-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - '='
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 3.1.0
|
22
19
|
name: facets
|
23
|
-
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
-
none: false
|
25
|
-
requirements:
|
26
|
-
- - "="
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 43
|
29
|
-
segments:
|
30
|
-
- 2
|
31
|
-
- 9
|
32
|
-
- 0
|
33
|
-
version: 2.9.0
|
34
20
|
prerelease: false
|
35
21
|
type: :runtime
|
36
|
-
|
37
|
-
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.3.0
|
33
|
+
name: rdoc
|
34
|
+
prerelease: false
|
35
|
+
type: :development
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.3.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '1.0'
|
38
47
|
name: bundler
|
39
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
|
-
requirements:
|
42
|
-
- - ">="
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 3
|
45
|
-
segments:
|
46
|
-
- 0
|
47
|
-
version: "0"
|
48
48
|
prerelease: false
|
49
49
|
type: :development
|
50
|
-
|
51
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 2.3.0
|
52
61
|
name: jeweler
|
53
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
55
|
-
requirements:
|
56
|
-
- - ~>
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
hash: 7
|
59
|
-
segments:
|
60
|
-
- 1
|
61
|
-
- 5
|
62
|
-
- 2
|
63
|
-
version: 1.5.2
|
64
62
|
prerelease: false
|
65
63
|
type: :development
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.3.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - '='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 0.8.5
|
75
|
+
name: coveralls
|
78
76
|
prerelease: false
|
79
77
|
type: :development
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
- 0
|
93
|
-
version: 2.9.0
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.8.5
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 0.10.0
|
89
|
+
name: simplecov
|
94
90
|
prerelease: false
|
95
|
-
type: :
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
91
|
+
type: :development
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.10.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - '='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 0.6.1
|
103
|
+
name: puts_debuggerer
|
104
|
+
prerelease: false
|
105
|
+
type: :development
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.6.1
|
111
|
+
description: JRuby DSL that enables easy and efficient authoring of user-interfaces
|
112
|
+
using the robust platform-independent Eclipse SWT library
|
113
|
+
email: andy.am@gmail.com
|
114
|
+
executables:
|
100
115
|
- glimmer
|
101
116
|
extensions: []
|
102
|
-
|
103
|
-
extra_rdoc_files:
|
117
|
+
extra_rdoc_files:
|
104
118
|
- LICENSE.txt
|
105
119
|
- README.markdown
|
106
|
-
files:
|
107
|
-
- .
|
120
|
+
files:
|
121
|
+
- ".ruby-gemset"
|
122
|
+
- ".ruby-version"
|
108
123
|
- Gemfile
|
109
124
|
- LICENSE.txt
|
110
125
|
- README.markdown
|
111
126
|
- Rakefile
|
127
|
+
- TODO.md
|
112
128
|
- VERSION
|
113
129
|
- bin/glimmer
|
114
130
|
- glimmer.gemspec
|
@@ -161,6 +177,9 @@ files:
|
|
161
177
|
- samples/contactmanager/contact_manager_presenter.rb
|
162
178
|
- samples/contactmanager/contact_repository.rb
|
163
179
|
- samples/hello_combo.rb
|
180
|
+
- samples/hello_list_multi_selection.rb
|
181
|
+
- samples/hello_list_single_selection.rb
|
182
|
+
- samples/hello_tab.rb
|
164
183
|
- samples/hello_world.rb
|
165
184
|
- samples/login.rb
|
166
185
|
- samples/tictactoe/tic_tac_toe.rb
|
@@ -180,53 +199,28 @@ files:
|
|
180
199
|
- test/samples/contactmanager/contact_manager_presenter_test.rb
|
181
200
|
- test/samples/tictactoe/tic_tac_toe_test.rb
|
182
201
|
- test/xml/glimmer_xml_test.rb
|
183
|
-
has_rdoc: true
|
184
202
|
homepage: http://github.com/AndyObtiva/glimmer
|
185
|
-
licenses:
|
203
|
+
licenses:
|
186
204
|
- MIT
|
187
|
-
|
205
|
+
metadata: {}
|
206
|
+
post_install_message:
|
188
207
|
rdoc_options: []
|
189
|
-
|
190
|
-
require_paths:
|
208
|
+
require_paths:
|
191
209
|
- lib
|
192
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
193
|
-
|
194
|
-
requirements:
|
195
|
-
- - ">="
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
hash: 3
|
198
|
-
segments:
|
199
|
-
- 0
|
200
|
-
version: "0"
|
201
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
|
-
requirements:
|
210
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
211
|
+
requirements:
|
204
212
|
- - ">="
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: '0'
|
215
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
216
|
+
requirements:
|
217
|
+
- - ">"
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: 1.3.1
|
210
220
|
requirements: []
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
specification_version: 3
|
221
|
+
rubyforge_project:
|
222
|
+
rubygems_version: 2.6.11
|
223
|
+
signing_key:
|
224
|
+
specification_version: 4
|
216
225
|
summary: Desktop application development library
|
217
|
-
test_files:
|
218
|
-
- test/glimmer_combo_data_binding_test.rb
|
219
|
-
- test/glimmer_constant_test.rb
|
220
|
-
- test/glimmer_data_binding_test.rb
|
221
|
-
- test/glimmer_list_data_binding_test.rb
|
222
|
-
- test/glimmer_listeners_test.rb
|
223
|
-
- test/glimmer_shine_data_binding_test.rb
|
224
|
-
- test/glimmer_tab_item_test.rb
|
225
|
-
- test/glimmer_table_data_binding_test.rb
|
226
|
-
- test/glimmer_test.rb
|
227
|
-
- test/helper.rb
|
228
|
-
- test/observable_model_test.rb
|
229
|
-
- test/r_widget_test.rb
|
230
|
-
- test/samples/contactmanager/contact_manager_presenter_test.rb
|
231
|
-
- test/samples/tictactoe/tic_tac_toe_test.rb
|
232
|
-
- test/xml/glimmer_xml_test.rb
|
226
|
+
test_files: []
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use jruby@glimmer --create
|