frame 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/Gemfile +2 -0
  2. data/Gemfile.lock +14 -0
  3. data/Rakefile +19 -0
  4. data/lib/generators/frame.rb +29 -0
  5. data/lib/generators/frame/devise/USAGE +11 -0
  6. data/lib/generators/frame/devise/devise_generator.rb +31 -0
  7. data/lib/generators/frame/devise/templates/defaults.html.erb +45 -0
  8. data/lib/generators/frame/gitignore/USAGE +11 -0
  9. data/lib/generators/frame/gitignore/gitignore_generator.rb +17 -0
  10. data/lib/generators/frame/layout/USAGE +11 -0
  11. data/lib/generators/frame/layout/layout_generator.rb +43 -0
  12. data/lib/generators/frame/layout/templates/application.html.erb +3 -0
  13. data/lib/generators/frame/layout/templates/application_helper.rb +12 -0
  14. data/lib/generators/frame/layout/templates/default_layout.html.erb +27 -0
  15. data/lib/generators/frame/layout/templates/defaults.html.erb +39 -0
  16. data/lib/generators/frame/mysql/USAGE +11 -0
  17. data/lib/generators/frame/mysql/mysql_generator.rb +35 -0
  18. data/lib/generators/frame/pages/USAGE +11 -0
  19. data/lib/generators/frame/pages/pages_generator.rb +93 -0
  20. data/lib/generators/frame/pages/templates/_error_messages.html.erb +13 -0
  21. data/lib/generators/frame/pages/templates/_form.html.erb +36 -0
  22. data/lib/generators/frame/pages/templates/_links.html.erb +5 -0
  23. data/lib/generators/frame/pages/templates/_page.html.erb +2 -0
  24. data/lib/generators/frame/pages/templates/_sidebar.html.erb +9 -0
  25. data/lib/generators/frame/pages/templates/index.html.erb +31 -0
  26. data/lib/generators/frame/pages/templates/pages.html.erb +6 -0
  27. data/lib/generators/frame/pages/templates/show.html.erb +9 -0
  28. data/lib/generators/frame/secret/USAGE +11 -0
  29. data/lib/generators/frame/secret/secret_generator.rb +35 -0
  30. data/lib/generators/frame/secret/templates/database.yml +27 -0
  31. data/test/test_frame_secret_generator.rb +7 -0
  32. data/test/test_helper.rb +26 -0
  33. metadata +35 -6
  34. data/lib/frame.rb +0 -9
  35. data/lib/frame/engine.rb +0 -5
  36. data/lib/generators/frame/frame_generator.rb +0 -30
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source "http://rubygems.org"
2
+ gemspec
@@ -0,0 +1,14 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ frame (0.0.3)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+
10
+ PLATFORMS
11
+ ruby
12
+
13
+ DEPENDENCIES
14
+ frame!
@@ -0,0 +1,19 @@
1
+ #require 'rubygems'
2
+ #require 'rake'
3
+ #require 'cucumber'
4
+ #require 'cucumber/rake/task'
5
+ #
6
+ #Cucumber::Rake::Task.new(:features) do |t|
7
+ # t.cucumber_opts = "features --format progress"
8
+ #end
9
+ #
10
+ #task :default => :features
11
+
12
+ require 'rake/testtask'
13
+
14
+ Rake::TestTask.new do |t|
15
+ t.libs << 'test'
16
+ end
17
+
18
+ desc "Run tests"
19
+ task :default => :test
@@ -0,0 +1,29 @@
1
+ require 'rails/generators/base'
2
+
3
+ module Frame
4
+ module Generators
5
+ class Base < Rails::Generators::Base #:nodoc:
6
+ def self.source_root
7
+ @_frame_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'frame', generator_name, 'templates'))
8
+ end
9
+
10
+ #def self.banner
11
+ # "rails generate frame:#{generator_name} #{self.arguments.map{ |a| a.usage }.join(' ')} [options]"
12
+ #end
13
+
14
+ private
15
+
16
+ def add_gem(name, options = {})
17
+ gemfile_content = File.read(destination_path("Gemfile"))
18
+ File.open(destination_path("Gemfile"), 'a') { |f| f.write("\n") } unless gemfile_content =~ /\n\Z/
19
+ gem name, options unless gemfile_content.include? name
20
+ end
21
+
22
+ #def print_usage
23
+ # self.class.help(Thor::Base.shell.new)
24
+ # exit
25
+ #end
26
+ end
27
+ end
28
+ end
29
+
@@ -0,0 +1,11 @@
1
+ Description:
2
+ Generates devise installation.
3
+
4
+ Usage:
5
+ Use to generate install and setup devise for a project.
6
+
7
+ Examples:
8
+ rails generate frame:devise
9
+
10
+ Methods:
11
+ There are several methods generated which you can use in your application.
@@ -0,0 +1,31 @@
1
+ require 'generators/frame'
2
+ require 'rails/generators/migration'
3
+
4
+ module Frame
5
+ module Generators
6
+ class DeviseGenerator < Base
7
+ include Rails::Generators::Migration
8
+
9
+ desc "Installs Devise."
10
+
11
+ def install_devise
12
+ gem("rspec-rails", :group => "test")
13
+ gem("cucumber-rails", :group => "test")
14
+
15
+ if yes?("Would you like to install Devise?")
16
+ gem("devise")
17
+ generate("devise:install")
18
+ model_name = ask("What would you like the user model to be called? [user]")
19
+ model_name = "user" if model_name.blank?
20
+ generate("devise", model_name)
21
+ end
22
+ end
23
+
24
+ #test/development:
25
+ # config.action_mailer.default_url_options = { :host => 'localhost:3000' }
26
+ #production:
27
+ # config.action_mailer.default_url_options = { :host => 'proj_name.com' }
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,45 @@
1
+ <%% content_for :head do %>
2
+ <%%= favicon_link_tag('/assets/favicon.ico') %>
3
+ <%%= stylesheet_link_tag "application" %>
4
+ <%%= javascript_include_tag "application" %>
5
+ <%%= csrf_meta_tag %>
6
+ <%% end %>
7
+
8
+ <%% content_for :header do %>
9
+ <nav class="span-24 append-bottom">
10
+ <ul>
11
+ <%%= render :partial => "pages/links", :collection => @display_pages.topbar, :as => :page, :locals => {:classes => "left hover"} %>
12
+ <%% if user_signed_in? %>
13
+ <%%= link_to '<li class="left hover">Account</li>'.html_safe, edit_user_registration_path %>
14
+ <%%= link_to '<li class="left hover">Sign out</li>'.html_safe, destroy_user_session_path, :method => :delete %>
15
+ <li class="right last">Signed in as <%%= current_user.email %></li>
16
+ <%% else %>
17
+ <%%= link_to '<li class="right hover">Sign in</li>'.html_safe, user_session_path %>
18
+ <%% end %>
19
+ </ul>
20
+ </nav>
21
+ <banner>
22
+ <%%= link_to logo, root_path, {:class => "right"} %>
23
+ <h1 class="left alt prepend-1 append-1"><%%= yield(:title) %></h1>
24
+ <%% flash.each do |key, value| %>
25
+ <div id="notice" class="left flash <%%= key %>"><%%= value %></div>
26
+ <%% end %>
27
+ </banner>
28
+ <hr/>
29
+ <%% end %>
30
+
31
+ <%% content_for :sidebar do %>
32
+ <%%= render 'shared/sidebar', :sidebar => @display_pages.sidebar %>
33
+ <%% end %>
34
+
35
+ <%% content_for :userbar do %>
36
+ <%%= render 'shared/sidebar', :sidebar => @display_pages.userbar %>
37
+ <%% end %>
38
+
39
+ <%% content_for :footer do %>
40
+ <nav class="span-24 prepend-top last">
41
+ <ul>
42
+ <%%= render :partial => "pages/links", :collection => @display_pages.bottombar, :as => :page, :locals => {:classes => "left hover"} %>
43
+ </ul>
44
+ </nav>
45
+ <%% end %>
@@ -0,0 +1,11 @@
1
+ Description:
2
+ Generates the gitignore file.
3
+
4
+ Usage:
5
+ Use to generate the gitignore file for a project.
6
+
7
+ Examples:
8
+ rails generate frame:gitignore
9
+
10
+ Methods:
11
+ There are several methods generated which you can use in your application.
@@ -0,0 +1,17 @@
1
+ require 'generators/frame'
2
+ require 'rails/generators/migration'
3
+
4
+ module Frame
5
+ module Generators
6
+ class GitignoreGenerator < Base
7
+ include Rails::Generators::Migration
8
+
9
+ desc "Installs Gitignore if it doesn't already exist."
10
+
11
+ def create_gitignore
12
+ template ".gitignore", ".gitignore"
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ Description:
2
+ Generates pages model for web management.
3
+
4
+ Usage:
5
+ Use to generate pages model.
6
+
7
+ Examples:
8
+ rails generate frame:pages
9
+
10
+ Methods:
11
+ There are several methods generated which you can use in your application.
@@ -0,0 +1,43 @@
1
+ require 'generators/frame'
2
+ require 'rails/generators/migration'
3
+
4
+ module Frame
5
+ module Generators
6
+ class LayoutGenerator < Base
7
+ include Rails::Generators::Migration
8
+
9
+ desc "Setup Pages."
10
+
11
+ class_option :force, :type => :boolean, :default => false, :desc => "Force file regeneration"
12
+
13
+ def add_gems
14
+ add_gem "mysql2"
15
+ end
16
+
17
+ def remove_index
18
+ #remove_file "public/index.html"
19
+ end
20
+
21
+ def add_default_layout
22
+ template 'defaults.html.erb', 'app/views/layouts/defaults.html.erb'
23
+ template 'default_layout.html.erb', 'app/views/layouts/default_layout.html.erb'
24
+ end
25
+
26
+ def add_page_helpers
27
+ template 'application_helper.rb', 'app/helpers/application_helper.rb'
28
+ end
29
+
30
+ def replace_html_app
31
+ @title = Rails.application.class.parent_name
32
+ template 'application.html.erb', 'app/views/layouts/application.html.erb'
33
+ end
34
+
35
+ private
36
+
37
+ def destination_path(path)
38
+ File.join(destination_root, path)
39
+ end
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,3 @@
1
+ <%% title '<%= @title %>' %>
2
+ <%%= render :template => 'layouts/defaults' %>
3
+ <%%= render :template => 'layouts/default_layout' %>
@@ -0,0 +1,12 @@
1
+ module ApplicationHelper
2
+ def title(page_title)
3
+ content_for :title do
4
+ page_title
5
+ end
6
+ page_title
7
+ end
8
+
9
+ def logo
10
+ image_tag("econtriver_logo.gif", {:alt => "eContriver", :class => "round", :style => "width: 192px; height: 50px"})
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%%= yield(:title) %></title>
5
+ <%%= yield :head %>
6
+ </head>
7
+ <body>
8
+ <div class="container">
9
+ <header>
10
+ <%%= yield :header %>
11
+ </header>
12
+ <content>
13
+ <div class="span-4 colborder">
14
+ <%%= yield :sidebar %>
15
+ <%%= yield :userbar %>
16
+ </div>
17
+ <div class="span-18 last">
18
+ <%%= yield %>
19
+ </div>
20
+ </content>
21
+ <footer>
22
+ <%%= yield :footer %>
23
+ </footer>
24
+ <%%= debug(params) if Rails.env.development? %>
25
+ </div>
26
+ </body>
27
+ </html>
@@ -0,0 +1,39 @@
1
+ <%% content_for :head do %>
2
+ <%%= favicon_link_tag('/assets/favicon.ico') %>
3
+ <%%= stylesheet_link_tag "application" %>
4
+ <%%= javascript_include_tag "application" %>
5
+ <%%= csrf_meta_tag %>
6
+ <%% end %>
7
+
8
+ <%% content_for :header do %>
9
+ <nav class="span-24 append-bottom">
10
+ <ul>
11
+ <%%= render :partial => "pages/links", :collection => @display_pages.topbar, :as => :page, :locals => {:classes => "left hover"} %>
12
+ <%%= link_to '<li class="left hover">Pages</li>'.html_safe, pages_path %>
13
+ </ul>
14
+ </nav>
15
+ <banner>
16
+ <%%= link_to logo, root_path, {:class => "right"} %>
17
+ <h1 class="left alt prepend-1 append-1"><%%= yield(:title) %></h1>
18
+ <%% flash.each do |key, value| %>
19
+ <div id="notice" class="left flash <%%= key %>"><%%= value %></div>
20
+ <%% end %>
21
+ </banner>
22
+ <hr/>
23
+ <%% end %>
24
+
25
+ <%% content_for :sidebar do %>
26
+ <%%= render 'shared/sidebar', :sidebar => @display_pages.sidebar %>
27
+ <%% end %>
28
+
29
+ <%% content_for :userbar do %>
30
+ <%%= render 'shared/sidebar', :sidebar => @display_pages.userbar %>
31
+ <%% end %>
32
+
33
+ <%% content_for :footer do %>
34
+ <nav class="span-24 prepend-top last">
35
+ <ul>
36
+ <%%= render :partial => "pages/links", :collection => @display_pages.bottombar, :as => :page, :locals => {:classes => "left hover"} %>
37
+ </ul>
38
+ </nav>
39
+ <%% end %>
@@ -0,0 +1,11 @@
1
+ Description:
2
+ Generates devise installation.
3
+
4
+ Usage:
5
+ Use to generate install and setup devise for a project.
6
+
7
+ Examples:
8
+ rails generate frame:devise
9
+
10
+ Methods:
11
+ There are several methods generated which you can use in your application.
@@ -0,0 +1,35 @@
1
+ require 'generators/frame'
2
+ require 'rails/generators/migration'
3
+
4
+ module Frame
5
+ module Generators
6
+ class MysqlGenerator < Base
7
+ include Rails::Generators::Migration
8
+
9
+ desc "Update MySQL with user priveleges."
10
+
11
+ def add_user
12
+ config = YAML.load_file('config/database.yml')
13
+ user = config[Rails.env]["username"]
14
+ pw = config[Rails.env]["password"]
15
+ puts "creating user: #{user}"
16
+ puts "using pw: #{pw}"
17
+ output = create_file 'tmp/create_user.sql', "CREATE USER '#{user}'@localhost IDENTIFIED BY '#{pw}';"
18
+ puts "output: #{output}"
19
+ system "mysql -u root -p < #{output}"
20
+ end
21
+
22
+ def grant_user
23
+ config = YAML.load_file('config/database.yml')
24
+ user = config[Rails.env]["username"]
25
+ db = config[Rails.env]["database"]
26
+ puts "granting user: #{user}"
27
+ puts "all on db: #{db}"
28
+ output = create_file 'tmp/grant_user.sql', "GRANT ALL PRIVILEGES ON #{db}.* TO '#{user}'@localhost;"
29
+ puts "output: #{output}"
30
+ system "mysql -u root -p < #{output}"
31
+ end
32
+
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ Description:
2
+ Generates pages model for web management.
3
+
4
+ Usage:
5
+ Use to generate pages model.
6
+
7
+ Examples:
8
+ rails generate frame:pages
9
+
10
+ Methods:
11
+ There are several methods generated which you can use in your application.
@@ -0,0 +1,93 @@
1
+ require 'generators/frame'
2
+ require 'rails/generators/migration'
3
+
4
+ module Frame
5
+ module Generators
6
+ class PagesGenerator < Base
7
+ include Rails::Generators::Migration
8
+
9
+ desc "Setup Pages."
10
+
11
+ class_option :force, :type => :boolean, :default => false, :desc => "Force file regeneration"
12
+
13
+ def add_gems
14
+ add_gem "mysql2"
15
+ end
16
+
17
+ def remove_index
18
+ #remove_file "public/index.html"
19
+ end
20
+
21
+ def generate_scaffold
22
+ generate("scaffold", "Page name:string title:string location:string content:text url:string ordinal:integer")
23
+ append_to_file 'db/seeds.rb' do
24
+ "\nPage.create(:name => 'Home', :title => 'Welcome to Home!', :content => '<h2>Content</h2>This is the content of the home page...', :location => 'topbar', :url => '', :ordinal => '1')\n"
25
+ end
26
+ generate("scaffold_controller", "Page")
27
+ end
28
+
29
+ def add_root_route
30
+ insert_into_file 'config/routes.rb', "root :to => 'pages#show', :id => 0\n", :after => "#{Rails.application.class.parent_name}::Application.routes.draw do\n"
31
+ end
32
+
33
+ def update_page_controller
34
+ comment_lines 'app/controllers/pages_controller.rb', /@pages = Page.all/
35
+ gsub_file 'app/controllers/pages_controller.rb', /def show\n\s+\@page \= Page\.find\(params\[\:id\]\)/ do
36
+ "def show
37
+ if params[:id] == 0
38
+ @page = Page.find_by_name('home') || Page.first
39
+ else
40
+ @page = Page.find(params[:id])
41
+ end"
42
+ end
43
+ end
44
+
45
+ def create_pages_partials
46
+ template '_links.html.erb', 'app/views/pages/_links.html.erb'
47
+ template '_form.html.erb', 'app/views/pages/_form.html.erb'
48
+ template '_error_messages.html.erb', 'app/views/shared/_error_messages.html.erb'
49
+ template '_sidebar.html.erb', 'app/views/shared/_sidebar.html.erb'
50
+ template '_page.html.erb', 'app/views/pages/_page.html.erb'
51
+ end
52
+
53
+ def create_pages_views
54
+ template 'pages.html.erb', 'app/views/layouts/pages.html.erb'
55
+ template 'index.html.erb', 'app/views/pages/index.html.erb'
56
+ template 'show.html.erb', 'app/views/pages/show.html.erb'
57
+ end
58
+
59
+ def add_scopes
60
+ inject_into_class "app/models/page.rb", Page do
61
+ '
62
+ validates_presence_of :name
63
+
64
+ scope :topbar, where(:location => "topbar")
65
+ scope :sidebar, where(:location => "sidebar")
66
+ scope :userbar, where(:location => "userbar")
67
+ scope :bottombar, where(:location => "bottombar")
68
+
69
+ '
70
+ end
71
+ end
72
+
73
+ def application_page_loader
74
+ inject_into_class "app/controllers/application_controller.rb", ApplicationController do '
75
+ before_filter :get_variables
76
+
77
+ def get_variables
78
+ @display_pages = Page.order("ordinal")
79
+ end
80
+
81
+ '
82
+ end
83
+ end
84
+
85
+ private
86
+
87
+ def destination_path(path)
88
+ File.join(destination_root, path)
89
+ end
90
+
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,13 @@
1
+ <%% if object.errors.any? %>
2
+ <div class="error">
3
+ <h2><%%= pluralize(object.errors.count, "error") %>
4
+ prohibited this <%%= object.class.to_s.underscore.humanize.downcase %>
5
+ from being saved:</h2>
6
+ <p>There were problems with the following fields:</p>
7
+ <ul>
8
+ <%% object.errors.full_messages.each do |msg| %>
9
+ <li><%%= msg %></li>
10
+ <%% end %>
11
+ </ul>
12
+ </div>
13
+ <%% end %>
@@ -0,0 +1,36 @@
1
+ <%%= form_for(@page) do |f| %>
2
+ <%%= render 'shared/error_messages', :object => f.object %>
3
+ <div class="field">
4
+ <%%= f.label :name %>
5
+ <br/>
6
+ <%%= f.text_field :name %>
7
+ </div>
8
+ <div class="field">
9
+ <%%= f.label :title %>
10
+ <br/>
11
+ <%%= f.text_field :title %>
12
+ </div>
13
+ <div class="field">
14
+ <%%= f.label :ordinal %>
15
+ <br/>
16
+ <%%= f.text_field :ordinal %>
17
+ </div>
18
+ <div class="field">
19
+ <%%= f.label :location %>
20
+ <br/>
21
+ <%%= f.select(:location, [['Top', 'topbar'], ['Userbar', 'userbar'], ['Sidebar', 'sidebar'], ['Bottom', 'bottombar'], ['Disabled', 'off']]) %>
22
+ </div>
23
+ <div class="field">
24
+ <%%= f.label :url %>
25
+ <br/>
26
+ <%%= f.url_field :url %>
27
+ </div>
28
+ <div class="field">
29
+ <%%= f.label :content %>
30
+ <br/>
31
+ <%%= f.text_area :content %>
32
+ </div>
33
+ <div class="actions">
34
+ <%%= f.submit %>
35
+ </div>
36
+ <%% end %>
@@ -0,0 +1,5 @@
1
+ <%% unless defined? classes %>
2
+ <%%= link_to "<li>#{page.name}</li>".html_safe, page.url.empty? ? page : page.url %>
3
+ <%% else %>
4
+ <%%= link_to "<li class='#{classes}'>#{page.name}</li>".html_safe, page.url.empty? ? page : page.url %>
5
+ <%% end %>
@@ -0,0 +1,2 @@
1
+ <h1>@page.title</h1>
2
+ <div>@page.content</div>
@@ -0,0 +1,9 @@
1
+ <%% if !sidebar.empty? %>
2
+ <sidebar>
3
+ <nav class="box">
4
+ <ul>
5
+ <%%= render :partial => "pages/links", :collection => sidebar, :as => :page %>
6
+ </ul>
7
+ </nav>
8
+ </sidebar>
9
+ <%% end %>
@@ -0,0 +1,31 @@
1
+ <%% title 'All pages' %>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Name</th>
6
+ <th>Title</th>
7
+ <th>Location</th>
8
+ <th>URL</th>
9
+ <th>Content</th>
10
+ <th></th>
11
+ <th></th>
12
+ <th></th>
13
+ </tr>
14
+
15
+ <%% @display_pages.each do |page| %>
16
+ <tr>
17
+ <td><%%= page.name %></td>
18
+ <td><%%= page.title %></td>
19
+ <td><%%= page.location %></td>
20
+ <td><%%= page.url %></td>
21
+ <td><%%= page.content %></td>
22
+ <td><%%= link_to 'Show', page %></td>
23
+ <td><%%= link_to 'Edit', edit_page_path(page) %></td>
24
+ <td><%%= link_to 'Destroy', page, :method => :delete, :data => { :confirm => 'Are you sure?' } %></td>
25
+ </tr>
26
+ <%% end %>
27
+ </table>
28
+
29
+ <br />
30
+
31
+ <%%= link_to 'New Page', new_page_path %>
@@ -0,0 +1,6 @@
1
+ <%% @view_flow.set(:sidebar, '') %>
2
+ <%% content_for :sidebar do %>
3
+ Custom Side Bar
4
+ <%% end %>
5
+ <%%= render :template => 'layouts/defaults' %>
6
+ <%%= render :template => 'layouts/default_layout' %>
@@ -0,0 +1,9 @@
1
+ <%% title @page.title %>
2
+
3
+ <div>
4
+ <%%= @page.content.html_safe %>
5
+ </div>
6
+
7
+ <br />
8
+ <%%= link_to 'Edit', edit_page_path(@page) %> |
9
+ <%%= link_to 'All Pages', pages_path %>
@@ -0,0 +1,11 @@
1
+ Description:
2
+ Generates config files with private information.
3
+
4
+ Usage:
5
+ Use to generate secret files for a project, such as database.yml.
6
+
7
+ Examples:
8
+ rails generate frame:secret
9
+
10
+ Methods:
11
+ There are several methods generated which you can use in your application.
@@ -0,0 +1,35 @@
1
+ require 'generators/frame'
2
+ require 'rails/generators/migration'
3
+
4
+ module Frame
5
+ module Generators
6
+ class SecretGenerator < Base
7
+ include Rails::Generators::Migration
8
+
9
+ desc "Installs Secret files if they don't already exist."
10
+
11
+ class_option :force, :type => :boolean, :default => false, :desc => "Force file regeneration"
12
+
13
+ #def opt
14
+ # puts options.force
15
+ #end
16
+
17
+ def create_database
18
+ config = YAML.load_file(File.expand_path(File.join(File.dirname(__FILE__), 'templates', 'database.yml')))
19
+
20
+ ['development','test','production'].each do |i|
21
+ config["#{i}"]["database"] = Rails.application.class.parent_name.downcase
22
+ config["#{i}"]["username"] = "#{Rails.application.class.parent_name.downcase}admin"
23
+ end
24
+
25
+ create_file 'config/database.yml', YAML.dump(config)
26
+ end
27
+
28
+ def create_secret_token
29
+ secret = `rake secret`.rstrip
30
+ initializer("secret_token.rb", "#{Rails.application.class.parent_name}::Application.config.secret_token = '#{secret}'")
31
+ end
32
+
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,27 @@
1
+ development:
2
+ adapter: mysql2
3
+ encoding: utf8
4
+ reconnet: false
5
+ database: proj
6
+ pool: 5
7
+ username: projadmin
8
+ password: password
9
+ host: localhost
10
+ test:
11
+ adapter: mysql2
12
+ encoding: utf8
13
+ reconnet: false
14
+ database: proj
15
+ pool: 5
16
+ username: projadmin
17
+ password: test
18
+ host: localhost
19
+ production:
20
+ adapter: mysql2
21
+ encoding: utf8
22
+ reconnet: false
23
+ database: proj
24
+ pool: 5
25
+ username: projadmin
26
+ password: supersecret
27
+ host: localhost
@@ -0,0 +1,7 @@
1
+ #class TestFrameSecretGenerator < Test::Unit::TestCase
2
+ # def test_print
3
+ #assert_equal "initial",
4
+ # Frame.print
5
+ # end
6
+ #end
7
+
@@ -0,0 +1,26 @@
1
+ #require 'test/unit'
2
+
3
+ # Must set before requiring generator libs.
4
+ #TMP_ROOT = File.dirname(__FILE__) + "/tmp" unless defined?(TMP_ROOT)
5
+ #PROJECT_NAME = "myproject" unless defined?(PROJECT_NAME)
6
+ #app_root = File.join(TMP_ROOT, PROJECT_NAME)
7
+ #if defined?(APP_ROOT)
8
+ # APP_ROOT.replace(app_root)
9
+ #else
10
+ # APP_ROOT = app_root
11
+ #end
12
+ #if defined?(RAILS_ROOT)
13
+ # RAILS_ROOT.replace(app_root)
14
+ #else
15
+ # RAILS_ROOT = app_root
16
+ #end
17
+
18
+ #require 'rubygems'
19
+ #gem 'rails', '2.0.2' # getting a Rails.configuration error with 2.1
20
+ #gem 'rubigen', '1.4'
21
+ #gem 'shoulda', '2.0.6'
22
+ #require 'rubigen' # gem install rubigen --version=1.4
23
+ #require 'rubigen/helpers/generator_test_helper'
24
+ #require 'rails_generator'
25
+ #require 'shoulda' # gem install shoulda --version=2.0.6
26
+ #require 'mocha'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frame
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -20,9 +20,38 @@ executables: []
20
20
  extensions: []
