playmo 0.0.6 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. data/.rspec +2 -0
  2. data/Gemfile +1 -1
  3. data/README.md +9 -45
  4. data/TODO.md +65 -9
  5. data/bin/playmo +6 -0
  6. data/lib/generators/rails/controller_generator.rb +5 -0
  7. data/lib/generators/rails/layout_generator.rb +26 -0
  8. data/lib/generators/rails/scaffold_controller_generator.rb +13 -0
  9. data/lib/generators/rails/templates/controller.rb +11 -0
  10. data/lib/generators/rails/templates/layout.html.erb +46 -0
  11. data/lib/generators/rails/templates/layout.html.haml +26 -0
  12. data/lib/generators/rails/templates/layout.html.slim +26 -0
  13. data/lib/generators/rails/templates/scaffold_controller.rb +56 -0
  14. data/lib/playmo.rb +45 -7
  15. data/lib/playmo/answer.rb +18 -0
  16. data/lib/playmo/choice.rb +52 -0
  17. data/lib/playmo/cli.rb +25 -0
  18. data/lib/playmo/cookbook.rb +83 -0
  19. data/lib/playmo/event.rb +7 -0
  20. data/lib/playmo/options.rb +17 -0
  21. data/lib/playmo/question.rb +59 -0
  22. data/lib/playmo/recipe.rb +50 -0
  23. data/lib/playmo/recipes/_/sample_recipe.rb +46 -0
  24. data/lib/playmo/recipes/application_controller_recipe.rb +24 -0
  25. data/lib/playmo/recipes/application_helper_recipe.rb +18 -0
  26. data/lib/playmo/recipes/assets_recipe.rb +19 -0
  27. data/lib/playmo/recipes/can_can_recipe.rb +0 -0
  28. data/lib/playmo/recipes/capistrano_recipe.rb +25 -0
  29. data/lib/playmo/recipes/compass_recipe.rb +19 -0
  30. data/lib/playmo/recipes/congrats_recipe.rb +20 -0
  31. data/lib/playmo/recipes/devise_recipe.rb +172 -0
  32. data/lib/playmo/recipes/forms_recipe.rb +42 -0
  33. data/lib/playmo/recipes/git_recipe.rb +31 -0
  34. data/lib/playmo/recipes/home_controller_recipe.rb +86 -0
  35. data/lib/playmo/recipes/javascript_framework_recipe.rb +69 -0
  36. data/lib/playmo/recipes/layout_recipe.rb +21 -0
  37. data/lib/playmo/recipes/markup_recipe.rb +34 -0
  38. data/lib/playmo/recipes/rspec_recipe.rb +25 -0
  39. data/lib/playmo/recipes/rvm_recipe.rb +17 -0
  40. data/lib/playmo/recipes/setup_database_recipe.rb +21 -0
  41. data/lib/playmo/recipes/templates/application_controller_recipe/application_controller.rb +54 -0
  42. data/lib/playmo/recipes/templates/application_controller_recipe/internal_error.html.erb +5 -0
  43. data/lib/playmo/recipes/templates/application_controller_recipe/not_found.html.erb +5 -0
  44. data/lib/playmo/recipes/templates/application_helper_recipe/application_helper.rb +118 -0
  45. data/lib/playmo/recipes/templates/assets_recipe/images/bg.jpg +0 -0
  46. data/lib/playmo/recipes/templates/assets_recipe/images/input-bg.gif +0 -0
  47. data/lib/playmo/recipes/templates/assets_recipe/stylesheets/application.css.scss +29 -0
  48. data/lib/playmo/recipes/templates/assets_recipe/stylesheets/media.css.scss +0 -0
  49. data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_constants.css.scss +11 -0
  50. data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_forms.css.scss +134 -0
  51. data/{stylesheets/_playmo_rails.sass → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_html5-boilerplate.css.scss} +1 -1
  52. data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_layout.css.scss +264 -0
  53. data/{templates/project/playmo/playmo.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_overrides.css.scss} +14 -23
  54. data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_simple_form.css.scss +7 -0
  55. data/{stylesheets/playmo-rails/_fonts.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_fonts.css.scss} +5 -6
  56. data/{stylesheets/playmo-rails/_helpers.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_helpers.css.scss} +6 -1
  57. data/{stylesheets/playmo-rails/_media.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_media.css.scss} +10 -9
  58. data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_reset.css.scss +47 -0
  59. data/{stylesheets/playmo-rails/_styles.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_styles.css.scss} +24 -24
  60. data/lib/playmo/recipes/templates/capistrano_recipe/.gitkeep +0 -0
  61. data/lib/playmo/recipes/templates/devise_recipe/.gitkeep +0 -0
  62. data/lib/playmo/recipes/templates/forms_recipe/.gitkeep +0 -0
  63. data/lib/playmo/recipes/templates/home_controller_recipe/_sidebar.html.erb +3 -0
  64. data/lib/playmo/recipes/templates/layout_recipe/application.html.erb +40 -0
  65. data/lib/playmo/recipes/templates/rspec_recipe/.gitkeep +0 -0
  66. data/lib/playmo/recipes/templates/rvm_recipe/.gitkeep +0 -0
  67. data/lib/playmo/silent.rb +17 -0
  68. data/playmo.gemspec +6 -2
  69. data/spec/cookbook_spec.rb +23 -0
  70. data/spec/recipes/home_controller_recipe_spec.rb +13 -0
  71. data/spec/spec_helper.rb +16 -0
  72. data/spec/support/.gitkeep +0 -0
  73. metadata +144 -79
  74. data/lib/app/helpers/playmo_helper.rb +0 -54
  75. data/lib/generators/playmo/USAGE +0 -8
  76. data/lib/generators/playmo/install_generator.rb +0 -166
  77. data/lib/generators/playmo/templates/application.html.erb +0 -56
  78. data/lib/generators/playmo/templates/application_controller.rb +0 -9
  79. data/lib/generators/playmo/templates/application_helper.rb +0 -21
  80. data/lib/generators/playmo/templates/assets.yml +0 -32
  81. data/lib/generators/playmo/templates/deploy.rb +0 -50
  82. data/lib/generators/playmo/templates/jquery/jquery-1.5.2.min.js +0 -16
  83. data/lib/generators/playmo/templates/jquery/rails.js +0 -157
  84. data/lib/generators/playmo/templates/mootools/mootools-core-1.3.1.js +0 -485
  85. data/lib/generators/playmo/templates/mootools/mootools-more-1.3.1.1.js +0 -741
  86. data/lib/generators/playmo/templates/mootools/rails.js +0 -161
  87. data/lib/generators/playmo/templates/tasks/assets.rake +0 -10
  88. data/lib/generators/playmo/templates/tasks/sass.rake +0 -8
  89. data/stylesheets/playmo-rails/_handheld.scss +0 -8
  90. data/stylesheets/playmo-rails/_reset.scss +0 -56
  91. data/templates/project/boilerplate/css/handheld.scss +0 -7
  92. data/templates/project/boilerplate/css/style.scss +0 -141
  93. data/templates/project/boilerplate/files/apple-touch-icon.png +0 -0
  94. data/templates/project/boilerplate/files/crossdomain.xml +0 -25
  95. data/templates/project/boilerplate/files/favicon.ico +0 -0
  96. data/templates/project/boilerplate/files/robots.txt +0 -5
  97. data/templates/project/boilerplate/js/libs/dd_belatedpng.js +0 -13
  98. data/templates/project/boilerplate/js/libs/modernizr-1.7.min.js +0 -2
  99. data/templates/project/google/google.yml +0 -22
  100. data/templates/project/manifest.rb +0 -34
  101. data/templates/project/playmo/article.scss +0 -69
  102. data/templates/project/playmo/icons/outgoing.png +0 -0
  103. data/templates/project/rails/public/stylesheets/layout.scss +0 -20
  104. data/templates/project/rails/public/stylesheets/print.scss +0 -11
  105. data/templates/project/rails/public/stylesheets/screen.scss +0 -14
  106. data/templates/project/rails/public/stylesheets/wysiwyg.scss +0 -19
