freightrain 0.5.10 → 0.5.11

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 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