21
21
  extra_rdoc_files: []
22
22
  files:
23
- - lib/frame.rb
24
- - lib/frame/engine.rb
25
- - lib/generators/frame/frame_generator.rb
23
+ - lib/generators/frame.rb
24
+ - lib/generators/frame/layout/templates/defaults.html.erb
25
+ - lib/generators/frame/layout/templates/application.html.erb
26
+ - lib/generators/frame/layout/templates/application_helper.rb
27
+ - lib/generators/frame/layout/templates/default_layout.html.erb
28
+ - lib/generators/frame/layout/layout_generator.rb
29
+ - lib/generators/frame/layout/USAGE
30
+ - lib/generators/frame/mysql/USAGE
31
+ - lib/generators/frame/mysql/mysql_generator.rb
32
+ - lib/generators/frame/secret/templates/database.yml
33
+ - lib/generators/frame/secret/secret_generator.rb
34
+ - lib/generators/frame/secret/USAGE
35
+ - lib/generators/frame/pages/templates/pages.html.erb
36
+ - lib/generators/frame/pages/templates/show.html.erb
37
+ - lib/generators/frame/pages/templates/index.html.erb
38
+ - lib/generators/frame/pages/templates/_page.html.erb
39
+ - lib/generators/frame/pages/templates/_form.html.erb
40
+ - lib/generators/frame/pages/templates/_sidebar.html.erb
41
+ - lib/generators/frame/pages/templates/_links.html.erb
42
+ - lib/generators/frame/pages/templates/_error_messages.html.erb
43
+ - lib/generators/frame/pages/pages_generator.rb
44
+ - lib/generators/frame/pages/USAGE
45
+ - lib/generators/frame/devise/templates/defaults.html.erb
46
+ - lib/generators/frame/devise/USAGE
47
+ - lib/generators/frame/devise/devise_generator.rb
48
+ - lib/generators/frame/gitignore/gitignore_generator.rb
49
+ - lib/generators/frame/gitignore/USAGE
50
+ - test/test_frame_secret_generator.rb
51
+ - test/test_helper.rb
52
+ - Rakefile
53
+ - Gemfile.lock
54
+ - Gemfile
26
55
  homepage: https://github.com/ncimino/frame
