dynamics 0.0.7 → 0.0.8

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/base/Rakefile CHANGED
@@ -6,8 +6,36 @@ require 'motion/project'
6
6
  require 'rubygems'
7
7
  require 'bubble-wrap'
8
8
 
9
+ def render_code(name)
10
+ f = File.open(name)
11
+ content = f.read
12
+ f.close
13
+ content
14
+ end
15
+
9
16
  Motion::Project::App.setup do |app|
10
17
  app.name = ''
11
- app.delegate_class = 'MainController'
12
- app.files.unshift(File.join(Gem.bin_path('dynamics', 'dynamics').gsub(File.join('bin', 'dynamics'), ''), 'lib', 'dynamics.rb'))
13
- end
18
+ app.delegate_class = ''
19
+
20
+ # Copy gem library to tmp location
21
+ tmp_dir = File.join(File.dirname(__FILE__), 'tmp')
22
+ f = File.new(File.join(tmp_dir, 'dynamics.rb'), 'w+')
23
+ f.write(render_code(File.join(Gem.bin_path('dynamics', 'dynamics').gsub(File.join('bin', 'dynamics'), ''), 'lib', 'dynamics.rb')))
24
+ f.close
25
+
26
+ # Parse layouts
27
+ layouts_dir = File.join(File.dirname(__FILE__), 'templates', 'layouts')
28
+ lib_code = render_code(File.join(tmp_dir, 'dynamics.rb'))
29
+ new_code = lib_code
30
+ lib_code.scan(/# \@layouts\/[a-z_]+\@/) do |layout|
31
+ layout_file = '_' + layout.split('/')[1].chomp('@') + '.rb'
32
+ layout_code = render_code(File.join(layouts_dir, layout_file))
33
+ new_code = new_code.gsub(layout, layout_code)
34
+ end
35
+ f = File.open(File.join(tmp_dir, 'dynamics.rb'), 'w+')
36
+ f.write(new_code)
37
+ f.close
38
+
39
+ app.files.unshift(File.join(tmp_dir, 'dynamics.rb'))
40
+ end
41
+
@@ -0,0 +1,7 @@
1
+
2
+ class Application < Dynamics::Application
3
+
4
+ def initialize
5
+ super('Navigation')
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+
2
+ class Sub1Controller < Dynamics::Controller
3
+
4
+ end
@@ -0,0 +1,4 @@
1
+
2
+ class Sub2Controller < Dynamics::Controller
3
+
4
+ end
@@ -0,0 +1,4 @@
1
+
2
+ class Sub1View < Dynamics::Window
3
+
4
+ end
@@ -0,0 +1,4 @@
1
+
2
+ class Sub2View < Dynamics::Window
3
+
4
+ end
@@ -0,0 +1,7 @@
1
+ controller = MainController.alloc.initWithNibName(nil, bundle: nil)
2
+ controller.navigationItem.rightBarButtonItem = UIBarButtonItem.alloc.initWithTitle("Next", style: UIBarButtonItemStyleBordered, target:controller, action:'on_next')
3
+ sub1_controller = Sub1Controller.alloc.initWithNibName(nil, bundle: nil)
4
+ sub1_controller.navigationItem.rightBarButtonItem = UIBarButtonItem.alloc.initWithTitle("Next", style: UIBarButtonItemStyleBordered, target:sub1_controller, action:'on_next')
5
+ controller.next_controller = sub1_controller
6
+ sub2_controller = Sub2Controller.alloc.initWithNibName(nil, bundle: nil)
7
+ sub1_controller.next_controller = sub2_controller
data/bin/dynamics CHANGED
@@ -6,36 +6,76 @@ def create_scaffold(name)
6
6
  else
7
7
  Dir.mkdir(name)
8
8
 
9
+ # Base
10
+
9
11
  app_dir = File.join(name, 'app')
10
12
  build_dir = File.join(name, 'build')
11
- res_dir = File.join(name, 'resources')
12
-
13
+ resources_dir = File.join(name, 'resources')
14
+ templates_dir = File.join(name, 'templates')
15
+ tmp_dir = File.join(name, 'tmp')
16
+
13
17
  Dir.mkdir(app_dir)
14
18
  Dir.mkdir(build_dir)
15
- Dir.mkdir(res_dir)
16
-
17
- controllers_dir = File.join(app_dir, 'controllers')
18
- models_dir = File.join(app_dir, 'models')
19
- views_dir = File.join(app_dir, 'views')
20
-
21
- Dir.mkdir(controllers_dir)
22
- Dir.mkdir(models_dir)
23
- Dir.mkdir(views_dir)
19
+ Dir.mkdir(resources_dir)
20
+ Dir.mkdir(templates_dir)
21
+ Dir.mkdir(tmp_dir)
24
22
 
25
23
  base_dir = File.join(File.dirname(__FILE__), '..', 'base')
26
24
 
25
+ f = File.new(File.join(name, 'Rakefile'), 'w+')
26
+ code = render_code(File.join(base_dir, 'Rakefile'))
27
+ code.gsub!("app.name = ''", "app.name = '#{name}'")
28
+ code.gsub!("app.delegate_class = ''", "app.delegate_class = '#{name}'")
29
+ f.write(code)
30
+ f.close
31
+
32
+ f = File.new(File.join(app_dir, 'application.rb'), 'w+')
33
+ code = render_code(File.join(base_dir, 'app', 'application.rb'))
34
+ code.gsub!("class Application", "class #{name}")
35
+ f.write(code)
36
+ f.close
37
+
38
+ # Controllers
39
+
40
+ controllers_dir = File.join(app_dir, 'controllers')
41
+ Dir.mkdir(controllers_dir)
42
+
27
43
  f = File.new(File.join(controllers_dir, 'main_controller.rb'), 'w+')
28
- f.write(render_code(File.join(base_dir, 'controllers', 'main_controller.rb')))
44
+ f.write(render_code(File.join(base_dir, 'app', 'controllers', 'main_controller.rb')))
29
45
  f.close
30
46
 
47
+ f = File.new(File.join(controllers_dir, 'sub1_controller.rb'), 'w+')
48
+ f.write(render_code(File.join(base_dir, 'app', 'controllers', 'sub1_controller.rb')))
49
+ f.close
50
+
51
+ f = File.new(File.join(controllers_dir, 'sub2_controller.rb'), 'w+')
52
+ f.write(render_code(File.join(base_dir, 'app', 'controllers', 'sub2_controller.rb')))
53
+ f.close
54
+
55
+ # Views
56
+
57
+ views_dir = File.join(app_dir, 'views')
58
+ Dir.mkdir(views_dir)
59
+
31
60
  f = File.new(File.join(views_dir, 'main_view.rb'), 'w+')
32
- f.write(render_code(File.join(base_dir, 'views', 'main_view.rb')))
61
+ f.write(render_code(File.join(base_dir, 'app', 'views', 'main_view.rb')))
33
62
  f.close
34
63
 
35
- f = File.new(File.join(name, 'Rakefile'), 'w+')
36
- code = render_code(File.join(base_dir, 'Rakefile'))
37
- code.gsub!("app.name = ''", "app.name = '#{name}'")
38
- f.write(code)
64
+ f = File.new(File.join(views_dir, 'sub1_view.rb'), 'w+')
65
+ f.write(render_code(File.join(base_dir, 'app', 'views', 'sub1_view.rb')))
66
+ f.close
67
+
68
+ f = File.new(File.join(views_dir, 'sub2_view.rb'), 'w+')
69
+ f.write(render_code(File.join(base_dir, 'app', 'views', 'sub2_view.rb')))
70
+ f.close
71
+
72
+ # Layouts
73
+
74
+ layouts_dir = File.join(templates_dir, 'layouts')
75
+ Dir.mkdir(layouts_dir)
76
+
77
+ f = File.new(File.join(templates_dir, 'layouts', '_navigation.rb'), 'w+')
78
+ f.write(render_code(File.join(base_dir, 'templates', 'layouts', '_navigation.rb')))
39
79
  f.close
40
80
  end
41
81
  end
data/lib/dynamics.rb CHANGED
@@ -1,20 +1,50 @@
1
1
 
2
2
  module Dynamics
3
-
4
- class Controller
3
+
4
+ class Application
5
+ def initialize(layout)
6
+ @layout = layout
7
+ end
5
8
 
6
9
  def application(application, didFinishLaunchingWithOptions:launchOptions)
7
10
  @window = MainView.alloc.initWithFrame(UIScreen.mainScreen.bounds)
8
- @window.backgroundColor = UIColor.blueColor
9
- @window.makeKeyAndVisible
11
+ @window.makeKeyAndVisible
12
+ if @layout == 'Navigation'
13
+ # @layouts/navigation@
14
+
15
+ @window.rootViewController = UINavigationController.alloc.initWithRootViewController(controller)
16
+ elsif @layout == 'Tab Bar'
17
+ controller = MainController.alloc.initWithNibName(nil, bundle: nil)
18
+ nav_controller = UINavigationController.alloc.initWithRootViewController(controller)
19
+
20
+ tab_controller = UITabBarController.alloc.initWithNibName(nil, bundle: nil)
21
+ tab_controller.viewControllers = [nav_controller]
22
+
23
+ @window.rootViewController = tab_controller
24
+ else
25
+ @window.rootViewController = MainController.alloc.initWithNibName(nil, bundle: nil)
26
+ end
10
27
  true
28
+ end
29
+ end
30
+
31
+ class Controller < UIViewController
32
+ attr_accessor :next_controller
33
+
34
+ def on_next
35
+ self.navigationController.pushViewController(@next_controller, animated: true)
11
36
  end
37
+
38
+ private
39
+
40
+ def viewDidLoad
41
+ super
12
42
 
43
+ self.title = App.name
44
+ self.view.backgroundColor = UIColor.whiteColor
45
+ end
13
46
  end
14
47
 
15
- class View < UIView
16
- end
17
-
18
48
  class Window < UIWindow
19
49
  end
20
50
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamics
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 7
10
- version: 0.0.7
9
+ - 8
10
+ version: 0.0.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ng Say Joe
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-07-21 00:00:00 Z
18
+ date: 2012-07-22 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
21
  description: A framework for developing RubyMotion applications quickly.
@@ -29,8 +29,14 @@ extra_rdoc_files: []
29
29
  files:
30
30
  - lib/dynamics.rb
31
31
  - base/Rakefile
32
- - base/controllers/main_controller.rb
33
- - base/views/main_view.rb
32
+ - base/app/application.rb
33
+ - base/app/controllers/main_controller.rb
34
+ - base/app/controllers/sub1_controller.rb
35
+ - base/app/controllers/sub2_controller.rb
36
+ - base/app/views/main_view.rb
37
+ - base/app/views/sub1_view.rb
38
+ - base/app/views/sub2_view.rb
39
+ - base/templates/layouts/_navigation.rb
34
40
  - bin/dynamics
35
41
  homepage: http://www.dynamics.io/
36
42
  licenses: []
File without changes