playmo 0.0.6 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +2 -0
- data/Gemfile +1 -1
- data/README.md +9 -45
- data/TODO.md +65 -9
- data/bin/playmo +6 -0
- data/lib/generators/rails/controller_generator.rb +5 -0
- data/lib/generators/rails/layout_generator.rb +26 -0
- data/lib/generators/rails/scaffold_controller_generator.rb +13 -0
- data/lib/generators/rails/templates/controller.rb +11 -0
- data/lib/generators/rails/templates/layout.html.erb +46 -0
- data/lib/generators/rails/templates/layout.html.haml +26 -0
- data/lib/generators/rails/templates/layout.html.slim +26 -0
- data/lib/generators/rails/templates/scaffold_controller.rb +56 -0
- data/lib/playmo.rb +45 -7
- data/lib/playmo/answer.rb +18 -0
- data/lib/playmo/choice.rb +52 -0
- data/lib/playmo/cli.rb +25 -0
- data/lib/playmo/cookbook.rb +83 -0
- data/lib/playmo/event.rb +7 -0
- data/lib/playmo/options.rb +17 -0
- data/lib/playmo/question.rb +59 -0
- data/lib/playmo/recipe.rb +50 -0
- data/lib/playmo/recipes/_/sample_recipe.rb +46 -0
- data/lib/playmo/recipes/application_controller_recipe.rb +24 -0
- data/lib/playmo/recipes/application_helper_recipe.rb +18 -0
- data/lib/playmo/recipes/assets_recipe.rb +19 -0
- data/lib/playmo/recipes/can_can_recipe.rb +0 -0
- data/lib/playmo/recipes/capistrano_recipe.rb +25 -0
- data/lib/playmo/recipes/compass_recipe.rb +19 -0
- data/lib/playmo/recipes/congrats_recipe.rb +20 -0
- data/lib/playmo/recipes/devise_recipe.rb +172 -0
- data/lib/playmo/recipes/forms_recipe.rb +42 -0
- data/lib/playmo/recipes/git_recipe.rb +31 -0
- data/lib/playmo/recipes/home_controller_recipe.rb +86 -0
- data/lib/playmo/recipes/javascript_framework_recipe.rb +69 -0
- data/lib/playmo/recipes/layout_recipe.rb +21 -0
- data/lib/playmo/recipes/markup_recipe.rb +34 -0
- data/lib/playmo/recipes/rspec_recipe.rb +25 -0
- data/lib/playmo/recipes/rvm_recipe.rb +17 -0
- data/lib/playmo/recipes/setup_database_recipe.rb +21 -0
- data/lib/playmo/recipes/templates/application_controller_recipe/application_controller.rb +54 -0
- data/lib/playmo/recipes/templates/application_controller_recipe/internal_error.html.erb +5 -0
- data/lib/playmo/recipes/templates/application_controller_recipe/not_found.html.erb +5 -0
- data/lib/playmo/recipes/templates/application_helper_recipe/application_helper.rb +118 -0
- data/lib/playmo/recipes/templates/assets_recipe/images/bg.jpg +0 -0
- data/lib/playmo/recipes/templates/assets_recipe/images/input-bg.gif +0 -0
- data/lib/playmo/recipes/templates/assets_recipe/stylesheets/application.css.scss +29 -0
- data/lib/playmo/recipes/templates/assets_recipe/stylesheets/media.css.scss +0 -0
- data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_constants.css.scss +11 -0
- data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_forms.css.scss +134 -0
- data/{stylesheets/_playmo_rails.sass → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_html5-boilerplate.css.scss} +1 -1
- data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_layout.css.scss +264 -0
- data/{templates/project/playmo/playmo.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_overrides.css.scss} +14 -23
- data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/_simple_form.css.scss +7 -0
- data/{stylesheets/playmo-rails/_fonts.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_fonts.css.scss} +5 -6
- data/{stylesheets/playmo-rails/_helpers.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_helpers.css.scss} +6 -1
- data/{stylesheets/playmo-rails/_media.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_media.css.scss} +10 -9
- data/lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_reset.css.scss +47 -0
- data/{stylesheets/playmo-rails/_styles.scss → lib/playmo/recipes/templates/assets_recipe/stylesheets/partials/html5-boilerplate/_styles.css.scss} +24 -24
- data/lib/playmo/recipes/templates/capistrano_recipe/.gitkeep +0 -0
- data/lib/playmo/recipes/templates/devise_recipe/.gitkeep +0 -0
- data/lib/playmo/recipes/templates/forms_recipe/.gitkeep +0 -0
- data/lib/playmo/recipes/templates/home_controller_recipe/_sidebar.html.erb +3 -0
- data/lib/playmo/recipes/templates/layout_recipe/application.html.erb +40 -0
- data/lib/playmo/recipes/templates/rspec_recipe/.gitkeep +0 -0
- data/lib/playmo/recipes/templates/rvm_recipe/.gitkeep +0 -0
- data/lib/playmo/silent.rb +17 -0
- data/playmo.gemspec +6 -2
- data/spec/cookbook_spec.rb +23 -0
- data/spec/recipes/home_controller_recipe_spec.rb +13 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/support/.gitkeep +0 -0
- metadata +144 -79
- data/lib/app/helpers/playmo_helper.rb +0 -54
- data/lib/generators/playmo/USAGE +0 -8
- data/lib/generators/playmo/install_generator.rb +0 -166
- data/lib/generators/playmo/templates/application.html.erb +0 -56
- data/lib/generators/playmo/templates/application_controller.rb +0 -9
- data/lib/generators/playmo/templates/application_helper.rb +0 -21
- data/lib/generators/playmo/templates/assets.yml +0 -32
- data/lib/generators/playmo/templates/deploy.rb +0 -50
- data/lib/generators/playmo/templates/jquery/jquery-1.5.2.min.js +0 -16
- data/lib/generators/playmo/templates/jquery/rails.js +0 -157
- data/lib/generators/playmo/templates/mootools/mootools-core-1.3.1.js +0 -485
- data/lib/generators/playmo/templates/mootools/mootools-more-1.3.1.1.js +0 -741
- data/lib/generators/playmo/templates/mootools/rails.js +0 -161
- data/lib/generators/playmo/templates/tasks/assets.rake +0 -10
- data/lib/generators/playmo/templates/tasks/sass.rake +0 -8
- data/stylesheets/playmo-rails/_handheld.scss +0 -8
- data/stylesheets/playmo-rails/_reset.scss +0 -56
- data/templates/project/boilerplate/css/handheld.scss +0 -7
- data/templates/project/boilerplate/css/style.scss +0 -141
- data/templates/project/boilerplate/files/apple-touch-icon.png +0 -0
- data/templates/project/boilerplate/files/crossdomain.xml +0 -25
- data/templates/project/boilerplate/files/favicon.ico +0 -0
- data/templates/project/boilerplate/files/robots.txt +0 -5
- data/templates/project/boilerplate/js/libs/dd_belatedpng.js +0 -13
- data/templates/project/boilerplate/js/libs/modernizr-1.7.min.js +0 -2
- data/templates/project/google/google.yml +0 -22
- data/templates/project/manifest.rb +0 -34
- data/templates/project/playmo/article.scss +0 -69
- data/templates/project/playmo/icons/outgoing.png +0 -0
- data/templates/project/rails/public/stylesheets/layout.scss +0 -20
- data/templates/project/rails/public/stylesheets/print.scss +0 -11
- data/templates/project/rails/public/stylesheets/screen.scss +0 -14
- data/templates/project/rails/public/stylesheets/wysiwyg.scss +0 -19
@@ -0,0 +1,52 @@
|
|
1
|
+
module Playmo
|
2
|
+
class Choice < Thor::Shell::Basic
|
3
|
+
CAPTION = "\nMake your choice"
|
4
|
+
attr_accessor :question, :choice, :accepted_values, :user_input, :caller
|
5
|
+
|
6
|
+
def initialize(question, caller)
|
7
|
+
@question = question
|
8
|
+
@caller = caller
|
9
|
+
@padding = 0
|
10
|
+
@choice = nil
|
11
|
+
|
12
|
+
if @question.has_answers?
|
13
|
+
@accepted_values = 1.upto(@question.answers.size).to_a.map { |value| value.to_s }
|
14
|
+
else
|
15
|
+
@accepted_values = %w/y n yes no/
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def make_choice!
|
20
|
+
until @accepted_values.include?(@user_input) do
|
21
|
+
@user_input = ask render
|
22
|
+
@user_input.downcase!
|
23
|
+
end
|
24
|
+
|
25
|
+
if @user_input
|
26
|
+
|
27
|
+
if @question.has_answers?
|
28
|
+
answer = @question.answers.find { |answer| answer.num.to_s == @user_input }
|
29
|
+
@caller.send(answer.method_name)
|
30
|
+
else
|
31
|
+
answer = @question.answers.first
|
32
|
+
@caller.send(answer.method_name) if %w/y yes/.include?(@user_input)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def render
|
39
|
+
if @question.has_answers?
|
40
|
+
sentence = @accepted_values.to_sentence(
|
41
|
+
:last_word_connector => ' or '
|
42
|
+
)
|
43
|
+
else
|
44
|
+
sentence = "y/n"
|
45
|
+
end
|
46
|
+
|
47
|
+
CAPTION + " (#{sentence}):"
|
48
|
+
end
|
49
|
+
|
50
|
+
alias :to_s :render
|
51
|
+
end
|
52
|
+
end
|
data/lib/playmo/cli.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'thor/group'
|
2
|
+
|
3
|
+
module Playmo
|
4
|
+
class Cli < Thor::Group
|
5
|
+
include Thor::Actions
|
6
|
+
|
7
|
+
argument :application_name, :type => :string, :desc => "The name of the rails application"
|
8
|
+
desc "Generates a new Rails application with Playmo'"
|
9
|
+
|
10
|
+
def run_playmo
|
11
|
+
self.destination_root = application_name
|
12
|
+
system "rails new #{application_name} -JT --skip-bundle"
|
13
|
+
|
14
|
+
Playmo::Cookbook.instance.cook_recipes!(application_name)
|
15
|
+
|
16
|
+
system %Q{echo "gem 'therubyracer'" >> ./#{application_name}/Gemfile}
|
17
|
+
system %Q{echo "gem 'playmo', :path => '../../playmo'" >> ./#{application_name}/Gemfile}
|
18
|
+
system "cd #{application_name} && bundle install"
|
19
|
+
|
20
|
+
Event.events.fire :after_install
|
21
|
+
Event.events.fire :before_exit
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
module Playmo
|
2
|
+
|
3
|
+
# This class contains all registered recipes.
|
4
|
+
# You can register own recipe in this class
|
5
|
+
class Cookbook
|
6
|
+
include Enumerable
|
7
|
+
attr_accessor :recipes, :cooked_recipes
|
8
|
+
|
9
|
+
def self.instance
|
10
|
+
@@instance ||= Playmo::Cookbook.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
@recipes = []
|
15
|
+
@cooked_recipes = []
|
16
|
+
end
|
17
|
+
|
18
|
+
def each
|
19
|
+
recipes.each { |x| yield x }
|
20
|
+
end
|
21
|
+
|
22
|
+
def size
|
23
|
+
recipes.size
|
24
|
+
end
|
25
|
+
|
26
|
+
def last
|
27
|
+
recipes.last
|
28
|
+
end
|
29
|
+
|
30
|
+
def [](i)
|
31
|
+
recipes[i]
|
32
|
+
end
|
33
|
+
|
34
|
+
def delete(target)
|
35
|
+
recipes.delete target
|
36
|
+
end
|
37
|
+
|
38
|
+
# Is recipe already cooked?
|
39
|
+
def cooked?(recipe)
|
40
|
+
@cooked_recipes.include?(recipe)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Adds the new recipe before the specified existing recipe in the Cookbook stack.
|
44
|
+
def insert(existing_recipe, new_recipe)
|
45
|
+
index = assert_index(existing_recipe, :before)
|
46
|
+
recipes.insert(index, new_recipe)
|
47
|
+
end
|
48
|
+
|
49
|
+
alias_method :insert_before, :insert
|
50
|
+
|
51
|
+
# Adds the new recipe after the specified existing recipe in the Cookbook stack.
|
52
|
+
def insert_after(existing_recipe, new_recipe)
|
53
|
+
index = assert_index(existing_recipe, :after)
|
54
|
+
insert(index + 1, new_recipe)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Adds the new recipe at the bottom of the Cookbook stack.
|
58
|
+
def use(new_recipe)
|
59
|
+
recipes.push(new_recipe)
|
60
|
+
end
|
61
|
+
|
62
|
+
def cook_recipes!(application_name)
|
63
|
+
prepared_recipes = []
|
64
|
+
|
65
|
+
recipes.each do |recipe|
|
66
|
+
prepared_recipes << recipe.new
|
67
|
+
end
|
68
|
+
|
69
|
+
prepared_recipes.each do |recipe|
|
70
|
+
recipe.cook!(application_name)
|
71
|
+
@cooked_recipes << recipe
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
protected
|
76
|
+
|
77
|
+
def assert_index(index, where)
|
78
|
+
i = index.is_a?(Integer) ? index : recipes.index(index)
|
79
|
+
raise "No such recipe to insert #{where}: #{index.inspect}" unless i
|
80
|
+
i
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
data/lib/playmo/event.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'singleton'
|
2
|
+
|
3
|
+
module Playmo
|
4
|
+
class Options
|
5
|
+
include Singleton
|
6
|
+
attr_accessor :options_hash
|
7
|
+
|
8
|
+
def set(key, value)
|
9
|
+
@options_hash ||= {}
|
10
|
+
@options_hash[key.to_sym] = value
|
11
|
+
end
|
12
|
+
|
13
|
+
def get(key)
|
14
|
+
@options_hash[key.to_sym]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Playmo
|
2
|
+
class Question < Thor::Shell::Basic
|
3
|
+
attr_accessor :answers, :choice, :question_text, :caller
|
4
|
+
|
5
|
+
def initialize(arg, &block)
|
6
|
+
@question_text, method_name = arg, nil
|
7
|
+
@answers ||= []
|
8
|
+
@padding = 0
|
9
|
+
|
10
|
+
# Question with no answers
|
11
|
+
if arg.respond_to? :keys
|
12
|
+
@question_text, method_name = arg.first.first, arg.first.last
|
13
|
+
answer(nil => method_name)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Multiple answers
|
17
|
+
self.instance_eval(&block) if block_given?
|
18
|
+
end
|
19
|
+
|
20
|
+
def set_caller(recipe)
|
21
|
+
@caller = recipe
|
22
|
+
end
|
23
|
+
|
24
|
+
def answer(arg)
|
25
|
+
@answers << Playmo::Answer.new(arg.first.first, arg.first.last, @answers.size + 1)
|
26
|
+
end
|
27
|
+
|
28
|
+
def has_answers?
|
29
|
+
@answers.size > 1
|
30
|
+
end
|
31
|
+
|
32
|
+
def ask_question!
|
33
|
+
say render
|
34
|
+
end
|
35
|
+
|
36
|
+
# Render question with answers
|
37
|
+
def render
|
38
|
+
result = "\n#{@question_text}"
|
39
|
+
|
40
|
+
if has_answers?
|
41
|
+
result += ":\n\n"
|
42
|
+
num = 1
|
43
|
+
@answers.each do |answer|
|
44
|
+
result += answer.render
|
45
|
+
num += 1
|
46
|
+
end
|
47
|
+
else
|
48
|
+
result += "\n"
|
49
|
+
end
|
50
|
+
|
51
|
+
# Create choice
|
52
|
+
@choice = Playmo::Choice.new(self, @caller)
|
53
|
+
|
54
|
+
result
|
55
|
+
end
|
56
|
+
|
57
|
+
alias :to_s :render
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Playmo
|
4
|
+
# Base class for all recipes
|
5
|
+
class Recipe < Rails::Generators::Base
|
6
|
+
attr_accessor :question_instance, :silents, :application_name
|
7
|
+
|
8
|
+
# Приготовление рецепта
|
9
|
+
def cook!(application_name)
|
10
|
+
self.destination_root = application_name
|
11
|
+
self.application_name = application_name
|
12
|
+
setup
|
13
|
+
|
14
|
+
unless question_instance.nil?
|
15
|
+
question_instance.set_caller(self)
|
16
|
+
|
17
|
+
# Ask question
|
18
|
+
question_instance.ask_question!
|
19
|
+
|
20
|
+
# Ask for choice and make choice
|
21
|
+
question_instance.choice.make_choice!
|
22
|
+
end
|
23
|
+
|
24
|
+
# Execute all silents
|
25
|
+
unless silents.nil?
|
26
|
+
silents.each do |silent|
|
27
|
+
silent.set_caller(self)
|
28
|
+
silent.execute!
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def question(arg, &block)
|
34
|
+
@question_instance = Playmo::Question.new(arg, &block)
|
35
|
+
end
|
36
|
+
|
37
|
+
def silently(&block)
|
38
|
+
@silents ||= []
|
39
|
+
@silents << Playmo::Silent.new(&block)
|
40
|
+
end
|
41
|
+
|
42
|
+
def store(*args)
|
43
|
+
Options.instance.set(*args)
|
44
|
+
end
|
45
|
+
|
46
|
+
def retrieve(*args)
|
47
|
+
Options.instance.get(*args)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Playmo
|
2
|
+
module Generators
|
3
|
+
module Recipes
|
4
|
+
class SampleRecipe < Playmo::Recipe
|
5
|
+
# Cook the recipe
|
6
|
+
# TODO: Add rspec tests
|
7
|
+
# TODO: Recipe with more than one question
|
8
|
+
# TODO: You can create own gem and redefine Playmo behavior by removing or adding recipes
|
9
|
+
# TODO: Create a web service built on top of Playmo to prepare new app and putting it to Github or download in archive
|
10
|
+
# TODO: A playmo bin file that generate rails app and do all the stuff as altennative to manually installing rails app and include playmo into this app
|
11
|
+
# TODO: Require playmo to the app only when in development mode
|
12
|
+
# TODO: Copy Playmo view heplers into the app
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
silently do
|
16
|
+
# do something without any questions
|
17
|
+
end
|
18
|
+
|
19
|
+
question "What's up Docz?" => :do_something_for_doc
|
20
|
+
|
21
|
+
def do_something_for_doc
|
22
|
+
# do something for Doc
|
23
|
+
end
|
24
|
+
|
25
|
+
question "What's up Docx?" do
|
26
|
+
answer "So-so" => :so_so
|
27
|
+
answer "Nice!" => :nice
|
28
|
+
end
|
29
|
+
|
30
|
+
question "What's up Docy?" do
|
31
|
+
answer "So-so" do
|
32
|
+
# do something
|
33
|
+
end
|
34
|
+
|
35
|
+
answer "Nice!" do
|
36
|
+
# do something
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
# Write down this recipe to our Cookbook if it's available
|
46
|
+
# Playmo::Cookbook.instance.use(Playmo::Generators::Recipes::SampleRecipe.new) if defined?(Playmo::Cookbook)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Playmo
|
2
|
+
module Recipes
|
3
|
+
class ApplicationControllerRecipe < Playmo::Recipe
|
4
|
+
source_root File.expand_path('../templates/application_controller_recipe', __FILE__)
|
5
|
+
|
6
|
+
def setup
|
7
|
+
silently do
|
8
|
+
remove_file 'app/controllers/application_controller.rb'
|
9
|
+
copy_file 'application_controller.rb', 'app/controllers/application_controller.rb'
|
10
|
+
empty_directory "app/views/application"
|
11
|
+
copy_file "internal_error.html.erb", "app/views/application/internal_error.html.erb"
|
12
|
+
copy_file "not_found.html.erb", "app/views/application/not_found.html.erb"
|
13
|
+
|
14
|
+
# To catch routing errors
|
15
|
+
route 'match "*catch_all" => "application#not_found"'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Write down this recipe to our Cookbook if it's available
|
23
|
+
require File.dirname(__FILE__) + '/assets_recipe'
|
24
|
+
Playmo::Cookbook.instance.insert_after(Playmo::Recipes::AssetsRecipe, Playmo::Recipes::ApplicationControllerRecipe) if defined?(Playmo::Cookbook)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Playmo
|
2
|
+
module Recipes
|
3
|
+
class ApplicationHelperRecipe < Playmo::Recipe
|
4
|
+
source_root File.expand_path('../templates/application_helper_recipe', __FILE__)
|
5
|
+
|
6
|
+
def setup
|
7
|
+
silently do
|
8
|
+
remove_file 'app/helpers/application_helper.rb'
|
9
|
+
copy_file 'application_helper.rb', 'app/helpers/application_helper.rb'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# Write down this recipe to our Cookbook if it's available
|
17
|
+
require File.dirname(__FILE__) + '/home_controller_recipe'
|
18
|
+
Playmo::Cookbook.instance.insert_after(Playmo::Recipes::HomeControllerRecipe, Playmo::Recipes::ApplicationHelperRecipe) if defined?(Playmo::Cookbook)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Playmo
|
2
|
+
module Recipes
|
3
|
+
class AssetsRecipe < Playmo::Recipe
|
4
|
+
source_root File.expand_path('../templates/assets_recipe', __FILE__)
|
5
|
+
|
6
|
+
def setup
|
7
|
+
silently do
|
8
|
+
directory 'images/', 'app/assets/images/'
|
9
|
+
directory 'stylesheets/', 'app/assets/stylesheets/'
|
10
|
+
remove_file 'app/assets/stylesheets/application.css'
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# Write down this recipe to our Cookbook if it's available
|
18
|
+
require File.dirname(__FILE__) + '/markup_recipe'
|
19
|
+
Playmo::Cookbook.instance.insert_after(Playmo::Recipes::MarkupRecipe, Playmo::Recipes::AssetsRecipe) if defined?(Playmo::Cookbook)
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Playmo
|
2
|
+
module Recipes
|
3
|
+
class CapistranoRecipe < Playmo::Recipe
|
4
|
+
source_root File.expand_path('../templates/capistrano_recipe', __FILE__)
|
5
|
+
|
6
|
+
def setup
|
7
|
+
question "Would you like to deploy project with Capistrano?" => :install_capistrano
|
8
|
+
end
|
9
|
+
|
10
|
+
def install_capistrano
|
11
|
+
gem 'capistrano'
|
12
|
+
|
13
|
+
# TODO: Copy deploy.rb
|
14
|
+
|
15
|
+
Event.events.listen(:after_install) do |event_data|
|
16
|
+
capify!
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Write down this recipe to our Cookbook if it's available
|
24
|
+
require File.dirname(__FILE__) + '/rspec_recipe'
|
25
|
+
Playmo::Cookbook.instance.insert_after(Playmo::Recipes::RspecRecipe, Playmo::Recipes::CapistranoRecipe) if defined?(Playmo::Cookbook)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Playmo
|
2
|
+
module Recipes
|
3
|
+
class CompassRecipe < Playmo::Recipe
|
4
|
+
source_root File.expand_path('../templates/compass_recipe', __FILE__)
|
5
|
+
|
6
|
+
def setup
|
7
|
+
question "Would you like to use Compass in this project?" => :install_compass
|
8
|
+
end
|
9
|
+
|
10
|
+
def install_compass
|
11
|
+
gem "compass", "~> 0.12.alpha.0"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# Write down this recipe to our Cookbook if it's available
|
18
|
+
require File.dirname(__FILE__) + '/application_controller_recipe'
|
19
|
+
Playmo::Cookbook.instance.insert_after(Playmo::Recipes::ApplicationControllerRecipe, Playmo::Recipes::CompassRecipe) if defined?(Playmo::Cookbook)
|