10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# File 'lib/railsbricks/auth_builder.rb', line 10
def self.build_auth(app_dir, options)
new_line(2)
wputs "----> Generating authentication scheme ...", :info
rbricks_dir = File.dirname(__FILE__)
add_string = ""
if options[:devise_config][:scheme] == "email"
FileUtils.cp_r(rbricks_dir + "/assets/models/devise_email/user.rb", app_dir + "/app/models")
else
FileUtils.cp_r(rbricks_dir + "/assets/models/devise_username/user.rb", app_dir + "/app/models")
end
wputs "--> User model created."
if options[:devise_config][:scheme] == "email"
FileUtils.cp_r(rbricks_dir + "/assets/migrations/devise_email/20141010133701_devise_create_users.rb", app_dir + "/db/migrate")
else
FileUtils.cp_r(rbricks_dir + "/assets/migrations/devise_username/20141010133701_devise_create_users.rb", app_dir + "/db/migrate")
end
wputs "--> Migration created."
FileUtils.rm(app_dir + "/db/seeds.rb")
if options[:devise_config][:scheme] == "email"
if options[:devise_config][:test_users]
FileUtils.cp_r(rbricks_dir + "/assets/seeds/devise_email/seeds_test_users.rb", app_dir + "/db/seeds.rb")
else
FileUtils.cp_r(rbricks_dir + "/assets/seeds/devise_email/seeds_no_test_users.rb", app_dir + "/db/seeds.rb")
end
else
if options[:devise_config][:test_users]
FileUtils.cp_r(rbricks_dir + "/assets/seeds/devise_username/seeds_test_users.rb", app_dir + "/db/seeds.rb")
else
FileUtils.cp_r(rbricks_dir + "/assets/seeds/devise_username/seeds_no_test_users.rb", app_dir + "/db/seeds.rb")
end
end
wputs "--> Seeds created."
FileUtils.mkdir_p(app_dir + "/app/controllers/admin")
FileUtils.cp_r(rbricks_dir + "/assets/controllers/admin/base_controller.rb", app_dir + "/app/controllers/admin/base_controller.rb")
if options[:devise_config][:scheme] == "email"
FileUtils.cp_r(rbricks_dir + "/assets/controllers/admin/devise_email/users_controller.rb", app_dir + "/app/controllers/admin/users_controller.rb")
else
FileUtils.cp_r(rbricks_dir + "/assets/controllers/admin/devise_username/users_controller.rb", app_dir + "/app/controllers/admin/users_controller.rb")
end
wputs "--> User admin controllers created."
FileUtils.cp_r(rbricks_dir + "/assets/controllers/pages_controller.rb", app_dir + "/app/controllers/pages_controller.rb")
FileUtils.rm(app_dir + "/app/controllers/application_controller.rb")
if options[:devise_config][:scheme] == "email"
FileUtils.cp_r(rbricks_dir + "/assets/controllers/devise_email/application_controller.rb", app_dir + "/app/controllers/application_controller.rb")
else
FileUtils.cp_r(rbricks_dir + "/assets/controllers/devise_username/application_controller.rb", app_dir + "/app/controllers/application_controller.rb")
end
wputs "--> Controllers created."
FileUtils.mkdir_p(app_dir + "/app/views/admin")
FileUtils.mkdir_p(app_dir + "/app/views/admin/base")
FileUtils.mkdir_p(app_dir + "/app/views/admin/users")
if options[:devise_config][:scheme] == "email"
FileUtils.cp_r(rbricks_dir + "/assets/views/admin/base/devise_email/index.html.erb", app_dir + "/app/views/admin/base")
FileUtils.cp_r(rbricks_dir + "/assets/views/admin/users/devise_email/index.html.erb", app_dir + "/app/views/admin/users")
FileUtils.cp_r(rbricks_dir + "/assets/views/admin/users/devise_email/edit.html.erb", app_dir + "/app/views/admin/users")
else
FileUtils.cp_r(rbricks_dir + "/assets/views/admin/base/devise_username/index.html.erb", app_dir + "/app/views/admin/base")
FileUtils.cp_r(rbricks_dir + "/assets/views/admin/users/devise_username/index.html.erb", app_dir + "/app/views/admin/users")
FileUtils.cp_r(rbricks_dir + "/assets/views/admin/users/devise_username/edit.html.erb", app_dir + "/app/views/admin/users")
end
wputs "--> Admin views created."
FileUtils.mkdir_p(app_dir + "/app/views/devise")
if options[:devise_config][:scheme] == "email"
FileUtils.cp_r(rbricks_dir + "/assets/views/devise/devise_email/.", app_dir + "/app/views/devise")
else
FileUtils.cp_r(rbricks_dir + "/assets/views/devise/devise_username/.", app_dir + "/app/views/devise")
end
wputs "--> Devise views created."
FileUtils.rm(app_dir + "/app/views/layouts/_navigation_links.html.erb")
FileUtils.cp_r(rbricks_dir + "/assets/views/layouts/_navigation_links.html.erb", app_dir + "/app/views/layouts")
wputs "--> Navbar links created."
FileUtils.cp_r(rbricks_dir + "/assets/views/pages/inside.html.erb", app_dir + "/app/views/pages")
wputs "--> Protected view created."
if options[:devise_config][:scheme] == "email"
FileUtils.cp_r(rbricks_dir + "/assets/config/initializers/devise_email/devise.rb", app_dir + "/config/initializers")
else
FileUtils.cp_r(rbricks_dir + "/assets/config/initializers/devise_username/devise.rb", app_dir + "/config/initializers")
end
wputs "--> Devise initializer created."
FileUtils.rm(app_dir + "/config/routes.rb")
FileUtils.cp_r(rbricks_dir + "/assets/config/routes.rb", app_dir + "/config")
wputs "--> Routes created."
if options[:devise_config][:allow_signup]
FileHelpers.replace_string(/BRICK_ALLOW_SIGNUP/, ':registerable,', app_dir + "/app/models/user.rb")
FileHelpers.replace_string(/BRICK_ALLOW_SIGNUP_LINK/, '<li><%= link_to "Sign up", new_user_registration_path %></li>', app_dir + "/app/views/layouts/_navigation_links.html.erb")
FileHelpers.replace_string(/BRICK_ALLOW_EDIT_LINK/, '<li><%= link_to "Edit your account", edit_user_registration_path %></li>', app_dir + "/app/views/layouts/_navigation_links.html.erb")
FileHelpers.replace_string(/BRICK_ALLOW_SIGNUP_LINKS/, FileHelpers.get_file(:brick_allow_signup_links), app_dir + "/app/views/devise/shared/_links.erb")
else
FileHelpers.replace_string(/BRICK_ALLOW_SIGNUP/, '', app_dir + "/app/models/user.rb")
FileHelpers.replace_string(/BRICK_ALLOW_SIGNUP_LINK/, '', app_dir + "/app/views/layouts/_navigation_links.html.erb")
FileHelpers.replace_string(/BRICK_ALLOW_EDIT_LINK/, '', app_dir + "/app/views/layouts/_navigation_links.html.erb")
FileHelpers.replace_string(/BRICK_ALLOW_SIGNUP_LINKS/, '', app_dir + "/app/views/devise/shared/_links.erb")
end
wputs "--> User registration options set."
new_line
wputs "----> Authentication scheme generated.", :info
rescue
Errors.display_error("Something went wrong and the authentication scheme couldn't be generated. Stopping app creation.", true)
abort
end
|