freightrain 0.5.10 → 0.5.11

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ require 'rake/testtask'
9
9
 
10
10
  spec = Gem::Specification.new do |s|
11
11
  s.name = 'freightrain'
12
- s.version = '0.5.10'
12
+ s.version = '0.5.11'
13
13
  s.add_dependency('require_all', '>= 1.1.0')
14
14
  s.add_dependency('needle', '>= 1.3.0')
15
15
  s.has_rdoc = false
@@ -43,6 +43,25 @@ module Freightrain
43
43
 
44
44
  end
45
45
 
46
+ def message_dialog(description, secondary_text = "", title = "Information")
47
+ raise "toplevel not implemented. If you want to use " +
48
+ "DialogHelper inside your class you should provide " +
49
+ "a toplevel widget via the toplevel method" unless respond_to? :toplevel
50
+ result = false
51
+ dialog = Gtk::MessageDialog.new(
52
+ toplevel,
53
+ Gtk::Dialog::MODAL,
54
+ Gtk::MessageDialog::INFO,
55
+ Gtk::MessageDialog::BUTTONS_OK,
56
+ description)
57
+ dialog.title = title
58
+ dialog.secondary_text = secondary_text
59
+ dialog.run
60
+ dialog.destroy
61
+ return result
62
+
63
+ end
64
+
46
65
  end #DialogHelper
47
66
 
48
67
  end #Toolkit
@@ -16,6 +16,7 @@ module Gtk
16
16
 
17
17
  def bind(options)
18
18
  if options[:property].to_sym == :elements
19
+ options[:force] = true
19
20
  columns = normalize_column_bindings(options[:columns])
20
21
  @paths = get_paths(columns)
21
22
  columns.each do |column|
@@ -28,9 +28,9 @@ module Freightrain
28
28
  @cache = value
29
29
  end
30
30
  rescue Exception => ex
31
- # p "#{@widget.name} - update"
32
- # p ex.message
33
- # p @path
31
+ p "#{@widget.name} - update"
32
+ p ex.message
33
+ p @path
34
34
  end
35
35
  end
36
36
 
@@ -23,8 +23,10 @@ module Freightrain
23
23
  get_services
24
24
  build_regions
25
25
  create_signals
26
- @view.signals.each do |key,signal|
27
- signal.connect(method("on_#{key}")) if self.respond_to? "on_#{key}"
26
+ @view.hook_to_signals(self)
27
+ services.each do |service_key|
28
+ service = instance_variable_get("@#{service_key}")
29
+ service.hook_to_signals(self, service_key)
28
30
  end
29
31
  @view.data_source = self
30
32
  end
@@ -20,11 +20,7 @@ module Freightrain
20
20
  end
21
21
 
22
22
  def connect_to(host)
23
- @viewmodel.signals.each do |key, signal|
24
- if host.respond_to? "#{@name.to_s}_on_#{key.to_s}".to_sym
25
- signal.connect(host.method("#{@name.to_s}_on_#{key.to_s}".to_sym))
26
- end
27
- end
23
+ @viewmodel.hook_to_signals(host, @name.to_s)
28
24
  end
29
25
 
30
26
  end
@@ -12,15 +12,10 @@ module Freightrain
12
12
 
13
13
  def initialize
14
14
  get_services
15
- create_signals
16
- services = self.class.instance_variable_get(:@services)
17
- services ||= []
15
+ create_signals
18
16
  services.each do |service_key|
19
17
  service = instance_variable_get("@#{service_key}")
20
- service.signals.each do |signal_key, signal|
21
- method_name = "#{service_key}_on_#{signal_key}"
22
- signal.connect(method_name) if self.respond_to?(method_name)
23
- end
18
+ service.hook_to_signals(self, service_key)
24
19
  end
25
20
  end
26
21
 
@@ -15,7 +15,11 @@ module Freightrain
15
15
  service_instance = Freightrain["#{service}_service".to_sym]
16
16
  instance_variable_set("@#{service}".to_sym, service_instance)
17
17
  end
18
- end
18
+ end
19
+
20
+ def services
21
+ return self.class.instance_variable_get(:@services) || []
22
+ end
19
23
 
20
24
  end
21
25
  end
@@ -23,7 +27,7 @@ module Freightrain
23
27
  def service(name)
24
28
  @services ||= []
25
29
  @services << name.to_sym
26
- end
30
+ end
27
31
 
28
32
  end
29
33
 
@@ -18,13 +18,21 @@ module Freightrain
18
18
 
19
19
  def create_signals
20
20
  @signals = {}
21
- signals = self.class.instance_variable_get(:@signals)
22
- signals ||= []
23
- signals.each do |signal|
21
+ signal_keys = self.class.instance_variable_get(:@signals)
22
+ signal_keys ||= []
23
+ signal_keys.each do |signal|
24
24
  @signals[signal] = FreightSignal.new
25
25
  end
26
26
  end
27
27
 
28
+ def hook_to_signals(host, prefix = nil)
29
+ @signals.each do |signal_key, signal|
30
+ method_name = "on_#{signal_key}"
31
+ method_name = "#{prefix}_#{method_name}" if prefix
32
+ signal.connect(host.method(method_name)) if host.respond_to?(method_name)
33
+ end
34
+ end
35
+
28
36
 
29
37
  end
30
38
  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.5.10
4
+ version: 0.5.11
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-01 00:00:00 +01:00
12
+ date: 2010-03-09 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency