freightrain 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,4 +1,6 @@
1
- = freightrain - full speed ahead!
1
+ = freightrain
2
+
3
+ full speed ahead!
2
4
 
3
5
  == WHAT IS IT?
4
6
  Freightrain is a MVVM (model/view/viewmodel) framework for developing desktop applications in ruby
@@ -9,7 +11,9 @@ Freightrain is a MVVM (model/view/viewmodel) framework for developing desktop ap
9
11
  (also make sure you have the latest ruby/gnome2 bindings installed (=> 0.19.3) )
10
12
 
11
13
  == HOW DO I USE IT?
12
- For now, you should take a look at http://github.com/bolthar/rubydraulica
14
+ For now, you should take a look at http://github.com/bolthar/rubydraulica
15
+
16
+ Note that the project is currently in ALPHA state. Use it in production at your own risk :-)
13
17
 
14
18
  To get a working stub, install the gem and then:
15
19
  ftrain app my_app
@@ -18,10 +22,18 @@ this will create a new directory
18
22
  containing the application stub. To run it, cd into the directory and:
19
23
  ruby my_app.rb
20
24
 
25
+ 'ftrain' command not working? Look here => http://stackoverflow.com/questions/909673/gems-and-ubuntu-9-04
21
26
 
22
27
  Documentation coming soon.
23
28
 
24
29
  == WHERE DO I REPORT BUGS/FEATURE REQUESTS?
30
+
25
31
  andrea@andreadallera.com
26
32
 
33
+ Would also be very appreciated:
34
+
35
+ === Reports about installation issues (GTK2, ruby/gnome, ftrain)
36
+ === Reports about different platforms (could you install on OSX? Let me know!)
37
+
38
+
27
39
 
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.6.1'
12
+ s.version = '0.6.2'
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
data/bin/ftrain CHANGED
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/ruby
2
2
 
3
3
  require "rubygems"
4
- require File.join(File.dirname(__FILE__),
5
- "..", "lib", "scaffolding", "scaffolding.rb")
4
+
5
+ #HACK!!1!!
6
+ $scaffolding = true
7
+
8
+ require "freightrain"
@@ -34,7 +34,8 @@ module Freightrain
34
34
  def connect_to_callback(widget, event_name, method)
35
35
  begin
36
36
  widget.signal_connect(event_name) do |instance, *args|
37
- method.call(*args)
37
+ arguments = [instance, *args].first(method.arity.abs)
38
+ method.call(*arguments)
38
39
  end
39
40
  rescue Exception => ex
40
41
  #TODO:handle this
data/lib/freightrain.rb CHANGED
@@ -5,4 +5,6 @@ require 'needle'
5
5
  require 'require_all'
6
6
  require 'tmpdir'
7
7
 
8
- require_all File.dirname(__FILE__) + '/freightrain'
8
+ #HACK!!1!!
9
+ require File.join(File.dirname(__FILE__), 'scaffolding', 'scaffolding.rb') if $scaffolding
10
+ require_all File.join(File.dirname(__FILE__), 'freightrain')
@@ -10,15 +10,14 @@ module Freightrain
10
10
 
11
11
  require_all views_folder
12
12
  require_all viewmodels_folder
13
+ require_all services_folder if self.must_import?(services_folder)
14
+ require_all domain_folder if self.must_import?(domain_folder)
15
+
16
+ end
13
17
 
14
- if File.directory?(services_folder) && Dir.entries(services_folder).length > 2
15
- require_all services_folder
16
- end
17
-
18
- if File.directory?(domain_folder) && Dir.entries(domain_folder).length > 2
19
- require_all domain_folder
20
- end
21
-
18
+ private
19
+ def self.must_import?(directory)
20
+ return File.directory?(directory) && Dir.entries(directory).length > 2
22
21
  end
23
22
 
24
23
  end
@@ -1,2 +1,2 @@
1
1
 
2
- require File.dirname(__FILE__) + '/testhelpers/container_helpers.rb'
2
+ require File.dirname(__FILE__) + '/testhelpers/container_helpers.rb'
@@ -2,7 +2,7 @@
2
2
  class AppCommand
3
3
 
4
4
  def initialize(*args)
5
- raise "name parameter must be specified" if args.length < 1
5
+ raise "'name' parameter must be specified" if args.length < 1
6
6
  @name = args[0]
7
7
  @dir = Dir.pwd
8
8
  @path = File.join(@dir, @name)
@@ -14,15 +14,16 @@ class AppCommand
14
14
 
15
15
  def execute
16
16
  FileUtils.mkdir(@path)
17
- FileUtils.mkdir(File.join(@path, "views"))
18
- FileUtils.mkdir(File.join(@path, "viewmodels"))
19
- FileUtils.mkdir(File.join(@path, "services"))
20
- FileUtils.mkdir(File.join(@path, "domain"))
17
+ FileUtils.mkdir(File.join(@path, "lib"))
18
+ FileUtils.mkdir(File.join(@path, "lib", "views"))
19
+ FileUtils.mkdir(File.join(@path, "lib", "viewmodels"))
20
+ FileUtils.mkdir(File.join(@path, "lib", "services"))
21
+ FileUtils.mkdir(File.join(@path, "lib", "domain"))
21
22
  Generator.create_stub(File.join(@path, "#{@name}.rb"),"application", :name => @name)
