Class: Sufia::Models::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Sufia::Models::InstallGenerator
- Includes:
- Rails::Generators::Migration
- Defined in:
- lib/generators/sufia/models/install_generator.rb
Class Method Summary collapse
-
.next_migration_number(path) ⇒ Object
Implement the required interface for Rails::Generators::Migration.
Instance Method Summary collapse
- #banner ⇒ Object
- #configure_usage_stats ⇒ Object
-
#copy_migrations ⇒ Object
Setup the database migrations.
- #create_configuration_files ⇒ Object
-
#full_text_indexing ⇒ Object
Sets up full-text indexing (Solr config + jars).
-
#inject_sufia_user_behavior ⇒ Object
Add behaviors to the user model.
- #install_blacklight_gallery ⇒ Object
- #install_mailboxer ⇒ Object
Class Method Details
.next_migration_number(path) ⇒ Object
Implement the required interface for Rails::Generators::Migration. taken from github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/generators/sufia/models/install_generator.rb', line 24 def self.next_migration_number(path) if @prev_migration_nr @prev_migration_nr += 1 else if last_migration = Dir[File.join(path, '*.rb')].sort.last @prev_migration_nr = last_migration.sub(File.join(path, '/'), '').to_i + 1 else @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i end end @prev_migration_nr.to_s end |
Instance Method Details
#banner ⇒ Object
37 38 39 |
# File 'lib/generators/sufia/models/install_generator.rb', line 37 def say_status("warning", "GENERATING SUFIA MODELS", :yellow) end |
#configure_usage_stats ⇒ Object
91 92 93 |
# File 'lib/generators/sufia/models/install_generator.rb', line 91 def configure_usage_stats generate 'sufia:models:usagestats' end |
#copy_migrations ⇒ Object
Setup the database migrations
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/generators/sufia/models/install_generator.rb', line 42 def copy_migrations # Can't get this any more DRY, because we need this order. [ "acts_as_follower_migration.rb", "add_social_to_users.rb", "create_single_use_links.rb", "add_ldap_attrs_to_user.rb", "add_avatars_to_users.rb", "create_checksum_audit_logs.rb", "create_version_committers.rb", "add_groups_to_users.rb", "create_local_authorities.rb", "create_trophies.rb", 'add_linkedin_to_users.rb', 'create_tinymce_assets.rb', 'create_content_blocks.rb', 'create_featured_works.rb' ].each do |file| better_migration_template file end end |
#create_configuration_files ⇒ Object
77 78 79 80 81 82 83 84 85 |
# File 'lib/generators/sufia/models/install_generator.rb', line 77 def create_configuration_files append_file 'config/initializers/mime_types.rb', "\nMime::Type.register 'application/x-endnote-refer', :endnote", {verbose: false } copy_file 'config/sufia.rb', 'config/initializers/sufia.rb' copy_file 'config/redis.yml', 'config/redis.yml' copy_file 'config/redis_config.rb', 'config/initializers/redis_config.rb' copy_file 'config/resque_admin.rb', 'config/initializers/resque_admin.rb' copy_file 'config/resque_config.rb', 'config/initializers/resque_config.rb' end |
#full_text_indexing ⇒ Object
Sets up full-text indexing (Solr config + jars)
100 101 102 |
# File 'lib/generators/sufia/models/install_generator.rb', line 100 def full_text_indexing generate "sufia:models:fulltext" end |
#inject_sufia_user_behavior ⇒ Object
Add behaviors to the user model
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/generators/sufia/models/install_generator.rb', line 65 def inject_sufia_user_behavior file_path = "app/models/#{model_name.underscore}.rb" if File.exists?(file_path) inject_into_file file_path, after: /include Hydra\:\:User.*$/ do "# Connects this user object to Sufia behaviors. " + "\n include Sufia::User\n" end else puts " \e[31mFailure\e[0m Sufia requires a user object. This generators assumes that the model is defined in the file #{file_path}, which does not exist. If you used a different name, please re-run the generator and provide that name as an argument. Such as \b rails -g sufia client" end end |
#install_blacklight_gallery ⇒ Object
95 96 97 |
# File 'lib/generators/sufia/models/install_generator.rb', line 95 def install_blacklight_gallery generate "blacklight_gallery:install" end |
#install_mailboxer ⇒ Object
87 88 89 |
# File 'lib/generators/sufia/models/install_generator.rb', line 87 def install_mailboxer generate "mailboxer:install" end |