@@ -0,0 +1,20 @@
1
+ module Playmo
2
+ module Recipes
3
+ class CongratsRecipe < Playmo::Recipe
4
+ def setup
5
+ # TODO: need silently block
6
+ Playmo::Event.events.listen(:after_playmo_install) do |event_data|
7
+ say "\n"
8
+ say "*******************************************************************"
9
+ say "Congratulations! All files has been installed successfully."
10
+ say "You can read some docs on https://github.com/tanraya/playmo"
11
+ say "\n"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ # Write down this recipe to our Cookbook if it's available
19
+ require File.dirname(__FILE__) + '/git_recipe'
20
+ Playmo::Cookbook.instance.insert_after(Playmo::Recipes::GitRecipe, Playmo::Recipes::CongratsRecipe) if defined?(Playmo::Cookbook)
@@ -0,0 +1,172 @@
1
+ module Playmo
2
+ module Recipes
3
+ class DeviseRecipe < Playmo::Recipe
4
+ source_root File.expand_path('../templates/devise_recipe', __FILE__)
5
+
6
+ def setup
7
+ question "Would you like to use Devise in this project?" => :install_devise
8
+ end
9
+
10
+ def install_devise
11
+ gem 'devise'
12
+
13
+ Event.events.listen(:after_install) do |event_data|
14
+ # Generate Devise stuff
15
+ generate "devise:install"
16
+ generate "devise User"
17
+ generate "devise:views"
18
+
19
+ # Add sign_up/login links into layout
20
+ add_layout_links
21
+
22
+ # Process Devise views to choosen markup
23
+ process_views
24
+
25
+ # Add :name accessor to default accessors
26
+ # Also add some specific methods
27
+ gsub_file 'app/models/user.rb', 'attr_accessible :email, :password, :password_confirmation, :remember_me' do
28
+ <<-CONTENT.gsub(/^ {12}/, '')
29
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :name
30
+ cattr_accessor :current
31
+
32
+ # Return user name or user name from email address
33
+ def username
34
+ name.blank? ? email.match(/^[^@]+/)[0] : name
35
+ end
36
+ CONTENT
37
+ end
38
+
39
+ # Create migration that adds name field to users table
40
+ filename = "db/migrate/#{(Time.now - 3600).strftime("%Y%m%d%H%M%S")}_add_name_to_users.rb"
41
+
42
+ create_file filename, <<-CONTENT.gsub(/^ {12}/, '')
43
+ class AddNameToUsers < ActiveRecord::Migration
44
+ def change
45
+ add_column :users, :name, :string
46
+ end
47
+ end
48
+ CONTENT
49
+ end
50
+
51
+ # Create default user
52
+ append_to_file 'db/seeds.rb' do
53
+ <<-CONTENT.gsub(/^ {12}/, '')
54
+ user = User.create!(
55
+ :email => 'johndoe@example.com',
56
+ :password => 'secret',
57
+ :password_confirmation => 'secret'
58
+ )
59
+
60
+ user2 = User.create!(
61
+ :email => 'annadoe@example.com',
62
+ :password => 'secret',
63
+ :password_confirmation => 'secret'
64
+ )
65
+ CONTENT
66
+ end
67
+
68
+ end
69
+
70
+ private
71
+
72
+ # Add links into layout
73
+ def add_layout_links
74
+ case retrieve(:markup)
75
+ when :erb then add_layout_links_with_erb
76
+ when :haml then add_layout_links_with_haml
77
+ when :slim then add_layout_links_with_slim
78
+ end
79
+ end
80
+
81
+ # Process Devise views to choosen markup
82
+ def process_views
83
+ case retrieve(:markup)
84
+ when :haml then process_views_with_haml
85
+ when :slim then process_views_with_slim
86
+ end
87
+ end
88
+
89
+ def add_layout_links_with_erb
90
+ gsub_file 'app/views/layouts/application.html.erb', '</header>' do
91
+ <<-CONTENT.gsub(/^ {10}/, '')
92
+ <div id="user-info">
93
+ <ul>
94
+ <% if user_signed_in? %>
95
+ <li>
96
+ Hello, Dear <strong><%= current_user.username %></strong>!
97
+ Maybe, you want to <%= link_to 'logout', destroy_user_session_path %>?
98
+ </li>
99
+ <% else %>
100
+ <li>
101
+ Hello Guest, maybe you want to <%= link_to 'Join us', new_user_registration_path %> or <%= link_to 'login', new_user_session_path %>?
102
+ </li>
103
+ <% end %>
104
+ </ul>
105
+ </div>
106
+ </header>
107
+ CONTENT
108
+ end
109
+ end
110
+
111
+ def add_layout_links_with_haml
112
+ gsub_file 'app/views/layouts/application.html.haml', ' #body' do
113
+ <<-'CONTENT'.gsub(/^ {6}/, '')
114
+ #user-info
115
+ %ul
116
+ - if user_signed_in?
117
+ %li
118
+ Hello, Dear
119
+ = succeed "!" do
120
+ %strong= current_user.username
121
+ Maybe, you want to #{link_to 'logout', destroy_user_session_path}?
122
+ - else
123
+ %li
124
+ Hello Guest, maybe you want to #{link_to 'Join us', new_user_registration_path} or #{link_to 'login', new_user_session_path}?
125
+ #body
126
+ CONTENT
127
+ end
128
+ end
129
+
130
+ def add_layout_links_with_slim
131
+ gsub_file 'app/views/layouts/application.html.slim', ' #body' do
132
+ <<-'CONTENT'.gsub(/^ {6}/, '')
133
+ #user-info
134
+ ul
135
+ - if user_signed_in?
136
+ li
137
+ ' Hello, Dear
138
+ strong= current_user.username
139
+ ' ! Maybe, you want to #{link_to 'logout', destroy_user_session_path}?
140
+ - else
141
+ li
142
+ | Hello Guest, maybe you want to #{link_to 'Join us', new_user_registration_path} or #{link_to 'login', new_user_session_path}?
143
+ #body
144
+ CONTENT
145
+ end
146
+ end
147
+
148
+ def process_views_with_haml
149
+ Dir["#{destination_root}/app/views/devise/**/*.erb"].each do |erb_file|
150
+ haml_file = erb_file.gsub(/\.erb$/, '.haml')
151
+ run "html2haml #{erb_file} #{haml_file}"
152
+ run "rm #{erb_file}"
153
+ end
154
+ end
155
+
156
+ def process_views_with_slim
157
+ process_views_with_haml
158
+
159
+ Dir["#{destination_root}/app/views/devise/**/*.haml"].each do |haml_file|
160
+ slim_file = haml_file.gsub(/\.haml$/, '.slim')
161
+ run "haml2slim #{haml_file} #{slim_file}"
162
+ run "rm #{haml_file}"
163
+ end
164
+ end
165
+
166
+ end
167
+ end
168
+ end
169
+
170
+ # Write down this recipe to our Cookbook if it's available
171
+ require File.dirname(__FILE__) + '/layout_recipe'
172
+ Playmo::Cookbook.instance.insert_after(Playmo::Recipes::LayoutRecipe, Playmo::Recipes::DeviseRecipe) if defined?(Playmo::Cookbook)
@@ -0,0 +1,42 @@
1
+ module Playmo
2
+ module Recipes
3
+ class FormsRecipe < Playmo::Recipe
4
+ source_root File.expand_path('../templates/forms_recipe', __FILE__)
5
+
6
+ def setup
7
+ question "Which form builder you prefer?" do
8
+ answer "Use default form_for helper" => :use_default
9
+ answer "Simple Form" => :install_simple_form
10
+ answer "Formtastic" => :install_formtastic
11
+ end
12
+ end
13
+
14
+ protected
15
+
16
+ def use_default
17
+ # do nothing
18
+ end
19
+
20
+ def install_simple_form
21
+ gem 'simple_form'
22
+
23
+ Event.events.listen(:after_install) do |event_data|
24
+ # generate
25
+ end
26
+ end
27
+
28
+ def install_formtastic
29
+ gem 'formtastic'
30
+
31
+ Event.events.listen(:after_install) do |event_data|
32
+ # generate
33
+ end
34
+ end
35
+
36
+ end
37
+ end
38
+ end
39
+
40
+ # Write down this recipe to our Cookbook if it's available
41
+ require File.dirname(__FILE__) + '/compass_recipe'
42
+ Playmo::Cookbook.instance.insert_after(Playmo::Recipes::CompassRecipe, Playmo::Recipes::FormsRecipe) if defined?(Playmo::Cookbook)
@@ -0,0 +1,31 @@
1
+ module Playmo
2
+ module Recipes
3
+ class GitRecipe < Playmo::Recipe
4
+ def setup
5
+ silently do
6
+ Event.events.listen(:before_exit) do |event_data|
7
+ remove_file '.gitignore'
8
+
9
+ create_file '.gitignore', <<-CONTENT.gsub(/^ {14}/, '')
10
+ .DS_Store
11
+ log/*.log
12
+ tmp/**/*
13
+ db/*.sqlite3
14
+ .idea/
15
+ public/uploads/*
16
+ .sass-cache/
17
+ CONTENT
18
+
19
+ git :init
20
+ git :add => '.'
21
+ git :commit => "-am 'Initial commit for #{application_name}'"
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+
29
+ # Write down this recipe to our Cookbook if it's available
30
+ require File.dirname(__FILE__) + '/setup_database_recipe'
31
+ Playmo::Cookbook.instance.insert_after(Playmo::Recipes::SetupDatabaseRecipe, Playmo::Recipes::GitRecipe) if defined?(Playmo::Cookbook)
@@ -0,0 +1,86 @@
1
+ module Playmo
2
+ module Recipes
3
+ class HomeControllerRecipe < Playmo::Recipe
4
+ source_root File.expand_path('../templates/home_controller_recipe', __FILE__)
5
+
6
+ def setup
7
+ question "Would you want to create HomeController in this project?" => :install_home_controller
8
+ end
9
+
10
+ def install_home_controller
11
+ # Generate home_controller
12
+ Event.events.listen(:after_install) do |event_data|
13
+ generate :controller, :home, :index
14
+
15
+ # Change generated routes
16
+ gsub_file 'config/routes.rb', 'get "home/index"' do
17
+ 'root :to => "home#index"'
18
+ end
19
+
20
+ # Make changes in index view
21
+ change_index_view
22
+
23
+ # Copy sidebar template
24
+ empty_directory "app/views/shared"
25
+ copy_file "_sidebar.html.erb", "app/views/shared/_sidebar.html.erb"
26
+
27
+ # Remove default rails index file
28
+ remove_file 'public/index.html'
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ # Make changes in index view
35
+ def change_index_view
36
+ case retrieve(:markup)
37
+ when :erb then change_index_view_with_erb
38
+ when :haml then change_index_view_with_haml
39
+ when :slim then change_index_view_with_slim
40
+ end
41
+ end
42
+
43
+ def change_index_view_with_erb
44
+ gsub_file 'app/views/home/index.html.erb', '<h1>Home#index</h1>' do
45
+ <<-CONTENT.gsub(/^ {12}/, '')
46
+ <%= heading_with_title("Home#index") %>
47
+
48
+ <% content_for :sidebar do %>
49
+ <%= heading "Sidebar" %>
50
+ <p>Content for sidebar.</p>
51
+ <p>This content displayed only at home page.</p>
52
+ <% end %>
53
+ CONTENT
54
+ end
55
+ end
56
+
57
+ def change_index_view_with_haml
58
+ gsub_file 'app/views/home/index.html.haml', '%h1 Home#index' do
59
+ <<-'CONTENT'.gsub(/^ {12}/, '')
60
+ = heading_with_title("Home#index")
61
+ - content_for :sidebar do
62
+ = heading "Sidebar"
63
+ %p Content for sidebar.
64
+ %p This content displayed only at home page.
65
+ CONTENT
66
+ end
67
+ end
68
+
69
+ def change_index_view_with_slim
70
+ gsub_file 'app/views/home/index.html.slim', 'h1 Home#index' do
71
+ <<-'CONTENT'.gsub(/^ {12}/, '')
72
+ = heading_with_title("Home#index")
73
+ - content_for :sidebar do
74
+ = heading "Sidebar"
75
+ p Content for sidebar.
76
+ p This content displayed only at home page.
77
+ CONTENT
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
83
+
84
+ # Write down this recipe to our Cookbook if it's available
85
+ require File.dirname(__FILE__) + '/layout_recipe'
86
+ Playmo::Cookbook.instance.insert_after(Playmo::Recipes::LayoutRecipe, Playmo::Recipes::HomeControllerRecipe) if defined?(Playmo::Cookbook)
@@ -0,0 +1,69 @@
1
+ module Playmo
2
+ module Recipes
3
+ class JavascriptFrameworkRecipe < Playmo::Recipe
4
+ def setup
5
+ question "Please choose JS framework you prefer to install" do
6
+ answer "JQuery (with Jquery UI)" => :install_jquery
7
+ answer "Mootools Core (with More)" => :install_mootools
8
+ answer "Prototype (with Scriptaculous and RJS)" => :install_prototype
9
+ end
10
+ end
11
+
12
+ protected
13
+
14
+ # See https://github.com/rails/jquery-rails for detailt
15
+ def install_jquery
16
+ gem "jquery-rails"
17
+
18
+ Event.events.listen(:after_install) do |event_data|
19
+ gsub_file 'app/assets/javascripts/application.js', '//= require_tree .' do
20
+ <<-CONTENT.gsub(/^ {16}/, '')
21
+ //= require jquery
22
+ //= require jquery_ui
23
+ //= require jquery_ujs
24
+ //= require_tree .
25
+ CONTENT
26
+ end
27
+ end
28
+ end
29
+
30
+ # See https://github.com/neonlex/mootools-rails for detailt
31
+ def install_mootools
32
+ gem 'mootools-rails'
33
+
34
+ Event.events.listen(:after_install) do |event_data|
35
+ gsub_file 'app/assets/javascripts/application.js', '//= require_tree .' do
36
+ <<-CONTENT.gsub(/^ {16}/, '')
37
+ //= require mootools
38
+ //= require mootools-more
39
+ //= require mootools_ujs
40
+ //= require_tree .
41
+ CONTENT
42
+ end
43
+ end
44
+ end
45
+
46
+ # See https://github.com/rails/prototype-rails for details
47
+ def install_prototype
48
+ gem "prototype-rails"
49
+
50
+ Event.events.listen(:after_install) do |event_data|
51
+ gsub_file 'app/assets/javascripts/application.js', '//= require_tree .' do
52
+ <<-CONTENT.gsub(/^ {16}/, '')
53
+ //= require prototype
54
+ //= require prototype_ujs
55
+ //= require effects
56
+ //= require dragdrop
57
+ //= require controls
58
+ //= require_tree .
59
+ CONTENT
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+
67
+ # Write down this recipe to our Cookbook if it's available
68
+ require File.dirname(__FILE__) + '/forms_recipe'
69
+ Playmo::Cookbook.instance.insert_after(Playmo::Recipes::FormsRecipe, Playmo::Recipes::JavascriptFrameworkRecipe) if defined?(Playmo::Cookbook)
@@ -0,0 +1,21 @@
1
+ module Playmo
2
+ module Recipes
3
+ class LayoutRecipe < Playmo::Recipe
4
+ source_root File.expand_path('../templates/layout_recipe', __FILE__)
5
+
6
+ def setup
7
+ silently do
8
+ remove_file 'app/views/layouts/application.html.erb'
9
+
10
+ Event.events.listen(:after_install) do |event_data|
11
+ generate :layout, "application #{retrieve(:markup)}"
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ # Write down this recipe to our Cookbook if it's available
20
+ require File.dirname(__FILE__) + '/javascript_framework_recipe'
21
+ Playmo::Cookbook.instance.insert_after(Playmo::Recipes::JavascriptFrameworkRecipe, Playmo::Recipes::LayoutRecipe) if defined?(Playmo::Cookbook)