dynamics 0.0.8 → 0.0.9

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
@@ -5,37 +5,12 @@ $LOAD_PATH.unshift('/Library/RubyMotion/lib')
5
5
  require 'motion/project'
6
6
  require 'rubygems'
7
7
  require 'bubble-wrap'
8
-
9
- def render_code(name)
10
- f = File.open(name)
11
- content = f.read
12
- f.close
13
- content
14
- end
8
+ require 'dynamics'
15
9
 
16
10
  Motion::Project::App.setup do |app|
17
11
  app.name = ''
18
12
  app.delegate_class = ''
19
13
 
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'))
14
+ Dynamics::setup_framework(app, File.dirname(__FILE__))
40
15
  end
41
16
 
@@ -0,0 +1,51 @@
1
+
2
+ module Dynamics
3
+
4
+ class Application
5
+ def initialize(layout)
6
+ @layout = layout
7
+ end
8
+
9
+ def application(application, didFinishLaunchingWithOptions:launchOptions)
10
+ @window = MainView.alloc.initWithFrame(UIScreen.mainScreen.bounds)
11
+ @window.makeKeyAndVisible
12
+ if @layout == 'Navigation'
13
+ # @@Navigation@@
14
+ # @@End@@
15
+
16
+ @window.rootViewController = UINavigationController.alloc.initWithRootViewController(controller)
17
+ elsif @layout == 'Tab Bar'
18
+ controller = MainController.alloc.initWithNibName(nil, bundle: nil)
19
+ nav_controller = UINavigationController.alloc.initWithRootViewController(controller)
20
+
21
+ tab_controller = UITabBarController.alloc.initWithNibName(nil, bundle: nil)
22
+ tab_controller.viewControllers = [nav_controller]
23
+
24
+ @window.rootViewController = tab_controller
25
+ else
26
+ @window.rootViewController = MainController.alloc.initWithNibName(nil, bundle: nil)
27
+ end
28
+ true
29
+ end
30
+ end
31
+
32
+ class Controller < UIViewController
33
+ attr_accessor :next_controller
34
+
35
+ def on_next
36
+ self.navigationController.pushViewController(@next_controller, animated: true)
37
+ end
38
+
39
+ private
40
+
41
+ def viewDidLoad
42
+ super
43
+
44
+ self.title = App.name
45
+ self.view.backgroundColor = UIColor.whiteColor
46
+ end
47
+ end
48
+
49
+ class Window < UIWindow
50
+ end
51
+ end
data/bin/dynamics CHANGED
@@ -1,84 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- def create_scaffold(name)
4
- if File.exists?(name)
5
- puts "Error, #{name} already exists!"
6
- else
7
- Dir.mkdir(name)
8
-
9
- # Base
10
-
11
- app_dir = File.join(name, 'app')
12
- build_dir = File.join(name, 'build')
13
- resources_dir = File.join(name, 'resources')
14
- templates_dir = File.join(name, 'templates')
15
- tmp_dir = File.join(name, 'tmp')
16
-
17
- Dir.mkdir(app_dir)
18
- Dir.mkdir(build_dir)
19
- Dir.mkdir(resources_dir)
20
- Dir.mkdir(templates_dir)
21
- Dir.mkdir(tmp_dir)
22
-
23
- base_dir = File.join(File.dirname(__FILE__), '..', 'base')
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
-
43
- f = File.new(File.join(controllers_dir, 'main_controller.rb'), 'w+')
44
- f.write(render_code(File.join(base_dir, 'app', 'controllers', 'main_controller.rb')))
45
- f.close
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
-
60
- f = File.new(File.join(views_dir, 'main_view.rb'), 'w+')
61
- f.write(render_code(File.join(base_dir, 'app', 'views', 'main_view.rb')))
62
- f.close
63
-
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')))
79
- f.close
80
- end
81
- end
3
+ require 'rubygems'
4
+ require 'dynamics'
82
5
 