22
- Generator.create_stub(File.join(@path, "views", "#{@name}_view.rb"), "view", :name => @name.capitalize)
23
- Generator.create_stub(File.join(@path, "views", "#{@name}_view.glade"), "view_toplevel_glade",:name => @name)
24
- Generator.create_stub(File.join(@path, "views", "#{@name}_view.bnd.yml"), "view_bnd", :name => @name)
25
- Generator.create_stub(File.join(@path, "viewmodels", "#{@name}_view_model.rb"), "view_model", :name => @name.capitalize)
23
+ Generator.create_stub(File.join(@path, "lib", "views", "#{@name}_view.rb"), "view_toplevel", :name => @name.capitalize, :toplevel => @name)
24
+ Generator.create_stub(File.join(@path, "lib", "views", "#{@name}_view.glade"), "view_toplevel_glade",:name => @name)
25
+ Generator.create_stub(File.join(@path, "lib", "views", "#{@name}_view.bnd.yml"), "view_bnd", :name => @name)
26
+ Generator.create_stub(File.join(@path, "lib", "viewmodels", "#{@name}_view_model.rb"), "viewmodel_toplevel", :name => @name.capitalize)
26
27
  print "Application created in #{@path}\n"
27
28
  end
28
29
 
@@ -6,7 +6,9 @@ class Generator
6
6
  File.open(File.dirname(__FILE__) + "/templates/#{template}.ftt") do |file|
7
7
  template_content = file.lines.to_a.join
8
8
  end
9
- template_content.gsub!("$NAME", options[:name])
9
+ options.keys.each do |param|
10
+ template_content.gsub!("$#{param}".upcase, "#{options[param]}")
11
+ end
10
12
  File.open(filename, 'w+') do |file|
11
13
  file << template_content
12
14
  end
@@ -1,11 +1,9 @@
1
- #generated by ftrain
2
-
3
1
  require 'rubygems'
4
2
  require 'freightrain'
5
3
 
6
4
  include Freightrain
7
5
 
8
- Freightrain.app_path = File.dirname(__FILE__)
6
+ Freightrain.app_path = File.join(File.dirname(__FILE__), "lib")
9
7
 
10
8
  Freightrain.toolkit = :gtk
11
9
  Freightrain.start(:$NAME)
@@ -1,4 +1,3 @@
1
- #generated by ftrain
2
1
 
3
2
  class $NAMEView < FreightView
4
3
 
@@ -1,7 +1,4 @@
1
- #generated by ftrain
2
1
 
3
2
  class $NAMEViewModel < FreightViewModel
4
3
 
5
- $REGIONS
6
-
7
4
  end
@@ -0,0 +1,6 @@
1
+
2
+ class $NAMEView < FreightView
3
+
4
+ signal :quit, :forwards => "$TOPLEVEL.destroy"
5
+
6
+ end
@@ -0,0 +1,8 @@
1
+
2
+ class $NAMEViewModel < FreightViewModel
3
+
4
+ def on_quit
5
+ Toolkit.quit
6
+ end
7
+
8
+ 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.6.1
4
+ version: 0.6.2
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-31 00:00:00 +02:00
12
+ date: 2010-04-05 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -48,12 +48,13 @@ files:
48
48
  - lib/scaffolding/scaffolding.rb
49
49
  - lib/scaffolding/commands/app.rb
50
50
  - lib/scaffolding/commands/triad.rb
51
- - lib/scaffolding/ftrain.rb
52
51
  - lib/scaffolding/templates/view_control_glade.ftt
53
52
  - lib/scaffolding/templates/view_toplevel_glade.ftt
54
53
  - lib/scaffolding/templates/view_bnd.ftt
55
54
  - lib/scaffolding/templates/view.ftt
56
55
  - lib/scaffolding/templates/application.ftt
56
+ - lib/scaffolding/templates/view_toplevel.ftt
57
+ - lib/scaffolding/templates/viewmodel_toplevel.ftt
57
58
  - lib/scaffolding/templates/view_model.ftt
58
59
  - lib/extensions/gtk/interface_builder.rb
59
60
  - lib/extensions/gtk/dialog_helper.rb
@@ -1,23 +0,0 @@
1
-
2
- require "rubygems"
3
- require "require_all"
4
-
5
- require_all File.dirname(__FILE__) + "/commands"
6
-
7
- require File.dirname(__FILE__) + "/generator.rb"
8
-
9
- begin
10
- klass = eval("#{ARGV[0].capitalize}Command")
11
- rescue
12
- print "No command '#{ARGV[0]}'\n"
13
- end
14
-
15
- begin
16
- command = klass.new(*ARGV[1...ARGV.length])
17
- command.check
18
- command.execute
19
- rescue Exception => ex
20
- print ex.message + "\n"
21
- end
22
-
23
-