turbo-generators 0.0.0

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.
Files changed (31) hide show
  1. data/.gitignore +2 -0
  2. data/CHANGELOG +0 -0
  3. data/README.rdoc +1 -0
  4. data/Rakefile +19 -0
  5. data/TODO +23 -0
  6. data/VERSION +1 -0
  7. data/lib/turbo_generators.rb +0 -0
  8. data/rails_generators/turbo_blog/USAGE +1 -0
  9. data/rails_generators/turbo_blog/lib/insert_commands.rb +74 -0
  10. data/rails_generators/turbo_blog/templates/20091209042009_create_posts.rb +14 -0
  11. data/rails_generators/turbo_blog/templates/post.rb +4 -0
  12. data/rails_generators/turbo_blog/templates/posts_controller.rb +49 -0
  13. data/rails_generators/turbo_blog/templates/posts_helper.rb +2 -0
  14. data/rails_generators/turbo_blog/templates/views/partials/_list_post.html.erb +4 -0
  15. data/rails_generators/turbo_blog/templates/views/partials/_post.html.erb +18 -0
  16. data/rails_generators/turbo_blog/templates/views/posts/_form.html.erb +12 -0
  17. data/rails_generators/turbo_blog/templates/views/posts/edit.html.erb +8 -0
  18. data/rails_generators/turbo_blog/templates/views/posts/index.html.erb +7 -0
  19. data/rails_generators/turbo_blog/templates/views/posts/new.html.erb +5 -0
  20. data/rails_generators/turbo_blog/templates/views/posts/show.html.erb +5 -0
  21. data/rails_generators/turbo_blog/turbo_blog_generator.rb +32 -0
  22. data/rails_generators/turbo_layout/USAGE +1 -0
  23. data/rails_generators/turbo_layout/templates/application.html.erb +55 -0
  24. data/rails_generators/turbo_layout/templates/custom.css +47 -0
  25. data/rails_generators/turbo_layout/templates/ie.css +35 -0
  26. data/rails_generators/turbo_layout/templates/layout_helper.rb +22 -0
  27. data/rails_generators/turbo_layout/templates/print.css +29 -0
  28. data/rails_generators/turbo_layout/templates/screen.css +450 -0
  29. data/rails_generators/turbo_layout/turbo_layout_generator.rb +13 -0
  30. data/turbo-generators.gemspec +67 -0
  31. metadata +85 -0
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ pkg
2
+ Manifest
data/CHANGELOG ADDED
File without changes
data/README.rdoc ADDED
@@ -0,0 +1 @@
1
+ At this precise moment the code is not stable for download or use. I'm working as fast as i can though and should have something available ready soon.
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gemspec|
7
+ gemspec.name = "turbo-generators"
8
+ gemspec.summary = "Generator scripts for adding very simple crud resources to rails apps"
9
+ gemspec.description = "Some basic scripts for automating the process of creating simple crud resources. Presently there are two generators, turbo_layout and turbo_blog. Guess what they do? Nothing special, then just automate a process that I seem to repeat often."
10
+ gemspec.email = "stephen@stephenmurdoch.eu"
11
+ gemspec.homepage = "http://github.com/murdoch/turbo-generators"
12
+ gemspec.authors = ["Stephen Murdoch"]
13
+ end
14
+ Jeweler::GemcutterTasks.new
15
+ rescue LoadError
16
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
17
+ end
18
+
19
+ Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
data/TODO ADDED
@@ -0,0 +1,23 @@
1
+
2
+ Turbo Blog
3
+ - add validations to post model
4
+ - currently the software requires user.rb to exist in order to work - this is a problem I will fix.
5
+ - need to create comment resources so that readers can comment on blog posts - this will evetually be replaced by the turbo_comments generator.
6
+
7
+ Turbo Layout
8
+ - it's nowhere near what I want it to be - this will require a LOT of work
9
+ - i want a very simple yet stylish starting place
10
+ - it presently uses blueprint although I am thinking of integrating compass (which contains blueprint)
11
+ - switch to haml and sass
12
+
13
+ Turbo Comments
14
+ - start project
15
+
16
+ Turbo Forum
17
+ - start project
18
+
19
+ Turbo Gallery
20
+ - start project
21
+
22
+ Turbo Mailer
23
+ - start project
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.0
File without changes
@@ -0,0 +1 @@
1
+ Todo
@@ -0,0 +1,74 @@
1
+ Rails::Generator::Commands::Create.class_eval do
2
+ def route_resource(*resources)
3
+ resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
4
+ sentinel = 'ActionController::Routing::Routes.draw do |map|'
5
+
6
+ logger.route "map.resource #{resource_list}"
7
+ unless options[:pretend]
8
+ gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
9
+ "#{match}\n map.resource #{resource_list}\n"
10
+ end
11
+ end
12
+ end
13
+
14
+ def route_name(name, path, route_options = {})
15
+ sentinel = 'ActionController::Routing::Routes.draw do |map|'
16
+
17
+ logger.route "map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
18
+ unless options[:pretend]
19
+ gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
20
+ "#{match}\n map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
21
+ end
22
+ end
23
+ end
24
+
25
+ def insert_into(file, line)
26
+ logger.insert "#{line} into #{file}"
27
+ unless options[:pretend]
28
+ gsub_file file, /^(class|module) .+$/ do |match|
29
+ "#{match}\n #{line}"
30
+ end
31
+ end
32
+ end
33
+ end
34
+
35
+ Rails::Generator::Commands::Destroy.class_eval do
36
+ def route_resource(*resources)
37
+ resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
38
+ look_for = "\n map.resource #{resource_list}\n"
39
+ logger.route "map.resource #{resource_list}"
40
+ unless options[:pretend]
41
+ gsub_file 'config/routes.rb', /(#{look_for})/mi, ''
42
+ end
43
+ end
44
+
45
+ def route_name(name, path, route_options = {})
46
+ look_for = "\n map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
47
+ logger.route "map.#{name} '#{path}', :controller => '#{route_options[:controller]}', :action => '#{route_options[:action]}'"
48
+ unless options[:pretend]
49
+ gsub_file 'config/routes.rb', /(#{look_for})/mi, ''
50
+ end
51
+ end
52
+
53
+ def insert_into(file, line)
54
+ logger.remove "#{line} from #{file}"
55
+ unless options[:pretend]
56
+ gsub_file file, "\n #{line}", ''
57
+ end
58
+ end
59
+ end
60
+
61
+ Rails::Generator::Commands::List.class_eval do
62
+ def route_resource(*resources)
63
+ resource_list = resources.map { |r| r.to_sym.inspect }.join(', ')
64
+ logger.route "map.resource #{resource_list}"
65
+ end
66
+
67
+ def route_name(name, path, options = {})
68
+ logger.route "map.#{name} '#{path}', :controller => '{options[:controller]}', :action => '#{options[:action]}'"
69
+ end
70
+
71
+ def insert_into(file, line)
72
+ logger.insert "#{line} into #{file}"
73
+ end
74
+ end
@@ -0,0 +1,14 @@
1
+ class CreatePosts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :posts do |t|
4
+ t.string :title
5
+ t.text :body
6
+ t.references :user
7
+ t.timestamps
8
+ end
9
+ end
10
+
11
+ def self.down
12
+ drop_table :posts
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+ class Post < ActiveRecord::Base
2
+ belongs_to :user
3
+ attr_accessible :title, :body
4
+ end
@@ -0,0 +1,49 @@
1
+ class PostsController < ApplicationController
2
+ #unloadable
3
+ include Authentication
4
+ before_filter :login_required, :except => [:index, :show]
5
+ def index
6
+ @posts = Post.all
7
+ end
8
+
9
+ def show
10
+ @post = Post.find(params[:id])
11
+ end
12
+
13
+ def new
14
+ @post = Post.new
15
+ end
16
+
17
+ def create
18
+ @post = Post.new(params[:post])
19
+ @post.user = current_user
20
+
21
+ if @post.save
22
+ flash[:notice] = "Successfully created post."
23
+ redirect_to @post
24
+ else
25
+ render :action => 'new'
26
+ end
27
+ end
28
+
29
+ def edit
30
+ @post = Post.find(params[:id])
31
+ end
32
+
33
+ def update
34
+ @post = Post.find(params[:id])
35
+ if @post.update_attributes(params[:post])
36
+ flash[:notice] = "Successfully updated post."
37
+ redirect_to @post
38
+ else
39
+ render :action => 'edit'
40
+ end
41
+ end
42
+
43
+ def destroy
44
+ @post = Post.find(params[:id])
45
+ @post.destroy
46
+ flash[:notice] = "Successfully destroyed post."
47
+ redirect_to posts_url
48
+ end
49
+ end
@@ -0,0 +1,2 @@
1
+ module PostsHelper
2
+ end
@@ -0,0 +1,4 @@
1
+ <div class="list_post">
2
+ <h3><%= link_to_unless_current h(post.title.capitalize), post_path(post) %></h3>
3
+ Posted <%= time_ago_in_words(post.created_at) %> ago by <%= link_to post.user.username, user_path(post.user) %>
4
+ </div>
@@ -0,0 +1,18 @@
1
+ <% title "#{post.title}" %>
2
+ <div class="post_body">
3
+ <%= post.body %>
4
+ </div>
5
+
6
+
7
+
8
+ <p>
9
+ <%= link_to 'Back', posts_path %> |
10
+ <% if logged_in? %>
11
+ <%= link_to "Edit", edit_post_path(post) %> |
12
+ <%= link_to "Destroy", post, :confirm => 'Are you sure?', :method => :delete %> |
13
+ <% end %>
14
+ <%= link_to "View All", posts_path %>
15
+ </p>
16
+
17
+
18
+
@@ -0,0 +1,12 @@
1
+ <% form_for @post do |f| %>
2
+ <%= f.error_messages %>
3
+ <p>
4
+ <%= f.label :title %><br />
5
+ <%= f.text_field :title %>
6
+ </p>
7
+ <p>
8
+ <%= f.label :body %><br />
9
+ <%= f.text_area :body %>
10
+ </p>
11
+ <p><%= f.submit "Submit" %></p>
12
+ <% end %>
@@ -0,0 +1,8 @@
1
+ <% title "Edit Post" %>
2
+
3
+ <%= render :partial => 'form' %>
4
+
5
+ <p>
6
+ <%= link_to "Show", @post %> |
7
+ <%= link_to "View All", posts_path %>
8
+ </p>
@@ -0,0 +1,7 @@
1
+ <% title "Welcome to the News section of our site" %>
2
+ <% if logged_in? %><p><%= link_to "Hello, click here to create a new article", new_post_path %></p><% end %>
3
+
4
+
5
+ <% for post in @posts %>
6
+ <%= render :partial => "partials/list_post", :locals=>{:post => post} %>
7
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <% title "New Post" %>
2
+
3
+ <%= render :partial => 'form' %>
4
+
5
+ <p><%= link_to "Back to List", posts_path %></p>
@@ -0,0 +1,5 @@
1
+ <% title "#{@post.title}" %>
2
+
3
+ <div id="post">
4
+ <%= render :partial => 'partials/post', :locals=>{:post=>@post} %>
5
+ </div>
@@ -0,0 +1,32 @@
1
+ require File.expand_path(File.dirname(__FILE__) + "/lib/insert_commands.rb")
2
+ class TurboBlogGenerator < Rails::Generator::Base
3
+
4
+ def manifest
5
+ record do |m|
6
+ m.directory "app/models"
7
+ m.directory "app/controllers"
8
+ m.directory "app/helpers"
9
+ m.directory "app/views"
10
+ m.directory "app/views/posts"
11
+ m.directory "app/views/partials"
12
+
13
+ m.file "post.rb", "app/models/post.rb"
14
+ m.file "posts_controller.rb", "app/controllers/posts_controller.rb"
15
+ m.file "posts_helper.rb", "app/helpers/posts_helper.rb"
16
+
17
+ m.file "views/posts/new.html.erb", "app/views/posts/new.html.erb"
18
+ m.file "views/posts/edit.html.erb", "app/views/posts/edit.html.erb"
19
+ m.file "views/posts/index.html.erb", "app/views/posts/index.html.erb"
20
+ m.file "views/posts/show.html.erb", "app/views/posts/show.html.erb"
21
+ m.file "views/posts/_form.html.erb", "app/views/posts/_form.html.erb"
22
+
23
+ m.file "views/partials/_list_post.html.erb", "app/views/partials/_list_post.html.erb"
24
+ m.file "views/partials/_post.html.erb", "app/views/partials/_post.html.erb"
25
+
26
+ m.migration_template "20091209042009_create_posts.rb", "db/migrate", :migration_file_name => "create_posts"
27
+ m.route_resources :posts
28
+
29
+ m.insert_into "app/models/user.rb", 'has_many :posts'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1 @@
1
+ Lorem ipsum and whatever else
@@ -0,0 +1,55 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title><%= h(yield(:title) || "Lorem Ipsum") %></title>
6
+ <%= stylesheet_link_tag 'screen', 'custom', :media => "screen, projection" %>
7
+ <%= stylesheet_link_tag 'print', :media => "print" %>
8
+ <%= javascript_include_tag :defaults %>
9
+ <!--[if lt IE 8]>
10
+ <%= stylesheet_link_tag 'ie', :media => "screen, projection" %>
11
+ <![endif]-->
12
+ <%= yield(:head) %>
13
+ </head>
14
+ <body>
15
+
16
+ <div class="container">
17
+ <div id="header" class="span-24" >
18
+ <h1>Your Site</h1>
19
+ </div><!-- End of header div -->
20
+
21
+ <div id="navbar" class="span-24">
22
+ <ul>
23
+ <li>
24
+ <%= link_to "Home", home_path %>
25
+ </li>
26
+ <li>
27
+ <%= link_to "About", about_path %>
28
+ </li>
29
+ <li>
30
+ <%= link_to "Gallery", about_path %>
31
+ </li>
32
+ <li>
33
+ <%= link_to "Blog", about_path %>
34
+ </li>
35
+ <li>
36
+ <%= link_to "Contact", about_path %>
37
+ </li>
38
+ </ul>
39
+ </div><!-- End of navbar div -->
40
+
41
+ <%- if show_title? -%>
42
+ <h1><%=h yield(:title) %></h1>
43
+ <%- end -%>
44
+
45
+ <%- flash.each do |name, msg| -%>
46
+ <%= content_tag :div, msg, :id => "flash_#{name}" %>
47
+ <%- end -%>
48
+
49
+ <%= yield %>
50
+ <div class="span-24" id="footer">
51
+ <h1>This is the footer section of the website.</h1>
52
+ </div><!-- End of footer div -->
53
+ </div><!-- End of container div -->
54
+ </body>
55
+ </html>
@@ -0,0 +1,47 @@
1
+ html, body { height: 100%; margin:0px 0 1px 0; padding: 0; }
2
+
3
+ #header h1{ padding:10px 0; margin: 10px 0;}
4
+
5
+ #navbar ul {margin-left:0; padding:10px 0; border-bottom:1px dashed #999; border-top:1px dashed #999;}
6
+ #navbar li {display:inline;}
7
+ #navbar li a{ text-decoration:none;color:#333; }
8
+ #navbar li a:hover {color:#51BDBD;color:#C46464}
9
+ #navbar li span { color:#C46464;}
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+ #social-bookmark-links ul li {font-size:3em;line-height:1;margin-right:10px;}
19
+ #social-bookmark-links li:last-child { margin-right:0;}
20
+ #social-bookmark-links li a {text-decoration:none; }
21
+
22
+
23
+ #statement img{}
24
+ #social-bookmark-details img{}
25
+ #footer{}
26
+ #contact-page-blurb{}
27
+
28
+ #contact-form label{text-transform:uppercase; color:#505050;}
29
+ #contact-form-name{}
30
+ #contact-form-email i{text-transform:lowercase; color:#f23; font-weight:normal;}
31
+ #contact-form-subject{}
32
+ #contact-form-body{}
33
+ #contact-form-name input, #contact-form-email input, #contact-form-subject input, #contact-form-body textarea{background:#cddeff;background:#F6FFA8;background:#F6F5E4;margin-bottom:10px; }
34
+ #maincol, #footer, #contact-form, #contact-page, #page-title, #contact-page-blurb, #leftcol, #rightcol, #sidecol, #navbar, #social-bookmark-links, #logo, #bio, #social-bookmark-details, #statement, #page-title { margin-bottom:10px; }
35
+
36
+ .about-page-section-title{
37
+
38
+
39
+ /*background:#FF695B;background:#F6FFA8;background:#FF695B;background:#F8FFC2;*/
40
+
41
+ }
42
+
43
+
44
+ p.justify {text-align:justify}
45
+ #leftcol, #rightcol { height: 150px; }
46
+ #maincol, #sidecol { height: 250px; }
47
+
@@ -0,0 +1,35 @@
1
+ /* -----------------------------------------------------------------------
2
+
3
+
4
+ Blueprint CSS Framework 0.9
5
+ http://blueprintcss.org
6
+
7
+ * Copyright (c) 2007-Present. See LICENSE for more info.
8
+ * See README for instructions on how to use Blueprint.
9
+ * For credits and origins, see AUTHORS.
10
+ * This is a compressed file. See the sources in the 'src' directory.
11
+
12
+ ----------------------------------------------------------------------- */
13
+
14
+ /* ie.css */
15
+ body {text-align:center;}
16
+ .container {text-align:left;}
17
+ * html .column, * html div.span-1, * html div.span-2, * html div.span-3, * html div.span-4, * html div.span-5, * html div.span-6, * html div.span-7, * html div.span-8, * html div.span-9, * html div.span-10, * html div.span-11, * html div.span-12, * html div.span-13, * html div.span-14, * html div.span-15, * html div.span-16, * html div.span-17, * html div.span-18, * html div.span-19, * html div.span-20, * html div.span-21, * html div.span-22, * html div.span-23, * html div.span-24 {display:inline;overflow-x:hidden;}
18
+ * html legend {margin:0px -8px 16px 0;padding:0;}
19
+ sup {vertical-align:text-top;}
20
+ sub {vertical-align:text-bottom;}
21
+ html>body p code {*white-space:normal;}
22
+ hr {margin:-8px auto 11px;}
23
+ img {-ms-interpolation-mode:bicubic;}
24
+ .clearfix, .container {display:inline-block;}
25
+ * html .clearfix, * html .container {height:1%;}
26
+ fieldset {padding-top:0;}
27
+ textarea {overflow:auto;}
28
+ input.text, input.title, textarea {background-color:#fff;border:1px solid #bbb;}
29
+ input.text:focus, input.title:focus {border-color:#666;}
30
+ input.text, input.title, textarea, select {margin:0.5em 0;}
31
+ input.checkbox, input.radio {position:relative;top:.25em;}
32
+ form.inline div, form.inline p {vertical-align:middle;}
33
+ form.inline label {position:relative;top:-0.25em;}
34
+ form.inline input.checkbox, form.inline input.radio, form.inline input.button, form.inline button {margin:0.5em 0;}
35
+ button, input.button {position:relative;top:0.25em;}
@@ -0,0 +1,22 @@
1
+ # These helper methods can be called in your template to set variables to be used in the layout
2
+ # This module should be included in all views globally,
3
+ # to do so you may need to add this line to your ApplicationController
4
+ # helper :layout
5
+ module LayoutHelper
6
+ def title(page_title, show_title = true)
7
+ @content_for_title = page_title.to_s
8
+ @show_title = show_title
9
+ end
10
+
11
+ def show_title?
12
+ @show_title
13
+ end
14
+
15
+ def stylesheet(*args)
16
+ content_for(:head) { stylesheet_link_tag(*args) }
17
+ end
18
+
19
+ def javascript(*args)
20
+ content_for(:head) { javascript_include_tag(*args) }
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ /* -----------------------------------------------------------------------
2
+
3
+
4
+ Blueprint CSS Framework 0.9
5
+ http://blueprintcss.org
6
+
7
+ * Copyright (c) 2007-Present. See LICENSE for more info.
8
+ * See README for instructions on how to use Blueprint.
9
+ * For credits and origins, see AUTHORS.
10
+ * This is a compressed file. See the sources in the 'src' directory.
11
+
12
+ ----------------------------------------------------------------------- */
13
+
14
+ /* print.css */
15
+ body {line-height:1.5;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;color:#000;background:none;font-size:10pt;}
16
+ .container {background:none;}
17
+ hr {background:#ccc;color:#ccc;width:100%;height:2px;margin:2em 0;padding:0;border:none;}
18
+ hr.space {background:#fff;color:#fff;visibility:hidden;}
19
+ h1, h2, h3, h4, h5, h6 {font-family:"Helvetica Neue", Arial, "Lucida Grande", sans-serif;}
20
+ code {font:.9em "Courier New", Monaco, Courier, monospace;}
21
+ a img {border:none;}
22
+ p img.top {margin-top:0;}
23
+ blockquote {margin:1.5em;padding:1em;font-style:italic;font-size:.9em;}
24
+ .small {font-size:.9em;}
25
+ .large {font-size:1.1em;}
26
+ .quiet {color:#999;}
27
+ .hide {display:none;}
28
+ a:link, a:visited {background:transparent;font-weight:700;text-decoration:underline;}
29
+ a:link:after, a:visited:after {content:" (" attr(href) ")";font-size:90%;}
@@ -0,0 +1,450 @@
1
+ /* -----------------------------------------------------------------------
2
+
3
+
4
+ Blueprint CSS Framework 0.9
5
+ http://blueprintcss.org
6
+
7
+ * Copyright (c) 2007-Present. See LICENSE for more info.
8
+ * See README for instructions on how to use Blueprint.
9
+ * For credits and origins, see AUTHORS.
10
+ * This is a compressed file. See the sources in the 'src' directory.
11
+
12
+ ----------------------------------------------------------------------- */
13
+
14
+ /* reset.css */
15
+ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;}
16
+ body {line-height:1.5;}
17
+ table {border-collapse:separate;border-spacing:0;}
18
+ caption, th, td {text-align:left;font-weight:normal;}
19
+ table, td, th {vertical-align:middle;}
20
+ blockquote:before, blockquote:after, q:before, q:after {content:"";}
21
+ blockquote, q {quotes:"" "";}
22
+ a img {border:none;}
23
+
24
+ /* typography.css */
25
+ html {font-size:100.01%;}
26
+ body {font-size:75%;color:#222;background:#fff;font-family:"Helvetica Neue", Arial, Helvetica, sans-serif;}
27
+ h1, h2, h3, h4, h5, h6 {font-weight:normal;color:#111;}
28
+ h1 {font-size:3em;line-height:1;margin-bottom:0.5em;}
29
+ h2 {font-size:2em;margin-bottom:0.75em;}
30
+ h3 {font-size:1.5em;line-height:1;margin-bottom:1em;}
31
+ h4 {font-size:1.2em;line-height:1.25;margin-bottom:1.25em;}
32
+ h5 {font-size:1em;font-weight:bold;margin-bottom:1.5em;}
33
+ h6 {font-size:1em;font-weight:bold;}
34
+ h1 img, h2 img, h3 img, h4 img, h5 img, h6 img {margin:0;}
35
+ p {margin:0 0 1.5em;}
36
+ p img.left {float:left;margin:1.5em 1.5em 1.5em 0;padding:0;}
37
+ p img.right {float:right;margin:1.5em 0 1.5em 1.5em;}
38
+ a:focus, a:hover {color:#000;}
39
+ a {color:#009;text-decoration:underline;}
40
+ blockquote {margin:1.5em;color:#666;font-style:italic;}
41
+ strong {font-weight:bold;}
42
+ em, dfn {font-style:italic;}
43
+ dfn {font-weight:bold;}
44
+ sup, sub {line-height:0;}
45
+ abbr, acronym {border-bottom:1px dotted #666;}
46
+ address {margin:0 0 1.5em;font-style:italic;}
47
+ del {color:#666;}
48
+ pre {margin:1.5em 0;white-space:pre;}
49
+ pre, code, tt {font:1em 'andale mono', 'lucida console', monospace;line-height:1.5;}
50
+ li ul, li ol {margin:0;}
51
+ ul, ol {margin:0 1.5em 1.5em 0;padding-left:3.333em;}
52
+ ul {list-style-type:disc;}
53
+ ol {list-style-type:decimal;}
54
+ dl {margin:0 0 1.5em 0;}
55
+ dl dt {font-weight:bold;}
56
+ dd {margin-left:1.5em;}
57
+ table {margin-bottom:1.4em;width:100%;}
58
+ th {font-weight:bold;}
59
+ thead th {background:#c3d9ff;}
60
+ th, td, caption {padding:4px 10px 4px 5px;}
61
+ tr.even td {background:#e5ecf9;}
62
+ tfoot {font-style:italic;}
63
+ caption {background:#eee;}
64
+ .small {font-size:.8em;margin-bottom:1.875em;line-height:1.875em;}
65
+ .large {font-size:1.2em;line-height:2.5em;margin-bottom:1.25em;}
66
+ .hide {display:none;}
67
+ .quiet {color:#666;}
68
+ .loud {color:#000;}
69
+ .highlight {background:#ff0;}
70
+ .added {background:#060;color:#fff;}
71
+ .removed {background:#900;color:#fff;}
72
+ .first {margin-left:0;padding-left:0;}
73
+ .last {margin-right:0;padding-right:0;}
74
+ .top {margin-top:0;padding-top:0;}
75
+ .bottom {margin-bottom:0;padding-bottom:0;}
76
+
77
+ /* forms.css */
78
+ label {font-weight:bold;}
79
+ fieldset {padding:1.4em;margin:0 0 1.5em 0;border:1px solid #ccc;}
80
+ legend {font-weight:bold;font-size:1.2em;}
81
+ input[type=text], input[type=password], input.text, input.title, textarea, select {background-color:#fff;border:1px solid #bbb;}
82
+ input[type=text]:focus, input[type=password]:focus, input.text:focus, input.title:focus, textarea:focus, select:focus {border-color:#666;}
83
+ input[type=text], input[type=password], input.text, input.title, textarea, select {margin:0.5em 0;}
84
+ input.text, input.title {width:300px;padding:5px;}
85
+ input.title {font-size:1.5em;}
86
+ textarea {width:390px;height:250px;padding:5px;}
87
+ input[type=checkbox], input[type=radio], input.checkbox, input.radio {position:relative;top:.25em;}
88
+ form.inline {line-height:3;}
89
+ form.inline p {margin-bottom:0;}
90
+ .error, .notice, .success {padding:.8em;margin-bottom:1em;border:2px solid #ddd;}
91
+ .error {background:#FBE3E4;color:#8a1f11;border-color:#FBC2C4;}
92
+ .notice {background:#FFF6BF;color:#514721;border-color:#FFD324;}
93
+ .success {background:#E6EFC2;color:#264409;border-color:#C6D880;}
94
+ .error a {color:#8a1f11;}
95
+ .notice a {color:#514721;}
96
+ .success a {color:#264409;}
97
+
98
+ /* grid.css */
99
+ .container {width:950px;margin:0 auto;}
100
+ .showgrid {background:url(src/grid.png);}
101
+ .column, div.span-1, div.span-2, div.span-3, div.span-4, div.span-5, div.span-6, div.span-7, div.span-8, div.span-9, div.span-10, div.span-11, div.span-12, div.span-13, div.span-14, div.span-15, div.span-16, div.span-17, div.span-18, div.span-19, div.span-20, div.span-21, div.span-22, div.span-23, div.span-24 {float:left;margin-right:10px;}
102
+ .last, div.last {margin-right:0;}
103
+ .span-1 {width:30px;}
104
+ .span-2 {width:70px;}
105
+ .span-3 {width:110px;}
106
+ .span-4 {width:150px;}
107
+ .span-5 {width:190px;}
108
+ .span-6 {width:230px;}
109
+ .span-7 {width:270px;}
110
+ .span-8 {width:310px;}
111
+ .span-9 {width:350px;}
112
+ .span-10 {width:390px;}
113
+ .span-11 {width:430px;}
114
+ .span-12 {width:470px;}
115
+ .span-13 {width:510px;}
116
+ .span-14 {width:550px;}
117
+ .span-15 {width:590px;}
118
+ .span-16 {width:630px;}
119
+ .span-17 {width:670px;}
120
+ .span-18 {width:710px;}
121
+ .span-19 {width:750px;}
122
+ .span-20 {width:790px;}
123
+ .span-21 {width:830px;}
124
+ .span-22 {width:870px;}
125
+ .span-23 {width:910px;}
126
+ .span-24, div.span-24 {width:950px;margin-right:0;}
127
+ input.span-1, textarea.span-1, input.span-2, textarea.span-2, input.span-3, textarea.span-3, input.span-4, textarea.span-4, input.span-5, textarea.span-5, input.span-6, textarea.span-6, input.span-7, textarea.span-7, input.span-8, textarea.span-8, input.span-9, textarea.span-9, input.span-10, textarea.span-10, input.span-11, textarea.span-11, input.span-12, textarea.span-12, input.span-13, textarea.span-13, input.span-14, textarea.span-14, input.span-15, textarea.span-15, input.span-16, textarea.span-16, input.span-17, textarea.span-17, input.span-18, textarea.span-18, input.span-19, textarea.span-19, input.span-20, textarea.span-20, input.span-21, textarea.span-21, input.span-22, textarea.span-22, input.span-23, textarea.span-23, input.span-24, textarea.span-24 {border-left-width:1px!important;border-right-width:1px!important;padding-left:5px!important;padding-right:5px!important;}
128
+ input.span-1, textarea.span-1 {width:18px!important;}
129
+ input.span-2, textarea.span-2 {width:58px!important;}
130
+ input.span-3, textarea.span-3 {width:98px!important;}
131
+ input.span-4, textarea.span-4 {width:138px!important;}
132
+ input.span-5, textarea.span-5 {width:178px!important;}
133
+ input.span-6, textarea.span-6 {width:218px!important;}
134
+ input.span-7, textarea.span-7 {width:258px!important;}
135
+ input.span-8, textarea.span-8 {width:298px!important;}
136
+ input.span-9, textarea.span-9 {width:338px!important;}
137
+ input.span-10, textarea.span-10 {width:378px!important;}
138
+ input.span-11, textarea.span-11 {width:418px!important;}
139
+ input.span-12, textarea.span-12 {width:458px!important;}
140
+ input.span-13, textarea.span-13 {width:498px!important;}
141
+ input.span-14, textarea.span-14 {width:538px!important;}
142
+ input.span-15, textarea.span-15 {width:578px!important;}
143
+ input.span-16, textarea.span-16 {width:618px!important;}
144
+ input.span-17, textarea.span-17 {width:658px!important;}
145
+ input.span-18, textarea.span-18 {width:698px!important;}
146
+ input.span-19, textarea.span-19 {width:738px!important;}
147
+ input.span-20, textarea.span-20 {width:778px!important;}
148
+ input.span-21, textarea.span-21 {width:818px!important;}
149
+ input.span-22, textarea.span-22 {width:858px!important;}
150
+ input.span-23, textarea.span-23 {width:898px!important;}
151
+ input.span-24, textarea.span-24 {width:938px!important;}
152
+ .append-1 {padding-right:40px;}
153
+ .append-2 {padding-right:80px;}
154
+ .append-3 {padding-right:120px;}
155
+ .append-4 {padding-right:160px;}
156
+ .append-5 {padding-right:200px;}
157
+ .append-6 {padding-right:240px;}
158
+ .append-7 {padding-right:280px;}
159
+ .append-8 {padding-right:320px;}
160
+ .append-9 {padding-right:360px;}
161
+ .append-10 {padding-right:400px;}
162
+ .append-11 {padding-right:440px;}
163
+ .append-12 {padding-right:480px;}
164
+ .append-13 {padding-right:520px;}
165
+ .append-14 {padding-right:560px;}
166
+ .append-15 {padding-right:600px;}
167
+ .append-16 {padding-right:640px;}
168
+ .append-17 {padding-right:680px;}
169
+ .append-18 {padding-right:720px;}
170
+ .append-19 {padding-right:760px;}
171
+ .append-20 {padding-right:800px;}
172
+ .append-21 {padding-right:840px;}
173
+ .append-22 {padding-right:880px;}
174
+ .append-23 {padding-right:920px;}
175
+ .prepend-1 {padding-left:40px;}
176
+ .prepend-2 {padding-left:80px;}
177
+ .prepend-3 {padding-left:120px;}
178
+ .prepend-4 {padding-left:160px;}
179
+ .prepend-5 {padding-left:200px;}
180
+ .prepend-6 {padding-left:240px;}
181
+ .prepend-7 {padding-left:280px;}
182
+ .prepend-8 {padding-left:320px;}
183
+ .prepend-9 {padding-left:360px;}
184
+ .prepend-10 {padding-left:400px;}
185
+ .prepend-11 {padding-left:440px;}
186
+ .prepend-12 {padding-left:480px;}
187
+ .prepend-13 {padding-left:520px;}
188
+ .prepend-14 {padding-left:560px;}
189
+ .prepend-15 {padding-left:600px;}
190
+ .prepend-16 {padding-left:640px;}
191
+ .prepend-17 {padding-left:680px;}
192
+ .prepend-18 {padding-left:720px;}
193
+ .prepend-19 {padding-left:760px;}
194
+ .prepend-20 {padding-left:800px;}
195
+ .prepend-21 {padding-left:840px;}
196
+ .prepend-22 {padding-left:880px;}
197
+ .prepend-23 {padding-left:920px;}
198
+ div.border {padding-right:4px;margin-right:5px;border-right:1px solid #eee;}
199
+ div.colborder {padding-right:24px;margin-right:25px;border-right:1px solid #eee;}
200
+ .pull-1 {margin-left:-40px;}
201
+ .pull-2 {margin-left:-80px;}
202
+ .pull-3 {margin-left:-120px;}
203
+ .pull-4 {margin-left:-160px;}
204
+ .pull-5 {margin-left:-200px;}
205
+ .pull-6 {margin-left:-240px;}
206
+ .pull-7 {margin-left:-280px;}
207
+ .pull-8 {margin-left:-320px;}
208
+ .pull-9 {margin-left:-360px;}
209
+ .pull-10 {margin-left:-400px;}
210
+ .pull-11 {margin-left:-440px;}
211
+ .pull-12 {margin-left:-480px;}
212
+ .pull-13 {margin-left:-520px;}
213
+ .pull-14 {margin-left:-560px;}
214
+ .pull-15 {margin-left:-600px;}
215
+ .pull-16 {margin-left:-640px;}
216
+ .pull-17 {margin-left:-680px;}
217
+ .pull-18 {margin-left:-720px;}
218
+ .pull-19 {margin-left:-760px;}
219
+ .pull-20 {margin-left:-800px;}
220
+ .pull-21 {margin-left:-840px;}
221
+ .pull-22 {margin-left:-880px;}
222
+ .pull-23 {margin-left:-920px;}
223
+ .pull-24 {margin-left:-960px;}
224
+ .pull-1, .pull-2, .pull-3, .pull-4, .pull-5, .pull-6, .pull-7, .pull-8, .pull-9, .pull-10, .pull-11, .pull-12, .pull-13, .pull-14, .pull-15, .pull-16, .pull-17, .pull-18, .pull-19, .pull-20, .pull-21, .pull-22, .pull-23, .pull-24 {float:left;position:relative;}
225
+ .push-1 {margin:0 -40px 1.5em 40px;}
226
+ .push-2 {margin:0 -80px 1.5em 80px;}
227
+ .push-3 {margin:0 -120px 1.5em 120px;}
228
+ .push-4 {margin:0 -160px 1.5em 160px;}
229
+ .push-5 {margin:0 -200px 1.5em 200px;}
230
+ .push-6 {margin:0 -240px 1.5em 240px;}
231
+ .push-7 {margin:0 -280px 1.5em 280px;}
232
+ .push-8 {margin:0 -320px 1.5em 320px;}
233
+ .push-9 {margin:0 -360px 1.5em 360px;}
234
+ .push-10 {margin:0 -400px 1.5em 400px;}
235
+ .push-11 {margin:0 -440px 1.5em 440px;}
236
+ .push-12 {margin:0 -480px 1.5em 480px;}
237
+ .push-13 {margin:0 -520px 1.5em 520px;}
238
+ .push-14 {margin:0 -560px 1.5em 560px;}
239
+ .push-15 {margin:0 -600px 1.5em 600px;}
240
+ .push-16 {margin:0 -640px 1.5em 640px;}
241
+ .push-17 {margin:0 -680px 1.5em 680px;}
242
+ .push-18 {margin:0 -720px 1.5em 720px;}
243
+ .push-19 {margin:0 -760px 1.5em 760px;}
244
+ .push-20 {margin:0 -800px 1.5em 800px;}
245
+ .push-21 {margin:0 -840px 1.5em 840px;}
246
+ .push-22 {margin:0 -880px 1.5em 880px;}
247
+ .push-23 {margin:0 -920px 1.5em 920px;}
248
+ .push-24 {margin:0 -960px 1.5em 960px;}
249
+ .push-1, .push-2, .push-3, .push-4, .push-5, .push-6, .push-7, .push-8, .push-9, .push-10, .push-11, .push-12, .push-13, .push-14, .push-15, .push-16, .push-17, .push-18, .push-19, .push-20, .push-21, .push-22, .push-23, .push-24 {float:right;position:relative;}
250
+ .prepend-top {margin-top:1.5em;}
251
+ .append-bottom {margin-bottom:1.5em;}
252
+ .box {padding:1.5em;margin-bottom:1.5em;background:#E5ECF9;}
253
+ hr {background:#ddd;color:#ddd;clear:both;float:none;width:100%;height:.1em;margin:0 0 1.45em;border:none;}
254
+ hr.space {background:#fff;color:#fff;visibility:hidden;}
255
+ .clearfix:after, .container:after {content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
256
+ .clearfix, .container {display:block;}
257
+ .clear {clear:both;}
258
+
259
+
260
+ /* -------------------------- Buttons -------------------- */
261
+
262
+ a.button, button {
263
+ display:block;
264
+ float:left;
265
+ margin: 0;
266
+ padding:5px 10px 5px 7px; /* Links */
267
+
268
+ border:1px solid #9e9e9e;
269
+ border-top:1px solid #aaa;
270
+ border-left:1px solid #aaa;
271
+
272
+ background-color:#f5f5f5;
273
+ font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
274
+ font-size:100%;
275
+ line-height:130%;
276
+ text-decoration:none;
277
+ font-weight:bold;
278
+ color:#565656;
279
+ cursor:pointer;
280
+ }
281
+ button {
282
+ width:auto;
283
+ overflow:visible;
284
+ padding:4px 10px 3px 7px; /* IE6 */
285
+ }
286
+ button[type] {
287
+ padding:4px 10px 4px 7px; /* Firefox */
288
+ line-height:17px; /* Safari */
289
+ }
290
+ *:first-child+html button[type] {
291
+ padding:4px 10px 3px 7px; /* IE7 */
292
+ }
293
+ button img, a.button img{
294
+ margin:0 3px -3px 0 !important;
295
+ padding:0;
296
+ border:none;
297
+ width:16px;
298
+ height:16px;
299
+ float:none;
300
+ }
301
+
302
+
303
+ /* Button colors
304
+ -------------------------------------------------------------- */
305
+
306
+ /* Standard */
307
+ button:hover, a.button:hover{
308
+ background-color:#dff4ff;
309
+ border:1px solid #c2e1ef;
310
+ color:#336699;
311
+ }
312
+ a.button:active{
313
+ background-color:#6299c5;
314
+ border:1px solid #6299c5;
315
+ color:#fff;
316
+ }
317
+
318
+ /* Positive */
319
+ body .positive {
320
+ color:#529214;
321
+ }
322
+ a.positive:hover, button.positive:hover {
323
+ background-color:#E6EFC2;
324
+ border:1px solid #C6D880;
325
+ color:#529214;
326
+ }
327
+ a.positive:active {
328
+ background-color:#529214;
329
+ border:1px solid #529214;
330
+ color:#fff;
331
+ }
332
+
333
+ /* Negative */
334
+ body .negative {
335
+ color:#d12f19;
336
+ }
337
+ a.negative:hover, button.negative:hover {
338
+ background-color:#fbe3e4;
339
+ border:1px solid #fbc2c4;
340
+ color:#d12f19;
341
+ }
342
+ a.negative:active {
343
+ background-color:#d12f19;
344
+ border:1px solid #d12f19;
345
+ color:#fff;
346
+ }
347
+ /* --------------------------------------------------------------
348
+
349
+ link-icons.css
350
+ * Icons for links based on protocol or file type.
351
+
352
+ See the Readme file in this folder for additional instructions.
353
+
354
+ -------------------------------------------------------------- */
355
+
356
+ /* Use this class if a link gets an icon when it shouldn't. */
357
+ body a.noicon {
358
+ background:transparent none !important;
359
+ padding:0 !important;
360
+ margin:0 !important;
361
+ }
362
+
363
+ /* Make sure the icons are not cut */
364
+ a[href^="http:"], a[href^="mailto:"], a[href^="http:"]:visited,
365
+ a[href$=".pdf"], a[href$=".doc"], a[href$=".xls"], a[href$=".rss"],
366
+ a[href$=".rdf"], a[href^="aim:"] {
367
+ padding:2px 22px 2px 0;
368
+ margin:-2px 0;
369
+ background-repeat: no-repeat;
370
+ background-position: right center;
371
+ }
372
+
373
+ /* External links */
374
+ a[href^="http:"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/external.png); }
375
+ a[href^="mailto:"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/email.png); }
376
+ a[href^="http:"]:visited { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/visited.png); }
377
+
378
+ /* Files */
379
+ a[href$=".pdf"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/pdf.png); }
380
+ a[href$=".doc"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/doc.png); }
381
+ a[href$=".xls"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/xls.png); }
382
+
383
+ /* Misc */
384
+ a[href$=".rss"],
385
+ a[href$=".rdf"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/feed.png); }
386
+ a[href^="aim:"] { background-image: url(/stylesheets/blueprint/plugins/link-icons/icons/im.png); }
387
+ /* ------------------------ ------------------------------- */
388
+
389
+
390
+ /* For great looking type, use this code instead of asdf:
391
+ <span class="alt">asdf</span>
392
+ Best used on prepositions and ampersands. */
393
+
394
+ .alt {
395
+ color: #505050;
396
+ font-family: "Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua", Georgia, serif;
397
+ font-style: italic;
398
+ font-weight: normal;
399
+ }
400
+
401
+
402
+ /* For great looking quote marks in titles, replace "asdf" with:
403
+ <span class="dquo">&#8220;</span>asdf&#8221;
404
+ (That is, when the title starts with a quote mark).
405
+ (You may have to change this value depending on your font size). */
406
+
407
+ .dquo { margin-left: -.5em; }
408
+
409
+
410
+ /* Reduced size type with incremental leading
411
+ (http://www.markboulton.co.uk/journal/comments/incremental_leading/)
412
+
413
+ This could be used for side notes. For smaller type, you don't necessarily want to
414
+ follow the 1.5x vertical rhythm -- the line-height is too much.
415
+
416
+ Using this class, it reduces your font size and line-height so that for
417
+ every four lines of normal sized type, there is five lines of the sidenote. eg:
418
+
419
+ New type size in em's:
420
+ 10px (wanted side note size) / 12px (existing base size) = 0.8333 (new type size in ems)
421
+
422
+ New line-height value:
423
+ 12px x 1.5 = 18px (old line-height)
424
+ 18px x 4 = 72px
425
+ 72px / 5 = 14.4px (new line height)
426
+ 14.4px / 10px = 1.44 (new line height in em's) */
427
+
428
+ p.incr, .incr p {
429
+ font-size: 10px;
430
+ line-height: 1.44em;
431
+ margin-bottom: 1.5em;
432
+ }
433
+
434
+
435
+ /* Surround uppercase words and abbreviations with this class.
436
+ Based on work by Jørgen Arnor Gårdsø Lom [http://twistedintellect.com/] */
437
+
438
+ .caps {
439
+ font-variant: small-caps;
440
+ letter-spacing: 1px;
441
+ text-transform: lowercase;
442
+ font-size:1.2em;
443
+ line-height:1%;
444
+ font-weight:bold;
445
+ padding:0 2px;
446
+ }
447
+
448
+
449
+
450
+
@@ -0,0 +1,13 @@
1
+ class TurboLayoutGenerator < Rails::Generator::Base
2
+ def manifest
3
+ record do |m|
4
+ m.file "layout_helper.rb", "app/helpers/layout_helper.rb"
5
+ m.file "application.html.erb", "app/views/layouts/application.html.erb"
6
+ m.file "screen.css", "public/stylesheets/screen.css"
7
+ m.file "custom.css", "public/stylesheets/custom.css"
8
+ m.file "print.css", "public/stylesheets/print.css"
9
+ m.file "ie.css", "public/stylesheets/ie.css"
10
+ end
11
+ end
12
+ end
13
+
@@ -0,0 +1,67 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{turbo-generators}
8
+ s.version = "0.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Stephen Murdoch"]
12
+ s.date = %q{2009-12-13}
13
+ s.description = %q{Some basic scripts for automating the process of creating simple crud resources. Presently there are two generators, turbo_layout and turbo_blog. Guess what they do? Nothing special, then just automate a process that I seem to repeat often.}
14
+ s.email = %q{stephen@stephenmurdoch.eu}
15
+ s.extra_rdoc_files = [
16
+ "README.rdoc",
17
+ "TODO"
18
+ ]
19
+ s.files = [
20
+ ".gitignore",
21
+ "CHANGELOG",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "TODO",
25
+ "VERSION",
26
+ "lib/turbo_generators.rb",
27
+ "rails_generators/turbo_blog/USAGE",
28
+ "rails_generators/turbo_blog/lib/insert_commands.rb",
29
+ "rails_generators/turbo_blog/templates/20091209042009_create_posts.rb",
30
+ "rails_generators/turbo_blog/templates/post.rb",
31
+ "rails_generators/turbo_blog/templates/posts_controller.rb",
32
+ "rails_generators/turbo_blog/templates/posts_helper.rb",
33
+ "rails_generators/turbo_blog/templates/views/partials/_list_post.html.erb",
34
+ "rails_generators/turbo_blog/templates/views/partials/_post.html.erb",
35
+ "rails_generators/turbo_blog/templates/views/posts/_form.html.erb",
36
+ "rails_generators/turbo_blog/templates/views/posts/edit.html.erb",
37
+ "rails_generators/turbo_blog/templates/views/posts/index.html.erb",
38
+ "rails_generators/turbo_blog/templates/views/posts/new.html.erb",
39
+ "rails_generators/turbo_blog/templates/views/posts/show.html.erb",
40
+ "rails_generators/turbo_blog/turbo_blog_generator.rb",
41
+ "rails_generators/turbo_layout/USAGE",
42
+ "rails_generators/turbo_layout/templates/application.html.erb",
43
+ "rails_generators/turbo_layout/templates/custom.css",
44
+ "rails_generators/turbo_layout/templates/ie.css",
45
+ "rails_generators/turbo_layout/templates/layout_helper.rb",
46
+ "rails_generators/turbo_layout/templates/print.css",
47
+ "rails_generators/turbo_layout/templates/screen.css",
48
+ "rails_generators/turbo_layout/turbo_layout_generator.rb",
49
+ "turbo-generators.gemspec"
50
+ ]
51
+ s.homepage = %q{http://github.com/murdoch/turbo-generators}
52
+ s.rdoc_options = ["--charset=UTF-8"]
53
+ s.require_paths = ["lib"]
54
+ s.rubygems_version = %q{1.3.5}
55
+ s.summary = %q{Generator scripts for adding very simple crud resources to rails apps}
56
+
57
+ if s.respond_to? :specification_version then
58
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
59
+ s.specification_version = 3
60
+
61
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
62
+ else
63
+ end
64
+ else
65
+ end
66
+ end
67
+
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: turbo-generators
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Stephen Murdoch
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-13 00:00:00 +00:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Some basic scripts for automating the process of creating simple crud resources. Presently there are two generators, turbo_layout and turbo_blog. Guess what they do? Nothing special, then just automate a process that I seem to repeat often.
17
+ email: stephen@stephenmurdoch.eu
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README.rdoc
24
+ - TODO
25
+ files:
26
+ - .gitignore
27
+ - CHANGELOG
28
+ - README.rdoc
29
+ - Rakefile
30
+ - TODO
31
+ - VERSION
32
+ - lib/turbo_generators.rb
33
+ - rails_generators/turbo_blog/USAGE
34
+ - rails_generators/turbo_blog/lib/insert_commands.rb
35
+ - rails_generators/turbo_blog/templates/20091209042009_create_posts.rb
36
+ - rails_generators/turbo_blog/templates/post.rb
37
+ - rails_generators/turbo_blog/templates/posts_controller.rb
38
+ - rails_generators/turbo_blog/templates/posts_helper.rb
39
+ - rails_generators/turbo_blog/templates/views/partials/_list_post.html.erb
40
+ - rails_generators/turbo_blog/templates/views/partials/_post.html.erb
41
+ - rails_generators/turbo_blog/templates/views/posts/_form.html.erb
42
+ - rails_generators/turbo_blog/templates/views/posts/edit.html.erb
43
+ - rails_generators/turbo_blog/templates/views/posts/index.html.erb
44
+ - rails_generators/turbo_blog/templates/views/posts/new.html.erb
45
+ - rails_generators/turbo_blog/templates/views/posts/show.html.erb
46
+ - rails_generators/turbo_blog/turbo_blog_generator.rb
47
+ - rails_generators/turbo_layout/USAGE
48
+ - rails_generators/turbo_layout/templates/application.html.erb
49
+ - rails_generators/turbo_layout/templates/custom.css
50
+ - rails_generators/turbo_layout/templates/ie.css
51
+ - rails_generators/turbo_layout/templates/layout_helper.rb
52
+ - rails_generators/turbo_layout/templates/print.css
53
+ - rails_generators/turbo_layout/templates/screen.css
54
+ - rails_generators/turbo_layout/turbo_layout_generator.rb
55
+ - turbo-generators.gemspec
56
+ has_rdoc: true
57
+ homepage: http://github.com/murdoch/turbo-generators
58
+ licenses: []
59
+
60
+ post_install_message:
61
+ rdoc_options:
62
+ - --charset=UTF-8
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: "0"
70
+ version:
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: "0"
76
+ version:
77
+ requirements: []
78
+
79
+ rubyforge_project:
80
+ rubygems_version: 1.3.5
81
+ signing_key:
82
+ specification_version: 3
83
+ summary: Generator scripts for adding very simple crud resources to rails apps
84
+ test_files: []
85
+