cambium 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -1
- data/Rakefile +0 -1
- data/bin/cambium +20 -0
- data/cambium.gemspec +24 -1
- data/lib/cambium/engine.rb +6 -0
- data/lib/cambium/version.rb +1 -1
- data/lib/cambium.rb +1 -1
- data/lib/docs/notes.md +4 -0
- data/lib/generators/cambium/setup/config_generator.rb +185 -0
- data/lib/generators/cambium/setup/controllers_generator.rb +95 -0
- data/lib/generators/cambium/setup/devise_generator.rb +78 -0
- data/lib/generators/cambium/setup/helpers_generator.rb +71 -0
- data/lib/generators/cambium/setup/javascripts_generator.rb +111 -0
- data/lib/generators/cambium/setup/models_generator.rb +116 -0
- data/lib/generators/cambium/setup/stylesheets_generator.rb +86 -0
- data/lib/generators/cambium/setup/utilities_generator.rb +87 -0
- data/lib/generators/cambium/setup/views_generator.rb +86 -0
- data/lib/generators/cambium/templates/Gemfile.erb +41 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/.DS_Store +0 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/admin.js +12 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/admin.js.coffee +22 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/models/.gitkeep +0 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/routers/router.js.coffee +12 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/templates/paginator_controls.jst.ejs +8 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/templates/paginator_nav.jst.ejs +11 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/views/accordion.js.coffee +33 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/views/counter.js.coffee +25 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/views/dropdown_toggle.js.coffee +16 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/views/init_counter.js.coffee +13 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/views/paginator.js.coffee +86 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/views/publishable.js.coffee +12 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/backbone/views/wysiwyg.js.coffee +10 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/admin/wysihtml5.js +9521 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/application.js +7 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/backbone/app.js.coffee +22 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/backbone/routers/router.js.coffee +23 -0
- data/lib/generators/cambium/templates/app/assets/javascripts/backbone/views/default_helpers.js.coffee +16 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/admin.scss +14 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/__default.scss +14 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_buttons.scss +21 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_colors.scss +93 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_components.scss +4 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_forms.scss +28 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_helpers.scss +31 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_images.scss +23 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_nav.scss +117 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_tables.scss +12 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_typography.scss +83 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones-config/_wireframe.scss +18 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/bones/bones.scss +68 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/partials/_content.scss +88 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/partials/_form.scss +470 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/partials/_globals.scss +39 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/partials/_header.scss +121 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/partials/_icons.scss +5194 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/partials/_nav.scss +45 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/partials/_wireframe.scss +24 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/admin/wysihtml5.css +7 -0
- data/lib/generators/cambium/templates/app/assets/stylesheets/application.scss +9 -0
- data/lib/generators/cambium/templates/app/controllers/admin/users_controller.rb +13 -0
- data/lib/generators/cambium/templates/app/controllers/admin_controller.rb +88 -0
- data/lib/generators/cambium/templates/app/controllers/application_controller.rb +15 -0
- data/lib/generators/cambium/templates/app/helpers/admin_helper.rb +120 -0
- data/lib/generators/cambium/templates/app/models/concerns/idx.rb +28 -0
- data/lib/generators/cambium/templates/app/models/concerns/name.rb +7 -0
- data/lib/generators/cambium/templates/app/models/concerns/publishable.rb +50 -0
- data/lib/generators/cambium/templates/app/models/concerns/slug.rb +52 -0
- data/lib/generators/cambium/templates/app/models/concerns/tags.rb +28 -0
- data/lib/generators/cambium/templates/app/models/concerns/title.rb +7 -0
- data/lib/generators/cambium/templates/app/models/user.rb +14 -0
- data/lib/generators/cambium/templates/app/views/admin/_buttons.html.erb +5 -0
- data/lib/generators/cambium/templates/app/views/admin/_form.html.erb +11 -0
- data/lib/generators/cambium/templates/app/views/admin/_title.html.erb +1 -0
- data/lib/generators/cambium/templates/app/views/admin/edit.html.erb +2 -0
- data/lib/generators/cambium/templates/app/views/admin/index.html.erb +50 -0
- data/lib/generators/cambium/templates/app/views/admin/new.html.erb +2 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/_footer.html.erb +2 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/_header.html.erb +2 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/_nav.html.erb +12 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/_status.html.erb +3 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/forms/_editor.html.erb +54 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/forms/_form_column_left.html.erb +9 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/forms/_form_column_right.html.erb +9 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/forms/_form_page.html.erb +18 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/forms/_form_section.html.erb +8 -0
- data/lib/generators/cambium/templates/app/views/admin/shared/forms/_publishable.html.erb +33 -0
- data/lib/generators/cambium/templates/app/views/admin/users/_form.html.erb +11 -0
- data/lib/generators/cambium/templates/app/views/application/_status.html.erb +3 -0
- data/lib/generators/cambium/templates/app/views/layouts/.DS_Store +0 -0
- data/lib/generators/cambium/templates/app/views/layouts/admin.html.erb +44 -0
- data/lib/generators/cambium/templates/app/views/layouts/application.html.erb +24 -0
- data/lib/generators/cambium/templates/config/application.rb +15 -0
- data/lib/generators/cambium/templates/config/database.mysql2.yml.erb +15 -0
- data/lib/generators/cambium/templates/config/database.pg.yml.erb +14 -0
- data/lib/generators/cambium/templates/config/database.sqlite3.yml.erb +18 -0
- data/lib/generators/cambium/templates/config/initializers/_settings.rb +11 -0
- data/lib/generators/cambium/templates/config/initializers/assets.rb +1 -0
- data/lib/generators/cambium/templates/config/routes.rb.erb +33 -0
- data/lib/generators/cambium/templates/config/settings.yml +15 -0
- data/lib/generators/cambium/templates/config/settings_private.sample.yml +15 -0
- data/lib/generators/cambium/templates/config/settings_private.yml +13 -0
- data/lib/generators/cambium/templates/db/seeds.rb +25 -0
- data/lib/generators/cambium/templates/gitignore +29 -0
- data/lib/generators/cambium/templates/lib/.DS_Store +0 -0
- data/lib/generators/cambium/templates/lib/tasks/db.rake +22 -0
- data/lib/generators/cambium/templates/lib/tasks/rename.rake +28 -0
- data/lib/generators/cambium/templates/vendor/assets/javascripts/modernizr.js +4 -0
- data/lib/generators/cambium/templates/vendor/assets/stylesheets/normalize.scss +406 -0
- data/lib/help/cambium +7 -0
- metadata +375 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e28aa619df1b233dfde079815b4311a97b6baf8
|
4
|
+
data.tar.gz: cee209b988492319a11bedbe913848868b2e2d1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b628402023f64e5f40ec18988e60175c66e7bf480c891f669f5de58372efb058d64bc7846c969f0755665401f6f407b6e9d280fb320efaa1a7e67f6fb2e38620
|
7
|
+
data.tar.gz: 0ade2250383704544931a67ca71464d88d471a94c0269d12a7a6f25db7c82f42851c793776c3d5b49d1c1a50a37aac2415996da18b4bacaea73eaf8a23f05916
|
data/README.md
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
# Cambium
|
2
2
|
|
3
|
-
|
3
|
+
Cambium speeds up app development to keep you focusing on business logic and not
|
4
|
+
worrying about repetitive tasks.
|
5
|
+
|
6
|
+
**Initial sprint in progress. Documentation will be provided when the gem is
|
7
|
+
ready for distribution.**
|
4
8
|
|
5
9
|
## Installation
|
6
10
|
|
data/Rakefile
CHANGED
data/bin/cambium
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
@be = "bundle exec"
|
4
|
+
@g = "#{@be} rails g"
|
5
|
+
|
6
|
+
case ARGV.first
|
7
|
+
when "setup"
|
8
|
+
system "#{@g} cambium:setup:config"
|
9
|
+
system "#{@g} cambium:setup:devise"
|
10
|
+
system "#{@g} cambium:setup:models"
|
11
|
+
system "#{@g} cambium:setup:controllers"
|
12
|
+
system "#{@g} cambium:setup:views"
|
13
|
+
system "#{@g} cambium:setup:helpers"
|
14
|
+
system "#{@g} cambium:setup:javascripts"
|
15
|
+
system "#{@g} cambium:setup:stylesheets"
|
16
|
+
system "#{@g} cambium:setup:utilities"
|
17
|
+
else
|
18
|
+
gem_root = Gem::Specification.find_by_name("cambium").gem_dir
|
19
|
+
puts File.read("#{gem_root}/lib/help/cambium")
|
20
|
+
end
|
data/cambium.gemspec
CHANGED
@@ -19,5 +19,28 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
-
spec.
|
22
|
+
spec.add_dependency "rake"
|
23
|
+
spec.add_dependency "rails"
|
24
|
+
|
25
|
+
[
|
26
|
+
'annotate',
|
27
|
+
'bones-rails',
|
28
|
+
'bourbon',
|
29
|
+
'carrierwave',
|
30
|
+
'coffee-rails',
|
31
|
+
'devise',
|
32
|
+
'factory_girl_rails',
|
33
|
+
'faker',
|
34
|
+
'hirb',
|
35
|
+
'jbuilder',
|
36
|
+
'jquery-rails',
|
37
|
+
'pickadate-rails',
|
38
|
+
'rails-backbone',
|
39
|
+
'sass-rails',
|
40
|
+
'simple_form',
|
41
|
+
'uglifier',
|
42
|
+
'unicorn-rails',
|
43
|
+
'wysihtml5-rails',
|
44
|
+
].each { |g| spec.add_dependency g }
|
45
|
+
|
23
46
|
end
|
data/lib/cambium/version.rb
CHANGED
data/lib/cambium.rb
CHANGED
data/lib/docs/notes.md
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rails/generators'
|
3
|
+
|
4
|
+
module Cambium
|
5
|
+
module Setup
|
6
|
+
class ConfigGenerator < Rails::Generators::Base
|
7
|
+
desc "Setup config files for new rails project"
|
8
|
+
|
9
|
+
# ------------------------------------------ Class Methods
|
10
|
+
|
11
|
+
source_root File.expand_path('../../templates', __FILE__)
|
12
|
+
|
13
|
+
# ------------------------------------------ Config
|
14
|
+
|
15
|
+
def cambium_setup
|
16
|
+
@config = {
|
17
|
+
:db => {},
|
18
|
+
:app => {}
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def auto_config
|
23
|
+
# Read Gemfile
|
24
|
+
File.open("#{Rails.root}/Gemfile") do |f|
|
25
|
+
f.each_line do |line|
|
26
|
+
# Database
|
27
|
+
if line.include?("'mysql2'")
|
28
|
+
@config[:db][:adapter] = "mysql2"
|
29
|
+
elsif line.include?("'pg'")
|
30
|
+
@config[:db][:adapter] = "sqlite3"
|
31
|
+
elsif line.include?("'sqlite3'")
|
32
|
+
@config[:db][:adapter] = "pg"
|
33
|
+
end
|
34
|
+
# Rails Version
|
35
|
+
if line.match(/gem\ \'rails\'/)
|
36
|
+
@config[:app][:version] = line.gsub(/gem\ \'rails\'\,/, '').gsub(/\'/, '').strip
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
# Application Class Name
|
41
|
+
@config[:app][:name] = Rails.application.class.parent_name
|
42
|
+
# Database Name
|
43
|
+
@config[:db][:name] = @config[:app][:name].underscore.downcase
|
44
|
+
end
|
45
|
+
|
46
|
+
def user_config
|
47
|
+
# Database
|
48
|
+
if @config[:db][:adapter].present? && yes?("\nCambium, in all its wisdom, thinks your database adapter as #{set_color(@config[:db][:adapter], :green, :bold)}. Is this correct? [yes, no]")
|
49
|
+
say("Oh, goodie! Moving on...")
|
50
|
+
else
|
51
|
+
new_adapter = ask("What would you prefer?", :limited_to => ['mysql2','pg','sqlite3'])
|
52
|
+
unless new_adapter == @config[:db][:adapter]
|
53
|
+
say set_color("\nPlease add:", :red, :bold)
|
54
|
+
say "\n gem '#{new_adapter}'"
|
55
|
+
say set_color("\nto your Gemfile. Then run `bundle install` and `bundle exec cambium setup`.", :red, :bold)
|
56
|
+
exit
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
# Root URL (for mailers)
|
61
|
+
@config[:app][:dev_url] = ask("\n#{set_color('Development URL', :green, :bold)}: [leave blank for localhost:3000]")
|
62
|
+
@config[:app][:dev_url] = 'localhost:3000' if @config[:app][:dev_url].blank?
|
63
|
+
@config[:app][:prod_url] = ask("#{set_color('Production URL', :green, :bold)}: [leave blank for localhost:3000]")
|
64
|
+
@config[:app][:prod_url] = 'localhost:3000' if @config[:app][:prod_url].blank?
|
65
|
+
|
66
|
+
# Database Credentials
|
67
|
+
@config[:db][:user] = confirm_ask("#{set_color('Database User', :green, :bold)}: [leave blank for no user]")
|
68
|
+
if @config[:db][:user].present?
|
69
|
+
@config[:db][:password] = confirm_ask("#{set_color('Database Password', :green, :bold)}: [leave blank for no password]")
|
70
|
+
else
|
71
|
+
@config[:db][:password] = ''
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# ------------------------------------------ Gems & Gemfile
|
76
|
+
|
77
|
+
def install_gemfile
|
78
|
+
remove_file "Gemfile"
|
79
|
+
template "Gemfile.erb", "Gemfile"
|
80
|
+
run_cmd "bundle clean"
|
81
|
+
end
|
82
|
+
|
83
|
+
# ------------------------------------------ Application Settings & Config
|
84
|
+
|
85
|
+
def add_application_config
|
86
|
+
insert_into_file(
|
87
|
+
"config/application.rb",
|
88
|
+
file_contents("config/application.rb"),
|
89
|
+
:after => "class Application < Rails::Application"
|
90
|
+
)
|
91
|
+
end
|
92
|
+
|
93
|
+
# ------------------------------------------ Environment Settings
|
94
|
+
|
95
|
+
def add_env_settings
|
96
|
+
insert_into_file "config/environments/development.rb",
|
97
|
+
:after => "Rails.application.configure do" do
|
98
|
+
"\n\n config.action_mailer.default_url_options = { :host => '#{@config[:app][:dev_url]}' }\n"
|
99
|
+
end
|
100
|
+
insert_into_file "config/environments/production.rb",
|
101
|
+
:after => "Rails.application.configure do" do
|
102
|
+
output = ''
|
103
|
+
output += "\n\n config.action_mailer.default_url_options = { :host => '#{@config[:app][:prod_url]}' }"
|
104
|
+
output += "\n\n config.assets.precompile += %w( admin/admin.css admin/admin.js admin/wysihtml5.css modernizr.js )\n"
|
105
|
+
output
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# ------------------------------------------ Assets Initializer
|
110
|
+
|
111
|
+
def add_assets_initializer
|
112
|
+
template "config/initializers/assets.rb",
|
113
|
+
"config/initializers/assets.rb"
|
114
|
+
end
|
115
|
+
|
116
|
+
# ------------------------------------------ Database Setup
|
117
|
+
|
118
|
+
def setup_database
|
119
|
+
copy_file "#{Rails.root}/config/database.yml", "config/database.sample.yml"
|
120
|
+
remove_file "config/database.yml"
|
121
|
+
template "config/database.#{@config[:db][:adapter]}.yml.erb", "config/database.yml"
|
122
|
+
run_cmd "#{rake} db:drop", :quiet => true
|
123
|
+
run_cmd "#{rake} db:create"
|
124
|
+
run_cmd "#{rake} db:migrate"
|
125
|
+
end
|
126
|
+
|
127
|
+
# ------------------------------------------ .gitignore
|
128
|
+
|
129
|
+
def add_gitignore
|
130
|
+
remove_file ".gitignore"
|
131
|
+
template "gitignore", ".gitignore"
|
132
|
+
end
|
133
|
+
|
134
|
+
# ------------------------------------------ Private Methods
|
135
|
+
|
136
|
+
private
|
137
|
+
|
138
|
+
def run_cmd(cmd, options = {})
|
139
|
+
print_table(
|
140
|
+
[
|
141
|
+
[set_color("run", :green, :bold), cmd]
|
142
|
+
],
|
143
|
+
:indent => 9
|
144
|
+
)
|
145
|
+
if options[:quiet] == true
|
146
|
+
`#{cmd}`
|
147
|
+
else
|
148
|
+
system(cmd)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def template_file(name)
|
153
|
+
File.expand_path("../../templates/#{name}", __FILE__)
|
154
|
+
end
|
155
|
+
|
156
|
+
def file_contents(template)
|
157
|
+
File.read(template_file(template))
|
158
|
+
end
|
159
|
+
|
160
|
+
def be
|
161
|
+
"bundle exec"
|
162
|
+
end
|
163
|
+
|
164
|
+
def g
|
165
|
+
"#{be} rails g"
|
166
|
+
end
|
167
|
+
|
168
|
+
def rake
|
169
|
+
"#{be} rake"
|
170
|
+
end
|
171
|
+
|
172
|
+
def confirm_ask(question)
|
173
|
+
answer = ask("\n#{question}")
|
174
|
+
match = ask("CONFIRM #{question}")
|
175
|
+
if answer == match
|
176
|
+
answer
|
177
|
+
else
|
178
|
+
say set_color("Did not match.", :red)
|
179
|
+
confirm_ask(question)
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rails/generators'
|
3
|
+
|
4
|
+
module Cambium
|
5
|
+
module Setup
|
6
|
+
class ControllersGenerator < Rails::Generators::Base
|
7
|
+
desc "Setup controllers for new rails project"
|
8
|
+
|
9
|
+
# ------------------------------------------ Class Methods
|
10
|
+
|
11
|
+
source_root File.expand_path('../../templates', __FILE__)
|
12
|
+
|
13
|
+
# ------------------------------------------ Admin Controller
|
14
|
+
|
15
|
+
def add_admin_controller
|
16
|
+
template "app/controllers/admin_controller.rb",
|
17
|
+
"app/controllers/admin_controller.rb"
|
18
|
+
end
|
19
|
+
|
20
|
+
# ------------------------------------------ Admin Users Controller
|
21
|
+
|
22
|
+
def add_admin_users_controller
|
23
|
+
template "app/controllers/admin/users_controller.rb",
|
24
|
+
"app/controllers/admin/users_controller.rb"
|
25
|
+
end
|
26
|
+
|
27
|
+
# ------------------------------------------ Routes
|
28
|
+
|
29
|
+
def add_default_routes
|
30
|
+
remove_file "config/routes.rb"
|
31
|
+
template "config/routes.rb.erb", "config/routes.rb"
|
32
|
+
end
|
33
|
+
|
34
|
+
# ------------------------------------------ Log In/Out Redirects
|
35
|
+
|
36
|
+
def add_application_controller_redirects
|
37
|
+
insert_into_file(
|
38
|
+
"app/controllers/application_controller.rb",
|
39
|
+
file_contents("app/controllers/application_controller.rb"),
|
40
|
+
:after => ":exception"
|
41
|
+
)
|
42
|
+
end
|
43
|
+
|
44
|
+
# ------------------------------------------ Private Methods
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def run_cmd(cmd, options = {})
|
49
|
+
print_table(
|
50
|
+
[
|
51
|
+
[set_color("run", :green, :bold), cmd]
|
52
|
+
],
|
53
|
+
:indent => 9
|
54
|
+
)
|
55
|
+
if options[:quiet] == true
|
56
|
+
`#{cmd}`
|
57
|
+
else
|
58
|
+
system(cmd)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def template_file(name)
|
63
|
+
File.expand_path("../../templates/#{name}", __FILE__)
|
64
|
+
end
|
65
|
+
|
66
|
+
def file_contents(template)
|
67
|
+
File.read(template_file(template))
|
68
|
+
end
|
69
|
+
|
70
|
+
def be
|
71
|
+
"bundle exec"
|
72
|
+
end
|
73
|
+
|
74
|
+
def g
|
75
|
+
"#{be} rails g"
|
76
|
+
end
|
77
|
+
|
78
|
+
def rake
|
79
|
+
"#{be} rake"
|
80
|
+
end
|
81
|
+
|
82
|
+
def confirm_ask(question)
|
83
|
+
answer = ask("\n#{question}")
|
84
|
+
match = ask("Confirm: #{question}")
|
85
|
+
if answer == match
|
86
|
+
answer
|
87
|
+
else
|
88
|
+
say set_color("Did not match.", :red)
|
89
|
+
confirm_ask(question)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rails/generators'
|
3
|
+
|
4
|
+
module Cambium
|
5
|
+
module Setup
|
6
|
+
class DeviseGenerator < Rails::Generators::Base
|
7
|
+
desc "Setup Devise for new rails project"
|
8
|
+
|
9
|
+
# ------------------------------------------ Class Methods
|
10
|
+
|
11
|
+
source_root File.expand_path('../../templates', __FILE__)
|
12
|
+
|
13
|
+
# ------------------------------------------ Devise
|
14
|
+
|
15
|
+
def install_devise
|
16
|
+
unless File.exist?("#{Rails.root}/config/initializers/devise.rb")
|
17
|
+
run_cmd "#{g} devise:install"
|
18
|
+
end
|
19
|
+
unless File.exist?("#{Rails.root}/app/models/user.rb")
|
20
|
+
run_cmd "#{g} devise User"
|
21
|
+
run_cmd "#{rake} db:migrate"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# ------------------------------------------ Private Methods
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def run_cmd(cmd, options = {})
|
30
|
+
print_table(
|
31
|
+
[
|
32
|
+
[set_color("run", :green, :bold), cmd]
|
33
|
+
],
|
34
|
+
:indent => 9
|
35
|
+
)
|
36
|
+
if options[:quiet] == true
|
37
|
+
`#{cmd}`
|
38
|
+
else
|
39
|
+
system(cmd)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def template_file(name)
|
44
|
+
File.expand_path("../../templates/#{name}", __FILE__)
|
45
|
+
end
|
46
|
+
|
47
|
+
def file_contents(template)
|
48
|
+
File.read(template_file(template))
|
49
|
+
end
|
50
|
+
|
51
|
+
def be
|
52
|
+
"bundle exec"
|
53
|
+
end
|
54
|
+
|
55
|
+
def g
|
56
|
+
"#{be} rails g"
|
57
|
+
end
|
58
|
+
|
59
|
+
def rake
|
60
|
+
"#{be} rake"
|
61
|
+
end
|
62
|
+
|
63
|
+
def confirm_ask(question)
|
64
|
+
answer = ask("\n#{question}")
|
65
|
+
match = ask("Confirm: #{question}")
|
66
|
+
if answer == match
|
67
|
+
answer
|
68
|
+
else
|
69
|
+
say set_color("Did not match.", :red)
|
70
|
+
confirm_ask(question)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# ------------------------------------------
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rails/generators'
|
3
|
+
|
4
|
+
module Cambium
|
5
|
+
module Setup
|
6
|
+
class HelpersGenerator < Rails::Generators::Base
|
7
|
+
desc "Setup helpers for new rails project"
|
8
|
+
|
9
|
+
# ------------------------------------------ Class Methods
|
10
|
+
|
11
|
+
source_root File.expand_path('../../templates', __FILE__)
|
12
|
+
|
13
|
+
# ------------------------------------------ Admin Helper
|
14
|
+
|
15
|
+
def add_admin_helper
|
16
|
+
template "app/helpers/admin_helper.rb",
|
17
|
+
"app/helpers/admin_helper.rb"
|
18
|
+
end
|
19
|
+
|
20
|
+
# ------------------------------------------ Private Methods
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def run_cmd(cmd, options = {})
|
25
|
+
print_table(
|
26
|
+
[
|
27
|
+
[set_color("run", :green, :bold), cmd]
|
28
|
+
],
|
29
|
+
:indent => 9
|
30
|
+
)
|
31
|
+
if options[:quiet] == true
|
32
|
+
`#{cmd}`
|
33
|
+
else
|
34
|
+
system(cmd)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def template_file(name)
|
39
|
+
File.expand_path("../../templates/#{name}", __FILE__)
|
40
|
+
end
|
41
|
+
|
42
|
+
def file_contents(template)
|
43
|
+
File.read(template_file(template))
|
44
|
+
end
|
45
|
+
|
46
|
+
def be
|
47
|
+
"bundle exec"
|
48
|
+
end
|
49
|
+
|
50
|
+
def g
|
51
|
+
"#{be} rails g"
|
52
|
+
end
|
53
|
+
|
54
|
+
def rake
|
55
|
+
"#{be} rake"
|
56
|
+
end
|
57
|
+
|
58
|
+
def confirm_ask(question)
|
59
|
+
answer = ask("\n#{question}")
|
60
|
+
match = ask("Confirm: #{question}")
|
61
|
+
if answer == match
|
62
|
+
answer
|
63
|
+
else
|
64
|
+
say set_color("Did not match.", :red)
|
65
|
+
confirm_ask(question)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rails/generators'
|
3
|
+
|
4
|
+
module Cambium
|
5
|
+
module Setup
|
6
|
+
class JavascriptsGenerator < Rails::Generators::Base
|
7
|
+
desc "Setup javascripts for new rails project"
|
8
|
+
|
9
|
+
# ------------------------------------------ Class Methods
|
10
|
+
|
11
|
+
source_root File.expand_path('../../templates', __FILE__)
|
12
|
+
|
13
|
+
# ------------------------------------------ Public Setup
|
14
|
+
|
15
|
+
def install_backbone
|
16
|
+
run_cmd "#{g} backbone:install"
|
17
|
+
end
|
18
|
+
|
19
|
+
def default_application_js
|
20
|
+
app_js = "app/assets/javascripts/application.js"
|
21
|
+
remove_file app_js
|
22
|
+
template app_js, app_js
|
23
|
+
end
|
24
|
+
|
25
|
+
def rename_backbone_root
|
26
|
+
app_name = Rails.application.class.parent_name.underscore.downcase
|
27
|
+
remove_file "app/assets/javascripts/backbone/#{app_name}.js.coffee"
|
28
|
+
template "app/assets/javascripts/backbone/app.js.coffee",
|
29
|
+
"app/assets/javascripts/backbone/app.js.coffee"
|
30
|
+
end
|
31
|
+
|
32
|
+
# ------------------------------------------ Public Files
|
33
|
+
|
34
|
+
def add_public_router
|
35
|
+
remove_file "app/assets/javascripts/backbone/routers/.gitkeep"
|
36
|
+
template "app/assets/javascripts/backbone/routers/router.js.coffee",
|
37
|
+
"app/assets/javascripts/backbone/routers/router.js.coffee"
|
38
|
+
end
|
39
|
+
|
40
|
+
def add_default_view
|
41
|
+
remove_file "app/assets/javascripts/backbone/views/.gitkeep"
|
42
|
+
template "app/assets/javascripts/backbone/views/default_helpers.js.coffee",
|
43
|
+
"app/assets/javascripts/backbone/views/default_helpers.js.coffee"
|
44
|
+
end
|
45
|
+
|
46
|
+
# ------------------------------------------ Admin Setup
|
47
|
+
|
48
|
+
def add_admin_files
|
49
|
+
directory "app/assets/javascripts/admin",
|
50
|
+
"app/assets/javascripts/admin"
|
51
|
+
end
|
52
|
+
|
53
|
+
# ------------------------------------------ Add Modernizr
|
54
|
+
|
55
|
+
def add_modernizr
|
56
|
+
modernizr = "vendor/assets/javascripts/modernizr.js"
|
57
|
+
copy_file modernizr, modernizr
|
58
|
+
end
|
59
|
+
|
60
|
+
# ------------------------------------------ Private Methods
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def run_cmd(cmd, options = {})
|
65
|
+
print_table(
|
66
|
+
[
|
67
|
+
[set_color("run", :green, :bold), cmd]
|
68
|
+
],
|
69
|
+
:indent => 9
|
70
|
+
)
|
71
|
+
if options[:quiet] == true
|
72
|
+
`#{cmd}`
|
73
|
+
else
|
74
|
+
system(cmd)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def template_file(name)
|
79
|
+
File.expand_path("../../templates/#{name}", __FILE__)
|
80
|
+
end
|
81
|
+
|
82
|
+
def file_contents(template)
|
83
|
+
File.read(template_file(template))
|
84
|
+
end
|
85
|
+
|
86
|
+
def be
|
87
|
+
"bundle exec"
|
88
|
+
end
|
89
|
+
|
90
|
+
def g
|
91
|
+
"#{be} rails g"
|
92
|
+
end
|
93
|
+
|
94
|
+
def rake
|
95
|
+
"#{be} rake"
|
96
|
+
end
|
97
|
+
|
98
|
+
def confirm_ask(question)
|
99
|
+
answer = ask("\n#{question}")
|
100
|
+
match = ask("Confirm: #{question}")
|
101
|
+
if answer == match
|
102
|
+
answer
|
103
|
+
else
|
104
|
+
say set_color("Did not match.", :red)
|
105
|
+
confirm_ask(question)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|