laces 0.1.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.
- 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
|