83
6
  def display_usage
84
7
  str = "Dynamics is a framework for RubyMotion.\n"
@@ -92,13 +15,6 @@ def display_usage
92
15
  puts str
93
16
  end
94
17
 
95
- def render_code(name)
96
- f = File.open(name)
97
- content = f.read
98
- f.close
99
- content
100
- end
101
-
102
18
  i = 1
103
19
  for arg in ARGV
104
20
  case i
@@ -110,7 +26,7 @@ for arg in ARGV
110
26
  end
111
27
  case command
112
28
  when '-h', '--help' then display_usage
113
- when 'create' then create_scaffold(args)
29
+ when 'create' then Dynamics::create_scaffold(args, File.dirname(__FILE__))
114
30
  else display_usage
115
31
  end
116
32
 
data/lib/dynamics.rb CHANGED
@@ -1,50 +1,120 @@
1
1
 
2
2
  module Dynamics
3
-
4
- class Application
5
- def initialize(layout)
6
- @layout = layout
3
+
4
+ def self.create_scaffold(name, path)
5
+ if File.exists?(name)
6
+ puts "Error, #{name} already exists!"
7
+ else
8
+ Dir.mkdir(name)
9
+
10
+ # Base
11
+
12
+ app_dir = File.join(name, 'app')
13
+ build_dir = File.join(name, 'build')
14
+ resources_dir = File.join(name, 'resources')
15
+ lib_dir = File.join(name, 'lib')
16
+
17
+ Dir.mkdir(app_dir)
18
+ Dir.mkdir(build_dir)
19
+ Dir.mkdir(resources_dir)
20
+ Dir.mkdir(lib_dir)
21
+
22
+ base_dir = File.join(File.dirname(__FILE__), '..', 'base')
23
+
24
+ f = File.new(File.join(name, 'Rakefile'), 'w+')
25
+ code = render_code(File.join(base_dir, 'Rakefile'))
26
+ code.gsub!("app.name = ''", "app.name = '#{name}'")
27
+ code.gsub!("app.delegate_class = ''", "app.delegate_class = '#{name}'")
28
+ f.write(code)
29
+ f.close
30
+
31
+ # App
32
+
33
+ f = File.new(File.join(app_dir, 'application.rb'), 'w+')
34
+ code = render_code(File.join(base_dir, 'app', 'application.rb'))
35
+ code.gsub!("class Application", "class #{name}")
36
+ f.write(code)
37
+ f.close
38
+
39
+ # Controllers
40
+
41
+ controllers_dir = File.join(app_dir, 'controllers')
42
+ Dir.mkdir(controllers_dir)
43
+
44
+ f = File.new(File.join(controllers_dir, 'main_controller.rb'), 'w+')
45
+ f.write(render_code(File.join(base_dir, 'app', 'controllers', 'main_controller.rb')))
46
+ f.close
47
+
48
+ f = File.new(File.join(controllers_dir, 'sub1_controller.rb'), 'w+')
49
+ f.write(render_code(File.join(base_dir, 'app', 'controllers', 'sub1_controller.rb')))
50
+ f.close
51
+
52
+ f = File.new(File.join(controllers_dir, 'sub2_controller.rb'), 'w+')
53
+ f.write(render_code(File.join(base_dir, 'app', 'controllers', 'sub2_controller.rb')))
54
+ f.close
55
+
56
+ # Views
57
+
58
+ views_dir = File.join(app_dir, 'views')
59
+ Dir.mkdir(views_dir)
60
+
61
+ f = File.new(File.join(views_dir, 'main_view.rb'), 'w+')
62
+ f.write(render_code(File.join(base_dir, 'app', 'views', 'main_view.rb')))
63
+ f.close
64
+
65
+ f = File.new(File.join(views_dir, 'sub1_view.rb'), 'w+')
66
+ f.write(render_code(File.join(base_dir, 'app', 'views', 'sub1_view.rb')))
67
+ f.close
68
+
69
+ f = File.new(File.join(views_dir, 'sub2_view.rb'), 'w+')
70
+ f.write(render_code(File.join(base_dir, 'app', 'views', 'sub2_view.rb')))
71
+ f.close
72
+
73
+ # Lib
74
+
75
+ f = File.new(File.join(lib_dir, 'dynamics.rb'), 'w+')
76
+ f.write(render_code(File.join(base_dir, 'templates', 'dynamics.rb')) )
77
+ f.close
7
78
  end
