glimmer-dsl-swt 0.1.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/README.md +31 -8
- data/RUBY_VERSION +1 -1
- data/VERSION +1 -1
- data/icons/scaffold_app.icns +0 -0
- data/lib/ext/glimmer.rb +8 -1
- data/lib/ext/glimmer/config.rb +12 -4
- data/lib/glimmer-dsl-swt.rb +8 -3
- data/lib/glimmer/data_binding/list_selection_binding.rb +0 -1
- data/lib/glimmer/data_binding/table_items_binding.rb +5 -4
- data/lib/glimmer/data_binding/widget_binding.rb +7 -6
- data/lib/glimmer/dsl/swt/dnd_expression.rb +25 -0
- data/lib/glimmer/dsl/swt/message_box_expression.rb +0 -4
- data/lib/glimmer/launcher.rb +1 -1
- data/lib/glimmer/package.rb +2 -0
- data/lib/glimmer/rake_task.rb +22 -0
- data/lib/glimmer/rake_task/list.rb +73 -0
- data/lib/glimmer/scaffold.rb +6 -9
- data/lib/glimmer/swt/dnd_proxy.rb +34 -0
- data/lib/glimmer/swt/packages.rb +9 -6
- data/lib/glimmer/swt/style_constantizable.rb +120 -0
- data/lib/glimmer/swt/swt_proxy.rb +20 -88
- data/lib/glimmer/swt/table_proxy.rb +34 -11
- data/lib/glimmer/swt/widget_proxy.rb +140 -13
- metadata +72 -11
- data/lib/glimmer/data_binding/model_binding.rb +0 -248
- data/lib/glimmer/data_binding/observable.rb +0 -21
- data/lib/glimmer/data_binding/observable_array.rb +0 -107
- data/lib/glimmer/data_binding/observable_model.rb +0 -108
- data/lib/glimmer/data_binding/observer.rb +0 -124
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d324a6327e85a840d2a980ba78a47fa9c50e927b409f128c60d9b2ac38f2124
|
4
|
+
data.tar.gz: ace770a87429cbaca623310837618e14f12e8375221c433751e1feb13e768eff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d7e8c740b9fb6a8993e906a485cdc50241ea5a12664ff4f9ec128de2b2f77ad9718ae41fb0e9bd391546127273769769a1ac259870f2327bd29bba18d40afe3
|
7
|
+
data.tar.gz: 56406b25d9ab52e5af2043f33860cbd8cc0a5681b4e7eeba77325122c71cf9897c7bcd6f19ea68e3b3171f1e0dfa07c8d8dc501297fce2e8c83cc37ba3ed024b
|
data/README.md
CHANGED
@@ -1,11 +1,36 @@
|
|
1
|
-
# Glimmer DSL for SWT 0.1
|
1
|
+
# <img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 /> Glimmer DSL for SWT 0.2.1 (Desktop GUI)
|
2
2
|
[](http://badge.fury.io/rb/glimmer-dsl-swt)
|
3
3
|
[](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
|
4
|
+
[](https://coveralls.io/github/AndyObtiva/glimmer-dsl-swt?branch=master)
|
5
|
+
[](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
4
6
|
|
5
|
-
[Glimmer](https://github.com/AndyObtiva/glimmer) DSL for SWT enables desktop development with Glimmer.
|
7
|
+
[Glimmer](https://github.com/AndyObtiva/glimmer) DSL for [SWT](https://www.eclipse.org/swt/) enables desktop development with [Glimmer](https://github.com/AndyObtiva/glimmer).
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
+
[Glimmer](https://github.com/AndyObtiva/glimmer) is a native-GUI cross-platform desktop development library written in Ruby. Glimmer's main innovation is a JRuby DSL that enables productive and efficient authoring of desktop application user-interfaces while relying on the robust Eclipse SWT library. Glimmer additionally innovates by having built-in data-binding support to greatly facilitate synchronizing the GUI with domain models. As a result, that achieves true decoupling of object oriented components, enabling developers to solve business problems without worrying about GUI concerns, or alternatively drive development GUI-first, and then write clean business models test-first afterwards.
|
10
|
+
|
11
|
+
You may find full setup/usage instructions at the main [Glimmer project page](https://github.com/AndyObtiva/glimmer).
|
12
|
+
|
13
|
+
Other Glimmer DSL gems:
|
14
|
+
- [glimmer-dsl-opal](https://github.com/AndyObtiva/glimmer-dsl-opal): Glimmer DSL for Opal (Web GUI Adapter for Desktop Apps)
|
15
|
+
- [glimmer-dsl-xml](https://github.com/AndyObtiva/glimmer-dsl-xml): Glimmer DSL for XML (& HTML)
|
16
|
+
- [glimmer-dsl-css](https://github.com/AndyObtiva/glimmer-dsl-css): Glimmer DSL for CSS (Cascading Style Sheets)
|
17
|
+
|
18
|
+
## Example
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
include Glimmer
|
22
|
+
|
23
|
+
shell {
|
24
|
+
text 'Glimmer'
|
25
|
+
label {
|
26
|
+
text 'Hello, World!'
|
27
|
+
}
|
28
|
+
}.open
|
29
|
+
```
|
30
|
+
|
31
|
+

|
32
|
+
|
33
|
+
Learn more at the main [Glimmer project page](https://github.com/AndyObtiva/glimmer).
|
9
34
|
|
10
35
|
## Help
|
11
36
|
|
@@ -15,11 +40,9 @@ You may submit [issues](https://github.com/AndyObtiva/glimmer/issues) on [GitHub
|
|
15
40
|
|
16
41
|
[Click here to submit an issue.](https://github.com/AndyObtiva/glimmer/issues)
|
17
42
|
|
18
|
-
###
|
19
|
-
|
20
|
-
If you need live help, try the [#glimmer](http://widget.mibbit.com/?settings=7514b8a196f8f1de939a351245db7aa8&server=irc.mibbit.net&channel=%23glimmer) IRC channel on [irc.mibbit.net](http://widget.mibbit.com/?settings=7514b8a196f8f1de939a351245db7aa8&server=irc.mibbit.net&channel=%23glimmer). If no one was available, you may [leave a GitHub issue](https://github.com/AndyObtiva/glimmer/issues) to schedule a meetup on IRC.
|
43
|
+
### Chat
|
21
44
|
|
22
|
-
|
45
|
+
If you need live help, try to [](https://gitter.im/AndyObtiva/glimmer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
23
46
|
|
24
47
|
## Feature Suggestions
|
25
48
|
|
data/RUBY_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
jruby-9.2.
|
1
|
+
jruby-9.2.12.0
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1
|
1
|
+
0.2.1
|
data/icons/scaffold_app.icns
CHANGED
Binary file
|
data/lib/ext/glimmer.rb
CHANGED
@@ -3,11 +3,18 @@ require 'glimmer/swt/packages'
|
|
3
3
|
module Glimmer
|
4
4
|
class << self
|
5
5
|
def included(klass)
|
6
|
+
if Object.const_defined?(:ActiveSupport) && ActiveSupport.const_defined?(:Dependencies)
|
7
|
+
begin
|
8
|
+
ActiveSupport::Dependencies.unhook!
|
9
|
+
rescue => e
|
10
|
+
# noop TODO support logging unimportant details below debug level
|
11
|
+
end
|
12
|
+
end
|
6
13
|
if Config.import_swt_packages
|
7
14
|
klass.include(SWT::Packages)
|
8
15
|
klass.extend(SWT::Packages)
|
9
|
-
klass.extend(Glimmer)
|
10
16
|
end
|
17
|
+
klass.extend(Glimmer)
|
11
18
|
end
|
12
19
|
end
|
13
20
|
end
|
data/lib/ext/glimmer/config.rb
CHANGED
@@ -1,16 +1,24 @@
|
|
1
1
|
module Glimmer
|
2
2
|
module Config
|
3
|
+
DEFAULT_IMPORT_SWT_PACKAGES = [
|
4
|
+
'org.eclipse.swt',
|
5
|
+
'org.eclipse.swt.widgets',
|
6
|
+
'org.eclipse.swt.layout',
|
7
|
+
'org.eclipse.swt.graphics',
|
8
|
+
'org.eclipse.swt.browser',
|
9
|
+
'org.eclipse.swt.custom',
|
10
|
+
'org.eclipse.swt.dnd',
|
11
|
+
]
|
12
|
+
|
3
13
|
class << self
|
4
14
|
# Tells Glimmer to import SWT packages into including class (default: true)
|
5
15
|
def import_swt_packages=(value)
|
6
|
-
@@import_swt_packages =
|
16
|
+
@@import_swt_packages = value
|
7
17
|
end
|
8
18
|
|
9
19
|
# Returns whether Glimmer will import SWT packages into including class
|
10
20
|
def import_swt_packages
|
11
|
-
|
12
|
-
@@import_swt_packages = true
|
13
|
-
end
|
21
|
+
@@import_swt_packages = DEFAULT_IMPORT_SWT_PACKAGES if !defined?(@@import_swt_packages) || (defined?(@@import_swt_packages) && @@import_swt_packages == true)
|
14
22
|
@@import_swt_packages
|
15
23
|
end
|
16
24
|
end
|
data/lib/glimmer-dsl-swt.rb
CHANGED
@@ -2,9 +2,14 @@ $LOAD_PATH.unshift(File.expand_path('..', __FILE__))
|
|
2
2
|
|
3
3
|
# External requires
|
4
4
|
require 'java'
|
5
|
-
|
6
|
-
require '
|
7
|
-
require
|
5
|
+
if ENV['BUNDLER_REQUIRE'].to_s.downcase == 'true'
|
6
|
+
require 'bundler'
|
7
|
+
Bundler.require
|
8
|
+
else
|
9
|
+
require 'nested_inherited_jruby_include_package'
|
10
|
+
require 'super_module'
|
11
|
+
require 'glimmer'
|
12
|
+
end
|
8
13
|
|
9
14
|
# Internal requires
|
10
15
|
require 'ext/glimmer/config'
|
@@ -22,23 +22,24 @@ module Glimmer
|
|
22
22
|
@table.body_root.column_properties = @column_properties
|
23
23
|
end
|
24
24
|
call(@model_binding.evaluate_property)
|
25
|
-
|
26
|
-
observe(model, model_binding.property_name_expression)
|
25
|
+
observe(model_binding)
|
27
26
|
@table.on_widget_disposed do |dispose_event|
|
28
27
|
unregister_all_observables
|
29
28
|
end
|
30
29
|
end
|
31
30
|
|
32
31
|
def call(new_model_collection=nil)
|
32
|
+
new_model_collection = @model_binding.evaluate_property # this ensures applying converters (e.g. :on_read)
|
33
33
|
if new_model_collection and new_model_collection.is_a?(Array)
|
34
34
|
observe(new_model_collection, @column_properties)
|
35
35
|
@model_collection = new_model_collection
|
36
36
|
end
|
37
|
-
populate_table(@model_collection, @table, @column_properties)
|
37
|
+
populate_table(@model_collection, @table, @column_properties)
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
def populate_table(model_collection, parent, column_properties)
|
41
41
|
selected_table_item_models = parent.swt_widget.getSelection.map(&:getData)
|
42
|
+
parent.finish_edit!
|
42
43
|
parent.swt_widget.removeAll
|
43
44
|
model_collection.each do |model|
|
44
45
|
table_item = TableItem.new(parent.swt_widget, SWT::SWTProxy[:none])
|
@@ -1,6 +1,5 @@
|
|
1
|
-
require 'glimmer'
|
2
|
-
|
3
|
-
require_relative 'observer'
|
1
|
+
require 'glimmer/data_binding/observable'
|
2
|
+
require 'glimmer/data_binding/observer'
|
4
3
|
|
5
4
|
module Glimmer
|
6
5
|
module DataBinding
|
@@ -10,10 +9,10 @@ module Glimmer
|
|
10
9
|
include Observer
|
11
10
|
|
12
11
|
attr_reader :widget, :property
|
13
|
-
def initialize(
|
14
|
-
@widget =
|
12
|
+
def initialize(widget, property, translator = nil)
|
13
|
+
@widget = widget
|
15
14
|
@property = property
|
16
|
-
@translator = translator || proc {|value| value}
|
15
|
+
@translator = translator || proc {|value| value} #TODO check on this it doesn't seem used
|
17
16
|
|
18
17
|
if @widget.respond_to?(:dispose)
|
19
18
|
@widget.on_widget_disposed do |dispose_event|
|
@@ -21,10 +20,12 @@ module Glimmer
|
|
21
20
|
end
|
22
21
|
end
|
23
22
|
end
|
23
|
+
|
24
24
|
def call(value)
|
25
25
|
converted_value = translated_value = @translator.call(value)
|
26
26
|
@widget.set_attribute(@property, converted_value) unless evaluate_property == converted_value
|
27
27
|
end
|
28
|
+
|
28
29
|
def evaluate_property
|
29
30
|
@widget.get_attribute(@property)
|
30
31
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'glimmer/dsl/static_expression'
|
2
|
+
require 'glimmer/swt/dnd_proxy'
|
3
|
+
|
4
|
+
# TODO consider turning static keywords like bind into methods
|
5
|
+
|
6
|
+
module Glimmer
|
7
|
+
module DSL
|
8
|
+
module SWT
|
9
|
+
# Responsible for returning DND constant values
|
10
|
+
#
|
11
|
+
# Named DndExpression (not DNDExpression) so that the DSL engine
|
12
|
+
# discovers quickly by convention
|
13
|
+
class DndExpression < StaticExpression
|
14
|
+
def can_interpret?(parent, keyword, *args, &block)
|
15
|
+
block.nil? &&
|
16
|
+
args.size > 0
|
17
|
+
end
|
18
|
+
|
19
|
+
def interpret(parent, keyword, *args, &block)
|
20
|
+
Glimmer::SWT::DNDProxy[*args]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -14,10 +14,6 @@ module Glimmer
|
|
14
14
|
|
15
15
|
include_package 'org.eclipse.swt.widgets'
|
16
16
|
|
17
|
-
def can_interpret?(parent, keyword, *args, &block)
|
18
|
-
keyword == 'message_box'
|
19
|
-
end
|
20
|
-
|
21
17
|
def interpret(parent, keyword, *args, &block)
|
22
18
|
potential_parent = args.first
|
23
19
|
parent = args.shift if potential_parent.is_a?(Shell) || (potential_parent.respond_to?(:swt_widget) && potential_parent.swt_widget.is_a?(Shell))
|
data/lib/glimmer/launcher.rb
CHANGED
@@ -33,7 +33,7 @@ module Glimmer
|
|
33
33
|
This runs the Glimmer application samples/hello_world.rb
|
34
34
|
MULTI_LINE_STRING
|
35
35
|
|
36
|
-
GLIMMER_LIB_LOCAL = File.expand_path(File.join(
|
36
|
+
GLIMMER_LIB_LOCAL = File.expand_path(File.join('lib', 'glimmer-dsl-swt.rb'))
|
37
37
|
GLIMMER_LIB_GEM = 'glimmer-dsl-swt'
|
38
38
|
GLIMMER_OPTIONS = %w[--log-level --quiet]
|
39
39
|
GLIMMER_OPTION_ENV_VAR_MAPPING = {
|
data/lib/glimmer/package.rb
CHANGED
data/lib/glimmer/rake_task.rb
CHANGED
@@ -59,4 +59,26 @@ namespace :glimmer do
|
|
59
59
|
Scaffold.custom_widget_gem(args[:custom_widget_name], args[:namespace])
|
60
60
|
end
|
61
61
|
end
|
62
|
+
|
63
|
+
namespace :list do
|
64
|
+
task :list_require do
|
65
|
+
require_relative 'rake_task/list'
|
66
|
+
end
|
67
|
+
|
68
|
+
desc 'List Glimmer custom widget gems available at rubygems.org (query is optional)'
|
69
|
+
task :custom_widget_gems, [:query] => :list_require do |t, args|
|
70
|
+
Glimmer::RakeTask::List.custom_widget_gems(args[:query])
|
71
|
+
end
|
72
|
+
|
73
|
+
desc 'List Glimmer custom shell gems available at rubygems.org (query is optional)'
|
74
|
+
task :custom_shell_gems, [:query] => :list_require do |t, args|
|
75
|
+
Glimmer::RakeTask::List.custom_shell_gems(args[:query])
|
76
|
+
end
|
77
|
+
|
78
|
+
desc 'List Glimmer DSL gems available at rubygems.org (query is optional)'
|
79
|
+
task :dsl_gems, [:query] => :list_require do |t, args|
|
80
|
+
Glimmer::RakeTask::List.dsl_gems(args[:query])
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
62
84
|
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'facets'
|
2
|
+
require 'text-table'
|
3
|
+
|
4
|
+
module Glimmer
|
5
|
+
module RakeTask
|
6
|
+
# Lists Glimmer related gems to use in rake_task.rb
|
7
|
+
class List
|
8
|
+
class << self
|
9
|
+
REGEX_GEM_LINE = /^([^\(]+) \(([^\)]+)\)$/
|
10
|
+
|
11
|
+
def custom_widget_gems(query=nil)
|
12
|
+
list_gems('glimmer-cw-', query) do |result|
|
13
|
+
puts
|
14
|
+
puts " Glimmer Custom Widget Gems#{" matching [#{query}]" if query} at rubygems.org:"
|
15
|
+
puts result
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def custom_shell_gems(query=nil)
|
20
|
+
list_gems('glimmer-cs-', query) do |result|
|
21
|
+
puts
|
22
|
+
puts " Glimmer Custom Shell Gems#{" matching [#{query}]" if query} at rubygems.org:"
|
23
|
+
puts result
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def dsl_gems(query=nil)
|
28
|
+
list_gems('glimmer-dsl-', query) do |result|
|
29
|
+
puts
|
30
|
+
puts " Glimmer DSL Gems#{" matching [#{query}]" if query} at rubygems.org:"
|
31
|
+
puts result
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def list_gems(gem_prefix, query=nil, &printer)
|
36
|
+
lines = `gem search -d #{gem_prefix}`.split("\n")
|
37
|
+
gems = lines.slice_before {|l| l.match(REGEX_GEM_LINE) }.to_a
|
38
|
+
gems = gems.map do |gem|
|
39
|
+
{
|
40
|
+
name: gem[0].match(REGEX_GEM_LINE)[1],
|
41
|
+
version: gem[0].match(REGEX_GEM_LINE)[2],
|
42
|
+
author: gem[1].strip,
|
43
|
+
description: gem[4..-1].map(&:strip).join(' ')
|
44
|
+
}
|
45
|
+
end.select do |gem|
|
46
|
+
query.nil? || "#{gem[:name]} #{gem[:author]} #{gem[:description]}".downcase.include?(query.to_s.downcase)
|
47
|
+
end
|
48
|
+
printer.call(tablify(gem_prefix, gems))
|
49
|
+
end
|
50
|
+
|
51
|
+
def tablify(gem_prefix, gems)
|
52
|
+
array_of_arrays = gems.map do |gem|
|
53
|
+
[
|
54
|
+
gem[:name].sub(gem_prefix, '').underscore.titlecase,
|
55
|
+
gem[:name],
|
56
|
+
gem[:version],
|
57
|
+
gem[:author].sub('Author: ', ''),
|
58
|
+
gem[:description],
|
59
|
+
]
|
60
|
+
end
|
61
|
+
Text::Table.new(
|
62
|
+
:head => %w[Name Gem Version Author Description],
|
63
|
+
:rows => array_of_arrays,
|
64
|
+
:horizontal_padding => 1,
|
65
|
+
:vertical_boundary => ' ',
|
66
|
+
:horizontal_boundary => ' ',
|
67
|
+
:boundary_intersection => ' '
|
68
|
+
)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
data/lib/glimmer/scaffold.rb
CHANGED
@@ -2,6 +2,8 @@ require 'fileutils'
|
|
2
2
|
require 'os'
|
3
3
|
require 'facets'
|
4
4
|
|
5
|
+
# TODO refactor to nest under RakeTask namespace
|
6
|
+
|
5
7
|
class Scaffold
|
6
8
|
class << self
|
7
9
|
include FileUtils
|
@@ -155,7 +157,6 @@ class Scaffold
|
|
155
157
|
end
|
156
158
|
mkdir 'bin'
|
157
159
|
write "bin/#{file_name(app_name)}", app_bin_file(app_name)
|
158
|
-
FileUtils.chmod 0755, "bin/#{file_name(app_name)}"
|
159
160
|
system "bash -c '#{RVM_FUNCTION}\n cd .\n bundle\n glimmer package\n'"
|
160
161
|
system "open packages/bundles/#{human_name(app_name).gsub(' ', '\ ')}.app"
|
161
162
|
# TODO generate rspec test suite
|
@@ -193,14 +194,14 @@ class Scaffold
|
|
193
194
|
write '.ruby-gemset', gem_name
|
194
195
|
write 'VERSION', '1.0.0'
|
195
196
|
write 'Gemfile', GEMFILE_GEM
|
196
|
-
write 'Rakefile', gem_rakefile(custom_shell_name, namespace)
|
197
|
+
write 'Rakefile', gem_rakefile(custom_shell_name, namespace, gem_name)
|
197
198
|
append "lib/#{gem_name}.rb", gem_main_file(custom_shell_name, namespace)
|
198
199
|
mkdir 'lib/views'
|
199
200
|
custom_shell(custom_shell_name, namespace, :gem)
|
200
201
|
mkdir 'bin'
|
201
202
|
write "bin/#{gem_name}", gem_bin_file(gem_name, custom_shell_name, namespace)
|
202
203
|
write "bin/#{file_name(custom_shell_name)}", gem_bin_command_file(gem_name)
|
203
|
-
FileUtils.chmod 0755, "bin/#{file_name(custom_shell_name)}"
|
204
|
+
FileUtils.chmod 0755, "bin/#{file_name(custom_shell_name)}"
|
204
205
|
if OS.mac?
|
205
206
|
mkdir_p 'package/macosx'
|
206
207
|
icon_file = "package/macosx/#{human_name(custom_shell_name)}.icns"
|
@@ -317,8 +318,6 @@ class Scaffold
|
|
317
318
|
|
318
319
|
def app_bin_file(app_name)
|
319
320
|
<<~MULTI_LINE_STRING
|
320
|
-
#!/usr/bin/env ruby
|
321
|
-
|
322
321
|
require_relative '../app/#{file_name(app_name)}'
|
323
322
|
|
324
323
|
#{class_name(app_name)}.new.open
|
@@ -327,8 +326,6 @@ class Scaffold
|
|
327
326
|
|
328
327
|
def gem_bin_file(gem_name, custom_shell_name, namespace)
|
329
328
|
<<~MULTI_LINE_STRING
|
330
|
-
#!/usr/bin/env ruby
|
331
|
-
|
332
329
|
require_relative '../lib/#{gem_name}'
|
333
330
|
|
334
331
|
include Glimmer
|
@@ -349,7 +346,7 @@ class Scaffold
|
|
349
346
|
MULTI_LINE_STRING
|
350
347
|
end
|
351
348
|
|
352
|
-
def gem_rakefile(custom_shell_name = nil, namespace = nil)
|
349
|
+
def gem_rakefile(custom_shell_name = nil, namespace = nil, gem_name = nil)
|
353
350
|
rakefile_content = File.read('Rakefile')
|
354
351
|
lines = rakefile_content.split("\n")
|
355
352
|
require_rake_line_index = lines.index(lines.detect {|l| l.include?("require 'rake'") })
|
@@ -357,7 +354,7 @@ class Scaffold
|
|
357
354
|
gem_files_line_index = lines.index(lines.detect {|l| l.include?('# dependencies defined in Gemfile') })
|
358
355
|
if custom_shell_name
|
359
356
|
lines.insert(gem_files_line_index, " gem.files = Dir['VERSION', 'LICENSE.txt', 'lib/**/*.rb', 'bin/**/*']")
|
360
|
-
lines.insert(gem_files_line_index+1, " gem.executables = ['#{file_name(custom_shell_name)}']")
|
357
|
+
lines.insert(gem_files_line_index+1, " gem.executables = ['#{gem_name}', '#{file_name(custom_shell_name)}']")
|
361
358
|
else
|
362
359
|
lines.insert(gem_files_line_index, " gem.files = Dir['lib/**/*.rb']")
|
363
360
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'glimmer/swt/style_constantizable'
|
2
|
+
|
3
|
+
module Glimmer
|
4
|
+
module SWT
|
5
|
+
# Proxy for org.eclipse.swt.dnd.DND
|
6
|
+
#
|
7
|
+
# Follows the Proxy Design Pattern
|
8
|
+
class DNDProxy
|
9
|
+
include StyleConstantizable
|
10
|
+
|
11
|
+
class << self
|
12
|
+
JAVA_IMPORT = 'org.eclipse.swt.dnd.DND'
|
13
|
+
|
14
|
+
java_import JAVA_IMPORT
|
15
|
+
|
16
|
+
def constant_java_import
|
17
|
+
JAVA_IMPORT
|
18
|
+
end
|
19
|
+
|
20
|
+
def constant_source_class
|
21
|
+
DND
|
22
|
+
end
|
23
|
+
|
24
|
+
def constant_value_none
|
25
|
+
DND::DROP_NONE
|
26
|
+
end
|
27
|
+
|
28
|
+
def extra_styles
|
29
|
+
{}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|