Top Level Namespace
Instance Method Summary collapse
- #create_admin_controller(type, temp_path) ⇒ Object
- #create_admin_views(type, temp_path) ⇒ Object
- #create_controller(type, temp_path) ⇒ Object
- #create_views(type, temp_path) ⇒ Object
- #overwrite_migration ⇒ Object
- #overwrite_model(type, temp_path) ⇒ Object
- #overwrite_routes ⇒ Object
- #print_manual(type) ⇒ Object
- #run_generator(get_type) ⇒ Object
Instance Method Details
#create_admin_controller(type, temp_path) ⇒ Object
1 2 3 4 5 6 7 8 9 10 |
# File 'lib/generators/controller.rb', line 1 def create_admin_controller(type, temp_path) # find the legal controller controller_path = "app/controllers/admin/legals_controller.rb" template_controller_path = "#{temp_path}/#{type}/admin_legals_controller.txt" new_controller_text = File.open(template_controller_path).read File.write(controller_path, new_controller_text) puts "++ Created -> #{controller_path}" end |
#create_admin_views(type, temp_path) ⇒ Object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/generators/views.rb', line 1 def create_admin_views(type, temp_path) admin_view_dir_path = 'app/views/admin/legals/' # create directory for legal views in admin Dir.mkdir admin_view_dir_path # find all template views template_views_path = "#{temp_path}/#{type}/admin_views/" Dir.entries(template_views_path).each do |template| next if template == "." or template == ".." new_text = File.open("#{template_views_path}#{template}").read new_file_name = "#{admin_view_dir_path}#{template.split(".")[0]}.html.erb" File.write(new_file_name, new_text) puts "++ Created -> #{new_file_name}" end end |
#create_controller(type, temp_path) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/generators/controller.rb', line 12 def create_controller(type, temp_path) # find the legal controller controller_path = "app/controllers/legals_controller.rb" template_controller_path = "#{temp_path}/#{type}/legals_controller.txt" new_controller_text = File.open(template_controller_path).read File.write(controller_path, new_controller_text) puts "++ Created -> #{controller_path}" end |
#create_views(type, temp_path) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/generators/views.rb', line 20 def create_views(type, temp_path) view_dir_path = 'app/views/legals/' # create directory for legal views Dir.mkdir view_dir_path # find all template views template_views_path = "#{temp_path}/#{type}/views/" Dir.entries(template_views_path).each do |template| next if template == "." or template == ".." new_text = File.open("#{template_views_path}#{template}").read new_file_name = "#{view_dir_path}#{template.split(".")[0]}.html.erb" File.write(new_file_name, new_text) puts "++ Created -> #{new_file_name}" end end |
#overwrite_migration ⇒ Object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/generators/migration.rb', line 1 def overwrite_migration # find the legal migration migrations_path = "db/migrate/" migration_path = "#{migrations_path}#{Dir.entries(migrations_path).grep(/_create_legals.rb$/).first}" new_migration_text = "" migration = File.open(migration_path).read migration.each_line do |line| # add detault: true to migration if line.include?("t.boolean :is_visible") new_migration_text += " t.boolean :is_visible, default: true \n" else new_migration_text += line end end # rewrite the migration file File.write(migration_path, new_migration_text) puts "++ Changed -> #{migration_path}" end |
#overwrite_model(type, temp_path) ⇒ Object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/generators/model.rb', line 1 def overwrite_model(type, temp_path) # find the legal model model_path = "app/models/legal.rb" template_model_path = "#{temp_path}/#{type}/legal.txt" new_model_text = File.open(template_model_path).read File.write(model_path, new_model_text) puts "++ Changed -> #{model_path}" if type == "multilingual" model_translation_path = "app/models/legal_translation.rb" template_model_translation_path = "#{temp_path}/#{type}/legal_translation.txt" new_model_translation_text = File.open(template_model_translation_path).read File.write(model_translation_path, new_model_translation_text) puts "++ Changed -> #{model_translation_path}" end end |
#overwrite_routes ⇒ Object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/generators/routes.rb', line 1 def overwrite_routes # find the routes route_path = "config/routes.rb" # text that will overwrite namespace :admin do to_add = """ resources :legals, only: [:show] namespace :admin do resources :legals, except: [:show] do collection { patch :sort } end """ new_routes_text = "" routes = File.open(route_path).read routes.each_line do |line| # add routes for legal if line.include?("namespace :admin do") new_routes_text += to_add else new_routes_text += line end end # rewrite the routes file File.write(route_path, new_routes_text) puts "++ Changed -> #{route_path}" end |
#print_manual(type) ⇒ Object
1 2 3 4 5 6 7 8 9 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 |
# File 'lib/generators/manual.rb', line 1 def print_manual(type) puts "" puts "++ Add locales" puts """ admin_nav: legals: \"Legal Pages\" activerecord: attributes: legal: is_visible: \"Page is visible?\" title: \"Title\" content: \"Content\" created_at: \"Created at\" errors: models: legal: attributes: title: blank: \"Title can't be blank!\" content: blank: \"Content can't be blank!\" """ puts "" puts "++ Add to app/views/layouts/admin/_navigation.html.erb" puts """ <% if current_admin.permitted?(:legals) %> <%= active_link_to admin_legals_path, class: 'sidebar__link', active: :inclusive, class_active: 'active-link' do %> <%= inline_svg \"icons/nav/court.svg\", class: 'sidebar__icon', width: 16, height: 16 %> <%= t(\"admin_nav.legals\") %> <% end %> <% end %> """ if type == "multilingual" puts "" puts "++ Maybe you are missing some helpers..." puts """ look here: https://gitlab.com/bamboolab/b4b/-/blob/master/app/helpers/admin/language_helper.rb """ end puts "" puts "++ Run" puts """ rake db:migrate """ end |
#run_generator(get_type) ⇒ Object
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 |
# File 'lib/bamboo_legals.rb', line 10 def run_generator(get_type) if get_type == "monolingual" or get_type == "mono" type = "monolingual" `rails g model Legal title:string content:text is_visible:boolean position:integer` elsif get_type == "multilingual" or get_type == "multi" type = "multilingual" `rails g model Legal is_visible:boolean position:integer` `rails g model LegalTranslation title:string content:text language_id:string position:integer legal_id:integer` end if type # get path to /home/mislav/.rvm/gems/ruby-2.3.1/gems/bamboo_legals-0.1.1/lib/templates temp_path = "#{File.dirname(__FILE__)}/templates" overwrite_migration overwrite_model(type, temp_path) create_admin_controller(type, temp_path) create_controller(type, temp_path) create_admin_views(type, temp_path) create_views(type, temp_path) overwrite_routes print_manual(type) end end |