laces 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CONTRIBUTING.md +38 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +122 -0
- data/LICENSE +21 -0
- data/README.md +5 -0
- data/Rakefile +8 -0
- data/bin/laces +16 -0
- data/features/creating_a_heroku_app.feature +9 -0
- data/features/rake_clean.feature +21 -0
- data/features/skipping_clearance.feature +13 -0
- data/features/step_definitions/gem_steps.rb +5 -0
- data/features/step_definitions/heroku_steps.rb +3 -0
- data/features/step_definitions/shell_steps.rb +55 -0
- data/features/support/bin/heroku +5 -0
- data/features/support/env.rb +15 -0
- data/features/support/fake_heroku.rb +21 -0
- data/laces-0.0.1.gem +0 -0
- data/laces.gemspec +35 -0
- data/lib/laces/actions.rb +35 -0
- data/lib/laces/app_builder.rb +237 -0
- data/lib/laces/generators/app_generator.rb +111 -0
- data/lib/laces/version.rb +3 -0
- data/templates/.DS_Store +0 -0
- data/templates/Gemfile_template +76 -0
- data/templates/HEROKU_README.md +66 -0
- data/templates/Procfile +1 -0
- data/templates/README.md +81 -0
- data/templates/app/assets/imgs/glyphicons-halflings-white.png +0 -0
- data/templates/app/assets/imgs/glyphicons-halflings.png +0 -0
- data/templates/app/assets/javascripts/admin.coffee +20 -0
- data/templates/app/assets/javascripts/application.coffee +21 -0
- data/templates/app/assets/javascripts/lib/actinology.coffee +47 -0
- data/templates/app/assets/javascripts/lib/analytics.js +11 -0
- data/templates/app/assets/javascripts/lib/auth_token_sync.js +17 -0
- data/templates/app/assets/javascripts/lib/backbone-ui.js +2455 -0
- data/templates/app/assets/javascripts/lib/backbone.coffee +27 -0
- data/templates/app/assets/javascripts/lib/backbone/collection.js +249 -0
- data/templates/app/assets/javascripts/lib/backbone/events.js +64 -0
- data/templates/app/assets/javascripts/lib/backbone/helpers.js +68 -0
- data/templates/app/assets/javascripts/lib/backbone/history.js +144 -0
- data/templates/app/assets/javascripts/lib/backbone/model.js +291 -0
- data/templates/app/assets/javascripts/lib/backbone/router.coffee +45 -0
- data/templates/app/assets/javascripts/lib/backbone/sync.coffee +38 -0
- data/templates/app/assets/javascripts/lib/backbone/view.js +150 -0
- data/templates/app/assets/javascripts/lib/backbone_extended.coffee +276 -0
- data/templates/app/assets/javascripts/lib/bootstrap.js +1836 -0
- data/templates/app/assets/javascripts/lib/inflection.js +658 -0
- data/templates/app/assets/javascripts/lib/jquery-ui.js +343 -0
- data/templates/app/assets/javascripts/lib/jquery.hotkeys.js +102 -0
- data/templates/app/assets/javascripts/lib/jquery.js +4 -0
- data/templates/app/assets/javascripts/lib/milk.js.coffee +265 -0
- data/templates/app/assets/javascripts/lib/raw.js +143 -0
- data/templates/app/assets/javascripts/lib/strftime.js +732 -0
- data/templates/app/assets/javascripts/lib/throttle-debounce.js +251 -0
- data/templates/app/assets/javascripts/lib/timeago.js +148 -0
- data/templates/app/assets/javascripts/lib/underscore.js +28 -0
- data/templates/app/assets/styles/application.sass +21 -0
- data/templates/app/assets/styles/layouts/default.sass +15 -0
- data/templates/app/assets/styles/layouts/footer.sass +0 -0
- data/templates/app/assets/styles/layouts/forms.sass +34 -0
- data/templates/app/assets/styles/layouts/header.sass +0 -0
- data/templates/app/assets/styles/layouts/navigation.sass +0 -0
- data/templates/app/assets/styles/lib/backbone-ui.css +580 -0
- data/templates/app/assets/styles/lib/bootstrap.sass +4248 -0
- data/templates/app/assets/styles/pages/home.sass +0 -0
- data/templates/app/assets/styles/sessions/new.sass +0 -0
- data/templates/app/assets/styles/users/activate.sass +0 -0
- data/templates/app/assets/styles/users/new.sass +0 -0
- data/templates/app/assets/styles/users/suspended.sass +0 -0
- data/templates/app/controllers/app_controller.rb +14 -0
- data/templates/app/controllers/pages_controller.rb +2 -0
- data/templates/app/controllers/sessions_controller.rb +2 -0
- data/templates/app/controllers/templating_controller.rb +31 -0
- data/templates/app/controllers/users_controller.rb +2 -0
- data/templates/app/helpers/app_helper.rb +94 -0
- data/templates/app/helpers/users_helper.rb +53 -0
- data/templates/app/models/user.rb +9 -0
- data/templates/app/views/devise/confirmations/new.haml +9 -0
- data/templates/app/views/devise/passwords/edit.haml +11 -0
- data/templates/app/views/devise/passwords/new.haml +9 -0
- data/templates/app/views/devise/registrations/edit.haml +13 -0
- data/templates/app/views/devise/registrations/new.haml +8 -0
- data/templates/app/views/devise/sessions/_form.haml +7 -0
- data/templates/app/views/devise/sessions/new.haml +5 -0
- data/templates/app/views/devise/unlocks/new.haml +7 -0
- data/templates/app/views/layouts/_ascii.haml +0 -0
- data/templates/app/views/layouts/_column.haml +0 -0
- data/templates/app/views/layouts/_content.haml +1 -0
- data/templates/app/views/layouts/_extra.haml +0 -0
- data/templates/app/views/layouts/_footer.haml +9 -0
- data/templates/app/views/layouts/_head.haml +13 -0
- data/templates/app/views/layouts/_header.haml +6 -0
- data/templates/app/views/layouts/application.html.haml +16 -0
- data/templates/app/views/pages/home.haml +1 -0
- data/templates/config/app.yml +29 -0
- data/templates/config/application.erb +28 -0
- data/templates/config/database.yml +32 -0
- data/templates/config/initializers/devise.rb +232 -0
- data/templates/config/initializers/rabl_init.rb +4 -0
- data/templates/config/initializers/setup_mail.rb +13 -0
- data/templates/config/initializers/wrap_parameters.rb +12 -0
- data/templates/db/migrate/user_migration.rb +36 -0
- data/templates/laces_gitignore +9 -0
- data/templates/lib/development_mail_interceptor.rb +7 -0
- data/templates/lib/templating.rb +40 -0
- metadata +225 -0
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,31 @@
|
|
1
|
+
class TemplatingController < AbstractController::Base
|
2
|
+
include AbstractController::Logger
|
3
|
+
include AbstractController::Rendering
|
4
|
+
include AbstractController::Layouts
|
5
|
+
include AbstractController::Helpers
|
6
|
+
include AbstractController::Translation
|
7
|
+
include AbstractController::AssetPaths
|
8
|
+
include Rails.application.routes.url_helpers
|
9
|
+
|
10
|
+
self.view_paths = 'app/views'
|
11
|
+
self.assets_dir = 'app/public'
|
12
|
+
|
13
|
+
helper ApplicationHelper,
|
14
|
+
JennyHelper,
|
15
|
+
Admin::ApplicationHelper,
|
16
|
+
Admin::CoursesHelper,
|
17
|
+
DocumentsHelper,
|
18
|
+
VideosHelper,
|
19
|
+
UsersHelper,
|
20
|
+
UploadsHelper,
|
21
|
+
DownloadsHelper,
|
22
|
+
GroupsHelper,
|
23
|
+
Admin::DepartmentsHelper,
|
24
|
+
NavigationHelper
|
25
|
+
|
26
|
+
public
|
27
|
+
def r partial
|
28
|
+
render :partial => partial
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
module ApplicationHelper
|
2
|
+
def body_attrs
|
3
|
+
attrs = {}
|
4
|
+
class_name = [location_name,I18n.locale,ENV['RAILS_ENV']]
|
5
|
+
class_name << 'signup_process' if signup_location?
|
6
|
+
class_name << 'admin' if admin_location?
|
7
|
+
class_name << 'static' if static_pages?
|
8
|
+
class_name << (logged_in? ? 'logged_in' : 'logged_out')
|
9
|
+
attrs[:location] = location_name
|
10
|
+
attrs[:controller] = controller.controller_name
|
11
|
+
attrs[:action] = action_name
|
12
|
+
attrs[:class] = class_name.join ' '
|
13
|
+
attrs[:query] = controller.controller_name if admin_location?
|
14
|
+
attrs
|
15
|
+
end
|
16
|
+
|
17
|
+
def content_attrs
|
18
|
+
class_name = if content_for?(:extra) && content_for?(:column)
|
19
|
+
'content_wrap_extra'
|
20
|
+
elsif content_for? :extra
|
21
|
+
'content_single_extra'
|
22
|
+
elsif content_for? :column
|
23
|
+
'content_wrap'
|
24
|
+
else
|
25
|
+
'content_single'
|
26
|
+
end
|
27
|
+
attrs = {}
|
28
|
+
attrs[:class] = class_name
|
29
|
+
attrs
|
30
|
+
end
|
31
|
+
|
32
|
+
def asset_dir
|
33
|
+
admin_location? ? :admin : :application
|
34
|
+
end
|
35
|
+
|
36
|
+
def admin_location?
|
37
|
+
location_match? 'admin'
|
38
|
+
end
|
39
|
+
|
40
|
+
def signup_location?
|
41
|
+
location_name? 'new_users'
|
42
|
+
end
|
43
|
+
|
44
|
+
def location_name?(*names)
|
45
|
+
names.any?{ |name| name == location_name }
|
46
|
+
end
|
47
|
+
|
48
|
+
def location_name
|
49
|
+
"#{action_name}_#{controller.controller_name}"
|
50
|
+
end
|
51
|
+
|
52
|
+
def location_match?(*names)
|
53
|
+
names.any?{ |name| controller.controller_path.match(/#{name}/) }
|
54
|
+
end
|
55
|
+
|
56
|
+
def static_pages?
|
57
|
+
pages = %w{about_pages}
|
58
|
+
location_name? *pages
|
59
|
+
end
|
60
|
+
|
61
|
+
def ascii
|
62
|
+
partial 'layouts/ascii'
|
63
|
+
end
|
64
|
+
|
65
|
+
def head
|
66
|
+
partial '%head', 'layouts/head'
|
67
|
+
end
|
68
|
+
|
69
|
+
def content
|
70
|
+
partial 'layouts/content'
|
71
|
+
end
|
72
|
+
|
73
|
+
def extra
|
74
|
+
return unless content_for? :extra
|
75
|
+
partial ['.extra_wrap','.extra'], 'layouts/extra'
|
76
|
+
end
|
77
|
+
|
78
|
+
def column
|
79
|
+
return unless content_for? :column
|
80
|
+
partial '.column.expand', 'layouts/column'
|
81
|
+
end
|
82
|
+
|
83
|
+
def header
|
84
|
+
partial ['.header_wrap','.header'], 'layouts/header'
|
85
|
+
end
|
86
|
+
|
87
|
+
def footer
|
88
|
+
partial ['.footer_wrap','.footer'], 'layouts/footer'
|
89
|
+
end
|
90
|
+
|
91
|
+
def google_analytics
|
92
|
+
javascript_include_tag 'lib/analytics'
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module UsersHelper
|
2
|
+
def registration_form_for user, &proc
|
3
|
+
devise_form_for :registration, user, &proc
|
4
|
+
end
|
5
|
+
|
6
|
+
def session_form_for user, &proc
|
7
|
+
devise_form_for :session, user, &proc
|
8
|
+
end
|
9
|
+
|
10
|
+
def confirmation_form_for user, &proc
|
11
|
+
devise_form_for :confirmation, user, &proc
|
12
|
+
end
|
13
|
+
|
14
|
+
def password_form_for user, &proc
|
15
|
+
devise_form_for :password, user, &proc
|
16
|
+
end
|
17
|
+
|
18
|
+
def devise_form_for name, user, &proc
|
19
|
+
url = nil
|
20
|
+
eval "url = #{name}_path :user"
|
21
|
+
html = { class: 'default' }
|
22
|
+
form_for user, url: url, html: html, &proc
|
23
|
+
end
|
24
|
+
|
25
|
+
def session_form user
|
26
|
+
partial 'users/sessions/form', user: user
|
27
|
+
end
|
28
|
+
|
29
|
+
def signup_link
|
30
|
+
name = 'Sign up'
|
31
|
+
path = new_registration_path :user
|
32
|
+
link_to name, path
|
33
|
+
end
|
34
|
+
|
35
|
+
def signin_link
|
36
|
+
name = 'Sign in'
|
37
|
+
path = new_session_path :user
|
38
|
+
link_to name, path
|
39
|
+
end
|
40
|
+
|
41
|
+
def forgot_link
|
42
|
+
name = 'Forgot your password?'
|
43
|
+
path = new_password_path :user
|
44
|
+
link_to name, path
|
45
|
+
end
|
46
|
+
|
47
|
+
def confirm_link
|
48
|
+
name = "Didn't receive confirmation instructions?"
|
49
|
+
path = new_confirmation_path :user
|
50
|
+
link_to name, path
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
%h2 Change your password
|
2
|
+
= password_form_for resource, &proc
|
3
|
+
= devise_error_messages!
|
4
|
+
= f.hidden_field :reset_password_token
|
5
|
+
= app_password_field f, :password
|
6
|
+
= app_password_field f, :password_confirmation
|
7
|
+
.submit
|
8
|
+
= submit_tag 'Change my password'
|
9
|
+
|
10
|
+
= forgot_link
|
11
|
+
= confirm_link
|
@@ -0,0 +1,13 @@
|
|
1
|
+
%h2
|
2
|
+
Edit #{resource_name.to_s.humanize}
|
3
|
+
= registration_form_for resource do |f|
|
4
|
+
= devise_error_messages!
|
5
|
+
= app_text_field f, :email
|
6
|
+
= app_password_field f, :password
|
7
|
+
= app_password_field f, :password_confirmation
|
8
|
+
= app_password_field f, :current_password
|
9
|
+
.submit
|
10
|
+
= submit_tag 'Update'
|
11
|
+
%h3 Cancel my account
|
12
|
+
%p
|
13
|
+
Unhappy? #{link_to "Cancel my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete}.
|
@@ -0,0 +1,7 @@
|
|
1
|
+
%h2 Resend unlock instructions
|
2
|
+
= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f|
|
3
|
+
= devise_error_messages!
|
4
|
+
= app_text_field f, :email
|
5
|
+
.submit
|
6
|
+
= submit_tag 'Resend unlock instructions'
|
7
|
+
= render "devise/shared/links"
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
= yield
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
%meta{ 'http-equiv' => "content-type", :content => "text/html;charset=utf-8" }
|
2
|
+
= csrf_meta_tag
|
3
|
+
%title <%= app_name.classify %>
|
4
|
+
= stylesheet_link_tag asset_dir
|
5
|
+
= javascript_include_tag asset_dir
|
6
|
+
|
7
|
+
%link{ :rel => 'shortcut icon' ,:href => '/favicon.ico' }
|
8
|
+
%meta{ :property => 'og:title' ,:content => '<%= app_name.classify %>' }
|
9
|
+
%meta{ :property => 'og:type' ,:content => 'website' }
|
10
|
+
%meta{ :property => 'og:url' ,:content => 'https://domain.com' }
|
11
|
+
%meta{ :property => 'og:image' ,:content => 'https://domain.com/assets/logo.png' }
|
12
|
+
%meta{ :property => 'og:site_name' ,:content => '<%= app_name.classify %>' }
|
13
|
+
%meta{ :property => 'og:description',:content => '' }
|
@@ -0,0 +1 @@
|
|
1
|
+
This is your home page
|
@@ -0,0 +1,29 @@
|
|
1
|
+
defaults: &DEFAULTS
|
2
|
+
domain: 'localhost:3000'
|
3
|
+
mail:
|
4
|
+
address : 'smtp.sendgrid.net'
|
5
|
+
port : 587
|
6
|
+
domain : 'domain.com'
|
7
|
+
user_name : 'user'
|
8
|
+
password : 'password'
|
9
|
+
authenication : 'plain'
|
10
|
+
enable_starttls_auto : true
|
11
|
+
development:
|
12
|
+
<<: *DEFAULTS
|
13
|
+
production:
|
14
|
+
<<: *DEFAULTS
|
15
|
+
domain: 'domain.com'
|
16
|
+
mail:
|
17
|
+
address : 'smtp.sendgrid.net'
|
18
|
+
port : 587
|
19
|
+
domain : 'domain.com'
|
20
|
+
user_name : 'user'
|
21
|
+
password : 'password'
|
22
|
+
authenication : 'plain'
|
23
|
+
enable_starttls_auto : true
|
24
|
+
staging:
|
25
|
+
<<: *DEFAULTS
|
26
|
+
domain: 'stage.domain.com'
|
27
|
+
test: &TEST
|
28
|
+
<<: *DEFAULTS
|
29
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require 'rails/all'
|
4
|
+
|
5
|
+
Bundler.require *Rails.groups(:assets) if defined?(Bundler)
|
6
|
+
|
7
|
+
module <%= app_name.classify %>
|
8
|
+
|
9
|
+
def self.config
|
10
|
+
Rails.configuration
|
11
|
+
end
|
12
|
+
|
13
|
+
class Application < Rails::Application
|
14
|
+
config.from_file 'app.yml'
|
15
|
+
config.encoding = 'utf-8'
|
16
|
+
config.assets.enabled = true
|
17
|
+
config.filter_parameters += [:password]
|
18
|
+
config.time_zone = "Eastern Time (US & Canada)"
|
19
|
+
config.autoload_paths += %W(#{Rails.root}/lib)
|
20
|
+
config.generators do |g|
|
21
|
+
g.template_engine :haml
|
22
|
+
g.test_framework :rspec, :fixture => false
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
Object.const_set :APP, config
|
27
|
+
end
|
28
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
production:
|
2
|
+
adapter: mysql2
|
3
|
+
encoding: utf8
|
4
|
+
reconnect: false
|
5
|
+
database: <%= app_name %>_pro
|
6
|
+
pool: 5
|
7
|
+
username: root
|
8
|
+
password:
|
9
|
+
socket: <%=RUBY_PLATFORM.downcase.include?("darwin") ? '/tmp/mysql.sock' : '/var/run/mysqld/mysqld.sock' %>
|
10
|
+
|
11
|
+
development:
|
12
|
+
adapter: mysql2
|
13
|
+
encoding: utf8
|
14
|
+
reconnect: false
|
15
|
+
database: <%= app_name %>_dev
|
16
|
+
pool: 5
|
17
|
+
username: root
|
18
|
+
password:
|
19
|
+
socket: <%=RUBY_PLATFORM.downcase.include?("darwin") ? '/tmp/mysql.sock' : '/var/run/mysqld/mysqld.sock' %>
|
20
|
+
|
21
|
+
test: &test
|
22
|
+
adapter: mysql2
|
23
|
+
encoding: utf8
|
24
|
+
reconnect: true
|
25
|
+
database: <%= app_name %>_test
|
26
|
+
pool: 5
|
27
|
+
username: root
|
28
|
+
password:
|
29
|
+
socket: <%=RUBY_PLATFORM.downcase.include?("darwin") ? '/tmp/mysql.sock' : '/var/run/mysqld/mysqld.sock' %>
|
30
|
+
|
31
|
+
cucumber:
|
32
|
+
<<: *test
|