cybele 0.8.0 → 0.9.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/cybele/app_builder.rb +31 -57
- data/lib/cybele/generators/app_generator.rb +20 -27
- data/lib/cybele/version.rb +3 -3
- data/templates/cybele_Gemfile +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9451598bcffbad85bff16ec9a0faa43360eb8ff2
|
4
|
+
data.tar.gz: 50c0429104043dace2df95bd2350b6b3c2ed5ab5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 227c45bf424e5f34bd8085e359cca9811b9a4911c079cb1027f64b37a41d30daa5d5514ddf984dc001a075ef944b7f6351dbf05a53d9168b0050109ba6009f3f
|
7
|
+
data.tar.gz: 0cc04f7df2db1df4e124b4729cc272d137bdbf94b3eaf559100c3189ed6ed8e6111ff3fa0e9603af5fa243efbfab071a93f0c24d6c4d18f050caca8ce7654ffa
|
data/README.md
CHANGED
@@ -70,7 +70,7 @@ http://github.com/kebab-project/cybele/issues
|
|
70
70
|
|
71
71
|
## Contributing
|
72
72
|
|
73
|
-
Cybele uses [
|
73
|
+
Cybele uses [rDoc](http://rubydoc.info/gems/cybele) and [SemVer](http://semver.org/), and takes it seriously.
|
74
74
|
|
75
75
|
Once you've made your great commits:
|
76
76
|
|
data/lib/cybele/app_builder.rb
CHANGED
@@ -1,39 +1,30 @@
|
|
1
|
-
module Cybele
|
1
|
+
module Cybele
|
2
2
|
|
3
|
-
# Public: This allows you to override entire operations, like the creation of the
|
4
|
-
# cybele_Gemfile, README, or JavaScript files, without needing to know exactly
|
5
|
-
# what those operations do so you can create another template action.
|
6
3
|
class AppBuilder < Rails::AppBuilder
|
7
4
|
|
8
|
-
# Internal: Overwrite super class readme
|
9
5
|
def readme
|
10
6
|
template 'README.md.erb', 'README.md', :force => true
|
11
7
|
end
|
12
8
|
|
13
|
-
# Internal: Remove README.rdoc file
|
14
9
|
def remove_readme_rdoc
|
15
10
|
remove_file 'README.rdoc'
|
16
11
|
end
|
17
12
|
|
18
|
-
# Internal: Replace gemfile
|
19
13
|
def replace_gemfile
|
20
14
|
remove_file 'Gemfile'
|
21
15
|
copy_file 'cybele_Gemfile', 'Gemfile'
|
22
16
|
end
|
23
17
|
|
24
|
-
# Internal: Replace config/application.rb file
|
25
18
|
def replace_application_rb_file
|
26
19
|
remove_file 'config/application.rb'
|
27
20
|
copy_file 'config/application.rb', 'config/application.rb'
|
28
21
|
end
|
29
22
|
|
30
|
-
# Internal: Replace erb files with html files
|
31
23
|
def replace_erb_with_haml
|
32
24
|
remove_file 'app/views/layouts/application.html.erb'
|
33
25
|
template 'app/views/layouts/application.html.haml.erb', 'app/views/layouts/application.html.haml', :force => true
|
34
26
|
end
|
35
27
|
|
36
|
-
# Internal: Replace responders controller template
|
37
28
|
def install_responder_gem
|
38
29
|
copy_file 'lib/application_responder.rb', 'lib/application_responder.rb'
|
39
30
|
remove_file 'app/controllers/application_controller.rb'
|
@@ -43,23 +34,19 @@ module Cybele #:nodoc:#
|
|
43
34
|
copy_file 'config/locales/responders.tr.yml', 'config/locales/responders.tr.yml'
|
44
35
|
end
|
45
36
|
|
46
|
-
# Internal: Setup database config
|
47
37
|
def replace_database_yml
|
48
38
|
template 'config/database.yml.erb', 'config/database.yml', :force => true
|
49
39
|
end
|
50
40
|
|
51
|
-
# Internal: Create database
|
52
41
|
def create_database
|
53
42
|
bundle_command 'exec rake db:create'
|
54
43
|
end
|
55
44
|
|
56
|
-
# Internal: Setup gitignore files
|
57
45
|
def setup_gitignore_files
|
58
46
|
remove_file '.gitignore'
|
59
47
|
copy_file 'cybele_gitignore', '.gitignore'
|
60
48
|
end
|
61
49
|
|
62
|
-
# Internal: Setup gitignore folders
|
63
50
|
def setup_gitignore_folders
|
64
51
|
%w(
|
65
52
|
app/assets/images
|
@@ -75,8 +62,6 @@ module Cybele #:nodoc:#
|
|
75
62
|
end
|
76
63
|
end
|
77
64
|
|
78
|
-
# Internal: Setup asset precompile
|
79
|
-
# Look for information https://github.com/thomas-mcdonald/bootstrap-sass#rails-4
|
80
65
|
def setup_asset_precompile
|
81
66
|
|
82
67
|
config = <<-RUBY
|
@@ -89,19 +74,16 @@ module Cybele #:nodoc:#
|
|
89
74
|
inject_into_file 'config/application.rb', config, :after => '# config.i18n.default_locale = :de'
|
90
75
|
end
|
91
76
|
|
92
|
-
# Interval: Convert application.js to application.js.coffee
|
93
77
|
def convert_application_js_to_coffee
|
94
78
|
remove_file 'app/assets/javascripts/application.js'
|
95
79
|
copy_file 'app/assets/javascripts/application.js.coffee', 'app/assets/javascripts/application.js.coffee'
|
96
80
|
end
|
97
81
|
|
98
|
-
# Interval: Convert application.css to application.css.sass
|
99
82
|
def convert_application_css_to_sass
|
100
83
|
remove_file 'app/assets/stylesheets/application.css'
|
101
84
|
copy_file 'app/assets/stylesheets/application.css.sass', 'app/assets/stylesheets/application.css.sass'
|
102
85
|
end
|
103
86
|
|
104
|
-
# Interval: Configure smtp
|
105
87
|
def configure_smtp
|
106
88
|
|
107
89
|
config = <<-RUBY
|
@@ -119,67 +101,79 @@ config.action_mailer.delivery_method = :smtp
|
|
119
101
|
configure_environment 'production', config
|
120
102
|
end
|
121
103
|
|
122
|
-
# Interval: Configure action mailer
|
123
104
|
def configure_action_mailer
|
124
105
|
action_mailer_host 'development', "#{app_name}.dev"
|
125
106
|
action_mailer_host 'test', "#{app_name}.com"
|
126
107
|
action_mailer_host 'production', "#{app_name}.com"
|
127
|
-
|
128
108
|
end
|
129
109
|
|
130
|
-
# Interval: Setup letter opener
|
131
110
|
def setup_letter_opener
|
132
111
|
config = 'config.action_mailer.delivery_method = :letter_opener'
|
133
112
|
configure_environment 'development', config
|
134
113
|
end
|
135
114
|
|
136
|
-
|
115
|
+
def generate_rspec
|
116
|
+
generate 'rspec:install'
|
117
|
+
end
|
118
|
+
|
119
|
+
def generate_capybara
|
120
|
+
inject_into_file 'spec/spec_helper.rb', :after => "require 'rspec/autorun'" do <<-CODE
|
121
|
+
|
122
|
+
require 'capybara/rspec'
|
123
|
+
CODE
|
124
|
+
end
|
125
|
+
inject_into_file 'spec/spec_helper.rb', :after => ' config.order = "random"' do <<-CODE
|
126
|
+
|
127
|
+
|
128
|
+
# Capybara DSL
|
129
|
+
config.include Capybara::DSL
|
130
|
+
CODE
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
def generate_factory_girl
|
135
|
+
inject_into_file 'spec/spec_helper.rb', :after => ' config.include Capybara::DSL' do <<-CODE
|
136
|
+
|
137
|
+
|
138
|
+
# Factory girl
|
139
|
+
config.include FactoryGirl::Syntax::Methods
|
140
|
+
CODE
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
137
144
|
def generate_simple_form
|
138
145
|
generate 'simple_form:install --bootstrap'
|
139
146
|
copy_file 'config/locales/simple_form.tr.yml', 'config/locales/simple_form.tr.yml'
|
140
147
|
copy_file 'config/locales/tr.yml', 'config/locales/tr.yml'
|
141
148
|
end
|
142
149
|
|
143
|
-
# Internal: Generate exception notification
|
144
|
-
#
|
145
|
-
# This command generates an initialize file (config/initializers/exception_notification.rb)
|
146
|
-
# where you can customize your configurations.
|
147
|
-
# https://github.com/smartinez87/exception_notification#rails
|
148
150
|
def generate_exception_notification
|
149
151
|
generate 'exception_notification:install'
|
150
152
|
end
|
151
153
|
|
152
|
-
# Internal: Leftovers
|
153
154
|
def leftovers
|
154
155
|
end
|
155
156
|
|
156
|
-
# Internal: Setup Rails Config
|
157
157
|
def generate_rails_config
|
158
158
|
generate 'rails_config:install'
|
159
159
|
end
|
160
160
|
|
161
|
-
# Internal: Setup devise
|
162
161
|
def generate_devise_settings
|
163
162
|
generate 'devise:install'
|
164
163
|
gsub_file 'config/initializers/filter_parameter_logging.rb', /:password/, ':password, :password_confirmation'
|
165
164
|
gsub_file 'config/initializers/devise.rb', /please-change-me-at-config-initializers-devise@example.com/, 'CHANGEME@example.com'
|
166
|
-
|
167
165
|
end
|
168
166
|
|
169
|
-
# Internal: Generate devise model
|
170
167
|
def generate_devise_model(model_name)
|
171
168
|
generate "devise #{model_name} name:string"
|
172
169
|
generate_devise_strong_parameters(model_name)
|
173
170
|
remove_file 'config/locales/devise.en.yml'
|
174
171
|
end
|
175
172
|
|
176
|
-
# Internal: Generate devise views
|
177
173
|
def generate_devise_views
|
178
|
-
# generate "devise:views"
|
179
174
|
directory 'app/views/devise', 'app/views/devise'
|
180
175
|
end
|
181
176
|
|
182
|
-
# Internal: Generate Welcome Page
|
183
177
|
def generate_welcome_page
|
184
178
|
copy_file 'app/controllers/welcome_controller.rb', 'app/controllers/welcome_controller.rb'
|
185
179
|
template 'app/views/welcome/index.html.haml.erb', 'app/views/welcome/index.html.haml', force: true
|
@@ -206,12 +200,6 @@ config.action_mailer.delivery_method = :smtp
|
|
206
200
|
|
207
201
|
private
|
208
202
|
|
209
|
-
# Internal: Set action mailer hostname
|
210
|
-
#
|
211
|
-
# rail_env - rails env like development, text, production
|
212
|
-
# host - domain.dev, domain.com or example.com
|
213
|
-
#
|
214
|
-
# Returns nothing
|
215
203
|
def action_mailer_host(rails_env, host)
|
216
204
|
|
217
205
|
config = <<-RUBY
|
@@ -222,25 +210,16 @@ config.action_mailer.delivery_method = :smtp
|
|
222
210
|
configure_environment(rails_env, config)
|
223
211
|
end
|
224
212
|
|
225
|
-
# Internal: Set configure environment
|
226
|
-
#
|
227
|
-
# rail_env - rails env like development, text, production
|
228
|
-
# config - config string which will add to rails_env file
|
229
|
-
#
|
230
|
-
# Return nothing
|
231
213
|
def configure_environment(rails_env, config)
|
232
214
|
inject_into_file("config/environments/#{rails_env}.rb", "\n\n #{config}", before: "\nend")
|
233
215
|
end
|
234
216
|
|
235
|
-
# Setup strong params for devise
|
236
217
|
def generate_devise_strong_parameters(model_name)
|
237
218
|
create_sanitizer_lib(model_name)
|
238
219
|
create_sanitizer_initializer(model_name)
|
239
220
|
devise_parameter_sanitizer(model_name)
|
240
221
|
end
|
241
222
|
|
242
|
-
|
243
|
-
# Internal: Create devise ParameterSanitizer library
|
244
223
|
def create_sanitizer_lib(model_name)
|
245
224
|
create_file "lib/#{model_name.parameterize}_sanitizer.rb", <<-CODE
|
246
225
|
class #{model_name.classify}::ParameterSanitizer < Devise::ParameterSanitizer
|
@@ -252,7 +231,6 @@ end
|
|
252
231
|
CODE
|
253
232
|
end
|
254
233
|
|
255
|
-
# Internal: Create devise ParameterSanitizer library initializer
|
256
234
|
def create_sanitizer_initializer(model_name)
|
257
235
|
path = "#"
|
258
236
|
path << "{Rails.application.root}"
|
@@ -262,7 +240,6 @@ require "#{path}"
|
|
262
240
|
CODE
|
263
241
|
end
|
264
242
|
|
265
|
-
# Internal: Add devise_parameter_sanitizer method to app/controller/applications_controller.rb
|
266
243
|
def devise_parameter_sanitizer(model_name)
|
267
244
|
inject_into_file 'app/controllers/application_controller.rb', :after => 'protect_from_forgery with: :exception' do <<-CODE
|
268
245
|
|
@@ -279,7 +256,6 @@ require "#{path}"
|
|
279
256
|
end
|
280
257
|
end
|
281
258
|
|
282
|
-
#Internal: Create namespace with dashboard resource in routes.rb
|
283
259
|
def create_namespace_routing(namespace)
|
284
260
|
inject_into_file 'config/routes.rb', after: "root to: 'welcome#index'" do <<-CODE
|
285
261
|
|
@@ -290,13 +266,11 @@ require "#{path}"
|
|
290
266
|
end
|
291
267
|
end
|
292
268
|
|
293
|
-
# Internal: Generate migration for add time_zone to User model
|
294
269
|
def add_time_zone_to_user
|
295
270
|
say 'Add time_zone to User model'
|
296
271
|
generate 'migration AddTimeZoneToUser time_zone:string -s'
|
297
272
|
end
|
298
273
|
|
299
|
-
# Internal: Add set_user_time_zone method to app/controller/applications_controller.rb
|
300
274
|
def add_set_user_time_zone_method_to_application_controller
|
301
275
|
say 'Add set_user_time_zone method to application controller'
|
302
276
|
inject_into_file 'app/controllers/application_controller.rb', :after => 'protected' do <<-CODE
|
@@ -315,4 +289,4 @@ require "#{path}"
|
|
315
289
|
end
|
316
290
|
end
|
317
291
|
end
|
318
|
-
end
|
292
|
+
end
|
@@ -1,28 +1,21 @@
|
|
1
1
|
require 'rails/generators'
|
2
2
|
require 'rails/generators/rails/app/app_generator'
|
3
3
|
|
4
|
-
module Cybele
|
5
|
-
|
6
|
-
# Public: This allows you to override entire operations, like the creation of the
|
7
|
-
# Gemfile_new, README, or JavaScript files, without needing to know exactly
|
8
|
-
# what those operations do so you can create another template action.
|
4
|
+
module Cybele
|
5
|
+
|
9
6
|
class AppGenerator < Rails::Generators::AppGenerator
|
10
7
|
|
11
|
-
# Internal: Default use postgresql
|
12
8
|
class_option :database, :type => :string, :aliases => '-d', :default => 'postgresql',
|
13
9
|
:desc => "Preconfigure for selected database (options: #{DATABASES.join('/')})"
|
14
10
|
|
15
|
-
# Internal: Default skip Test::Unit
|
16
11
|
class_option :skip_test_unit, :type => :boolean, :aliases => '-T', :default => true,
|
17
12
|
:desc => 'Skip Test::Unit files'
|
18
13
|
|
19
|
-
# Internal: Finish template
|
20
14
|
def finish_template
|
21
15
|
invoke :customization
|
22
16
|
super
|
23
17
|
end
|
24
18
|
|
25
|
-
# Internal: Customization template
|
26
19
|
def customization
|
27
20
|
invoke :customize_gemfile
|
28
21
|
invoke :setup_database
|
@@ -32,6 +25,9 @@ module Cybele #:nodoc:#
|
|
32
25
|
invoke :gitignore_files_and_folders
|
33
26
|
invoke :setup_bootstrap_sass_coffee
|
34
27
|
invoke :configure_mail_setting
|
28
|
+
invoke :setup_rspec
|
29
|
+
invoke :setup_capybara
|
30
|
+
invoke :setup_factory_girl
|
35
31
|
invoke :setup_simple_form
|
36
32
|
invoke :setup_exception_notification
|
37
33
|
invoke :setup_welcome_page
|
@@ -39,33 +35,28 @@ module Cybele #:nodoc:#
|
|
39
35
|
invoke :setup_time_zone
|
40
36
|
end
|
41
37
|
|
42
|
-
# Internal: Customize gemfile
|
43
38
|
def customize_gemfile
|
44
39
|
build :replace_gemfile
|
45
40
|
bundle_command 'install --binstubs=bin/stubs'
|
46
41
|
end
|
47
42
|
|
48
|
-
# Internal: Remove files don't need
|
49
43
|
def remove_files_we_dont_need
|
50
44
|
say 'Remove files we don\'t need'
|
51
45
|
build :remove_readme_rdoc
|
52
46
|
end
|
53
47
|
|
54
|
-
# Internal: Replace files
|
55
48
|
def replace_files
|
56
49
|
say 'Replace files'
|
57
50
|
build :replace_erb_with_haml
|
58
51
|
build :replace_database_yml
|
59
52
|
end
|
60
53
|
|
61
|
-
# Internal: Install gems
|
62
54
|
def install_gems
|
63
55
|
say 'Install gems'
|
64
56
|
say 'Install responder gem'
|
65
57
|
build :install_responder_gem
|
66
58
|
end
|
67
59
|
|
68
|
-
# Internal: Setup database
|
69
60
|
def setup_database
|
70
61
|
say 'Setting up database'
|
71
62
|
|
@@ -76,13 +67,11 @@ module Cybele #:nodoc:#
|
|
76
67
|
build :create_database
|
77
68
|
end
|
78
69
|
|
79
|
-
# Internal: Ignore files and folder
|
80
70
|
def gitignore_files_and_folders
|
81
71
|
build :setup_gitignore_files
|
82
72
|
build :setup_gitignore_folders
|
83
73
|
end
|
84
74
|
|
85
|
-
# Internal: Setup up bootstrap, sass, coffee
|
86
75
|
def setup_bootstrap_sass_coffee
|
87
76
|
say 'Setup bootstrap'
|
88
77
|
build :setup_asset_precompile
|
@@ -91,7 +80,6 @@ module Cybele #:nodoc:#
|
|
91
80
|
build :convert_application_css_to_sass
|
92
81
|
end
|
93
82
|
|
94
|
-
# Internal: Setup mail setting
|
95
83
|
def configure_mail_setting
|
96
84
|
say 'Setup mail settings'
|
97
85
|
build :configure_action_mailer
|
@@ -99,26 +87,37 @@ module Cybele #:nodoc:#
|
|
99
87
|
build :setup_letter_opener
|
100
88
|
end
|
101
89
|
|
102
|
-
|
90
|
+
def setup_rspec
|
91
|
+
say 'Generate rspec'
|
92
|
+
build :generate_rspec
|
93
|
+
end
|
94
|
+
|
95
|
+
def setup_capybara
|
96
|
+
say 'Generate capybara'
|
97
|
+
build :generate_capybara
|
98
|
+
end
|
99
|
+
|
100
|
+
def setup_factory_girl
|
101
|
+
say 'Generate factory girl'
|
102
|
+
build :generate_factory_girl
|
103
|
+
end
|
104
|
+
|
103
105
|
def setup_simple_form
|
104
106
|
say 'Generate simple form files'
|
105
107
|
build :generate_simple_form
|
106
108
|
end
|
107
109
|
|
108
|
-
# Internal: Setup exception notification
|
109
110
|
def setup_exception_notification
|
110
111
|
say 'Generate exception notification'
|
111
112
|
say 'Do not forget to configure config/initializers/exception_notification.rb file'
|
112
113
|
build :generate_exception_notification
|
113
114
|
end
|
114
115
|
|
115
|
-
# Internal: Setup Rails Config
|
116
116
|
def setup_rails_config
|
117
117
|
say 'Generate rails config'
|
118
118
|
build :generate_rails_config
|
119
119
|
end
|
120
120
|
|
121
|
-
# Internal: Setup Devise
|
122
121
|
def setup_devise
|
123
122
|
say 'Generate devise'
|
124
123
|
build :generate_devise_settings
|
@@ -127,32 +126,26 @@ module Cybele #:nodoc:#
|
|
127
126
|
build :generate_devise_views
|
128
127
|
end
|
129
128
|
|
130
|
-
# Internal: Setup Welcome Page
|
131
129
|
def setup_welcome_page
|
132
130
|
say 'Generate Welcome Page'
|
133
131
|
build :generate_welcome_page
|
134
132
|
end
|
135
133
|
|
136
|
-
|
137
134
|
def setup_hq_namespace
|
138
135
|
say 'Generate hq namespace'
|
139
136
|
build :generate_hq_namespace
|
140
137
|
end
|
141
138
|
|
142
|
-
# Internal: Setup timezone per user
|
143
139
|
def setup_time_zone
|
144
140
|
say 'Setup time zone'
|
145
141
|
build :set_time_zone
|
146
142
|
end
|
147
143
|
|
148
|
-
|
149
|
-
# Internal: Let's not: We'll bundle manually at the right spot.
|
150
144
|
def run_bundle
|
151
145
|
end
|
152
146
|
|
153
147
|
protected
|
154
148
|
|
155
|
-
# Internal: We need get_builder class
|
156
149
|
def get_builder_class
|
157
150
|
Cybele::AppBuilder
|
158
151
|
end
|
data/lib/cybele/version.rb
CHANGED
data/templates/cybele_Gemfile
CHANGED
@@ -21,6 +21,7 @@ gem 'will_paginate', '~> 3.0.4'
|
|
21
21
|
gem 'will_paginate-bootstrap', '~> 0.2.3'
|
22
22
|
gem 'will-paginate-i18n', '~> 0.1.13'
|
23
23
|
gem 'paperclip', '~> 3.5.1'
|
24
|
+
gem 'kangal', '~> 0.1.2'
|
24
25
|
|
25
26
|
group :doc do
|
26
27
|
gem 'sdoc', require: false
|
@@ -31,4 +32,8 @@ group :development, :test do
|
|
31
32
|
gem 'binding_of_caller'
|
32
33
|
gem 'letter_opener'
|
33
34
|
gem 'katip'
|
35
|
+
gem 'rspec-rails', '~> 2.14.0'
|
36
|
+
gem 'capybara', '~> 2.1.0'
|
37
|
+
gem 'shoulda-matchers', '~> 2.2.0'
|
38
|
+
gem 'factory_girl_rails', '~> 4.0'
|
34
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cybele
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- lab2023
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|