freightrain 0.5.14 → 0.6.0
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/Rakefile +1 -1
- data/lib/extensions/gtk/interface_builder.rb +9 -3
- data/lib/freightrain/binding/freight_binding.rb +3 -3
- data/lib/freightrain/{dialog_extension.rb → viewmodels/dialog_extension.rb} +0 -0
- data/lib/freightrain/{freight_view_model.rb → viewmodels/freight_view_model.rb} +4 -4
- data/lib/freightrain/views/callback_wrapper.rb +20 -0
- data/lib/freightrain/{freight_view.rb → views/freight_view.rb} +6 -0
- data/lib/freightrain/{interface_builder.rb → views/interface_builder.rb} +3 -4
- metadata +7 -6
data/Rakefile
CHANGED
@@ -30,9 +30,15 @@ module Freightrain
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def connect_signals()
|
34
|
-
@builder.connect_signals do |signal|
|
35
|
-
yield(signal)
|
33
|
+
# def connect_signals()
|
34
|
+
# @builder.connect_signals do |signal|
|
35
|
+
# yield(signal)
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
|
39
|
+
def connect_to_callback(widget, event_name, method)
|
40
|
+
widget.signal_connect(event_name) do |instance, *args|
|
41
|
+
method.call(*args)
|
36
42
|
end
|
37
43
|
end
|
38
44
|
|
File without changes
|
@@ -19,10 +19,10 @@ module Freightrain
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def self.new(*args, &block)
|
22
|
-
viewmodel = allocate
|
23
|
-
viewmodel.bootstrap
|
24
|
-
viewmodel.send(:initialize, *args, &block)
|
25
|
-
return viewmodel
|
22
|
+
@viewmodel = allocate
|
23
|
+
@viewmodel.bootstrap
|
24
|
+
@viewmodel.send(:initialize, *args, &block)
|
25
|
+
return @viewmodel
|
26
26
|
end
|
27
27
|
|
28
28
|
def bootstrap
|
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
class CallbackWrapper
|
3
|
+
|
4
|
+
attr_reader :method
|
5
|
+
|
6
|
+
def initialize(method)
|
7
|
+
@method = method
|
8
|
+
end
|
9
|
+
|
10
|
+
def matches_widget?(widget)
|
11
|
+
method_target_and_event = @method.name.sub("on_", "")
|
12
|
+
return method_target_and_event.scan(/^#{widget.name}/).any?
|
13
|
+
end
|
14
|
+
|
15
|
+
def event_name(widget)
|
16
|
+
event_name = @method.name.split(widget.name)[1]
|
17
|
+
return event_name.sub("_", "").gsub("_", "-")
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -13,6 +13,12 @@ module Freightrain
|
|
13
13
|
return @widgets.select { |widget| widget.kind_of? BindingBase }
|
14
14
|
end
|
15
15
|
|
16
|
+
def get_all_callbacks
|
17
|
+
return self.methods.select do |method_name|
|
18
|
+
method_name =~ /^on_/i
|
19
|
+
end.map { |method_name| CallbackWrapper.new(method(method_name)) }
|
20
|
+
end
|
21
|
+
|
16
22
|
def self.container_options
|
17
23
|
return {:model => :prototype}
|
18
24
|
end
|
@@ -11,10 +11,9 @@ module Freightrain
|
|
11
11
|
if builder.file_found?(file_name)
|
12
12
|
@widgets = builder.create_objects_from_file(file_name)
|
13
13
|
builder.create_object_accessors(@widgets, self)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
14
|
+
self.get_all_callbacks.each do |callback|
|
15
|
+
target = @widgets.select { |widget| callback.matches_widget?(widget)}.first
|
16
|
+
builder.connect_to_callback(target, callback.event_name(target), callback.method) if target
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freightrain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrea Dallera
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-03-
|
12
|
+
date: 2010-03-26 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -82,19 +82,20 @@ files:
|
|
82
82
|
- lib/freightrain/binding/converters/default_converter.rb
|
83
83
|
- lib/freightrain/binding/converters/float_converter.rb
|
84
84
|
- lib/freightrain/binding/converters/converter_factory.rb
|
85
|
-
- lib/freightrain/interface_builder.rb
|
85
|
+
- lib/freightrain/views/interface_builder.rb
|
86
|
+
- lib/freightrain/views/freight_view.rb
|
87
|
+
- lib/freightrain/views/callback_wrapper.rb
|
86
88
|
- lib/freightrain/testhelpers/container_helpers.rb
|
87
89
|
- lib/freightrain/string_patch.rb
|
88
|
-
- lib/freightrain/dialog_extension.rb
|
89
90
|
- lib/freightrain/regions/region_host.rb
|
90
91
|
- lib/freightrain/regions/freight_region.rb
|
91
|
-
- lib/freightrain/freight_view_model.rb
|
92
92
|
- lib/freightrain/services/service_host.rb
|
93
93
|
- lib/freightrain/services/freight_service.rb
|
94
94
|
- lib/freightrain/testhelpers.rb
|
95
95
|
- lib/freightrain/ioc/container.rb
|
96
96
|
- lib/freightrain/ioc/container_hookable.rb
|
97
|
-
- lib/freightrain/
|
97
|
+
- lib/freightrain/viewmodels/dialog_extension.rb
|
98
|
+
- lib/freightrain/viewmodels/freight_view_model.rb
|
98
99
|
- lib/freightrain/auto_requirer.rb
|
99
100
|
- lib/freightrain/bootstrapper.rb
|
100
101
|
- lib/freightrain/signals/freight_signal.rb
|