8
-
9
- def application(application, didFinishLaunchingWithOptions:launchOptions)
10
- @window = MainView.alloc.initWithFrame(UIScreen.mainScreen.bounds)
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
27
- true
28
- end
29
79
  end
30
-
31
- class Controller < UIViewController
32
- attr_accessor :next_controller
33
80
 
34
- def on_next
35
- self.navigationController.pushViewController(@next_controller, animated: true)
81
+ def self.setup_framework(app, path)
82
+ lib_dir = File.join(path, 'lib')
83
+ lib_code = render_code(File.join(lib_dir, 'dynamics.rb'))
84
+ new_code = lib_code
85
+ lib_code.scan(/# \@\@.+\@\@.+# \@\@End\@\@/m) do |block|
86
+ block.scan(/# \@\@.+\@\@/) do |placeholder|
87
+ layout = placeholder.split(' ')[1].gsub('@', '')
88
+ case layout
89
+ when 'Navigation' then new_code = new_code.gsub(block, code_navigation)
90
+ end
91
+ end
36
92
  end
37
-
38
- private
39
-
40
- def viewDidLoad
41
- super
42
-
43
- self.title = App.name
44
- self.view.backgroundColor = UIColor.whiteColor
45
- end
93
+ f = File.open(File.join(lib_dir, 'dynamics.rb'), 'w+')
94
+ f.write(new_code)
95
+ f.close
96
+
97
+ app.files.unshift(File.join(lib_dir, 'dynamics.rb'))
46
98
  end
47
99
 
48
- class Window < UIWindow
49
- end
100
+ private
101
+
102
+ def self.code_navigation
103
+ code = "# @@Navigation@@\n"
104
+ code += "controller = MainController.alloc.initWithNibName(nil, bundle: nil)\n"
105
+ code += "controller.navigationItem.rightBarButtonItem = UIBarButtonItem.alloc.initWithTitle('Next', style: UIBarButtonItemStyleBordered, target:controller, action:'on_next')\n"
106
+ code += "sub1_controller = Sub1Controller.alloc.initWithNibName(nil, bundle: nil)\n"
107
+ code += "sub1_controller.navigationItem.rightBarButtonItem = UIBarButtonItem.alloc.initWithTitle('Next', style: UIBarButtonItemStyleBordered, target:sub1_controller, action:'on_next')\n"
108
+ code += "controller.next_controller = sub1_controller\n"
109
+ code += "sub2_controller = Sub2Controller.alloc.initWithNibName(nil, bundle: nil)\n"
110
+ code += "sub1_controller.next_controller = sub2_controller\n"
111
+ code += "# @@End@@"
112
+ end
113
+
114
+ def self.render_code(name)
115
+ f = File.open(name)
116
+ content = f.read
117
+ f.close
118
+ content
119
+ end
50
120
  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: 15
4
+ hash: 13
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 8
10
- version: 0.0.8
9
+ - 9
10
+ version: 0.0.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ng Say Joe
@@ -36,7 +36,7 @@ files:
36
36
  - base/app/views/main_view.rb
37
37
  - base/app/views/sub1_view.rb
38
38
  - base/app/views/sub2_view.rb
39
- - base/templates/layouts/_navigation.rb
39
+ - base/templates/dynamics.rb
40
40
  - bin/dynamics
41
41
  homepage: http://www.dynamics.io/
42
42
  licenses: []
@@ -1,7 +0,0 @@
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