27
56
  licenses: []
28
57
  post_install_message:
@@ -40,9 +69,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
40
69
  requirements:
41
70
  - - ! '>='
42
71
  - !ruby/object:Gem::Version
43
- version: '0'
72
+ version: 1.3.4
44
73
  requirements: []
45
- rubyforge_project:
74
+ rubyforge_project: frame
46
75
  rubygems_version: 1.8.24
47
76
  signing_key:
48
77
  specification_version: 3
@@ -1,9 +0,0 @@
1
- module Frame
2
- require 'frame/engine' if defined?(Rails)
3
- end
4
-
5
- class Frame
6
- def self.print
7
- return "initial"
8
- end
9
- end
@@ -1,5 +0,0 @@
1
- require 'rails'
2
- module Frame
3
- class Engine < Rails::Engine
4
- end
5
- end
@@ -1,30 +0,0 @@
1
- require 'rails/generators'
2
- require 'rails/generators/named_base'
3
-
4
- module Frame
5
- module Generators
6
- class FrameGenerator < Rails::Generators::NamedBase
7
-
8
- desc "Installs Secret files if they don't already exist."
9
-
10
- # Commandline options can be defined here using Thor-like options:
11
- class_option :my_opt, :type => :boolean, :default => false, :desc => "My Option"
12
-
13
- # I can later access that option using:
14
- puts options[:my_opt]
15
-
16
-
17
- #def self.source_root
18
- # @source_root ||= File.join(File.dirname(__FILE__), 'templates')
19
- #end
20
-
21
- #include Rails::Generators::Migration
22
-
23
-
24
- #def create_secret
25
- # template 'database.yml', 'config/database.yml'
26
- #end
27
-
28
- end
29
- end
30
- end