freightrain 0.5.9 → 0.5.10
Sign up to get free protection for your applications and to get access to all the features.
- data/README +16 -3
- data/Rakefile +2 -2
- data/lib/freightrain/services/freight_service.rb +15 -0
- data/lib/freightrain/services/service_host.rb +3 -2
- data/lib/freightrain/signals/signal_host.rb +1 -0
- metadata +2 -2
data/README
CHANGED
@@ -1,4 +1,17 @@
|
|
1
|
-
|
1
|
+
==== freightrain - full speed ahead!
|
2
|
+
|
3
|
+
== WHAT IS IT?
|
4
|
+
Freightrain is a MVVM (model/view/viewmodel) framework for developing desktop applications in ruby
|
5
|
+
|
6
|
+
== HOW DO I GET IT?
|
7
|
+
gem install freightrain
|
8
|
+
(also make sure you have the latest ruby/gnome2 bindings installed (=> 0.19.3) )
|
9
|
+
|
10
|
+
== HOW DO I USE IT?
|
11
|
+
For now, you should take a look at http://github.com/bolthar/rubydraulica .
|
12
|
+
Documentation coming soon.
|
13
|
+
|
14
|
+
== WHERE DO I REPORT BUGS/FEATURE REQUESTS?
|
15
|
+
andrea@andreadallera.com
|
16
|
+
|
2
17
|
|
3
|
-
DEV ALPHA
|
4
|
-
testing
|
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.
|
12
|
+
s.version = '0.5.10'
|
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
|
@@ -18,7 +18,7 @@ spec = Gem::Specification.new do |s|
|
|
18
18
|
s.author = 'Andrea Dallera'
|
19
19
|
s.email = 'andrea@andreadallera.com'
|
20
20
|
s.files = %w(README Rakefile) + Dir.glob("{bin,lib}/**/*")
|
21
|
-
s.require_path = "lib"
|
21
|
+
s.require_path = "lib"
|
22
22
|
end
|
23
23
|
|
24
24
|
Rake::GemPackageTask.new(spec) do |p|
|
@@ -4,9 +4,24 @@ module Freightrain
|
|
4
4
|
class FreightService
|
5
5
|
extend ContainerHookable
|
6
6
|
extend ServiceHost
|
7
|
+
#WARNING! Service, as it is right now, are
|
8
|
+
#SINGLETONS by default. That means if you consume
|
9
|
+
#the same service from two different hosts, the LAST
|
10
|
+
#host hooking to the callback will actually get the calls.
|
11
|
+
extend SignalHost
|
7
12
|
|
8
13
|
def initialize
|
9
14
|
get_services
|
15
|
+
create_signals
|
16
|
+
services = self.class.instance_variable_get(:@services)
|
17
|
+
services ||= []
|
18
|
+
services.each do |service_key|
|
19
|
+
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
|
24
|
+
end
|
10
25
|
end
|
11
26
|
|
12
27
|
end
|
@@ -12,9 +12,10 @@ module Freightrain
|
|
12
12
|
services = self.class.instance_variable_get(:@services)
|
13
13
|
services ||= []
|
14
14
|
services.each do |service|
|
15
|
-
|
15
|
+
service_instance = Freightrain["#{service}_service".to_sym]
|
16
|
+
instance_variable_set("@#{service}".to_sym, service_instance)
|
16
17
|
end
|
17
|
-
end
|
18
|
+
end
|
18
19
|
|
19
20
|
end
|
20
21
|
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.
|
4
|
+
version: 0.5.10
|
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-
|
12
|
+
date: 2010-03-01 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|