Class: Sufia::Models::InstallGenerator

Inherits:
AbstractMigrationGenerator show all
Defined in:
lib/generators/sufia/models/install_generator.rb

Instance Method Summary collapse

Methods inherited from AbstractMigrationGenerator

next_migration_number

Instance Method Details



20
21
22
# File 'lib/generators/sufia/models/install_generator.rb', line 20

def banner
  say_status("info", "GENERATING SUFIA MODELS", :blue)
end

#cached_statsObject

Sets up cached usage stats



95
96
97
# File 'lib/generators/sufia/models/install_generator.rb', line 95

def cached_stats
  generate 'sufia:models:cached_stats'
end

#clamavObject

Adds clamav initializtion



110
111
112
# File 'lib/generators/sufia/models/install_generator.rb', line 110

def clamav
  generate 'sufia:models:clamav'
end

#configure_usage_statsObject



80
81
82
# File 'lib/generators/sufia/models/install_generator.rb', line 80

def configure_usage_stats
  generate 'sufia:models:usagestats'
end

#copy_migrationsObject

Setup the database migrations



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/generators/sufia/models/install_generator.rb', line 25

def copy_migrations
  [
    "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',
    'add_external_key_to_content_blocks.rb'
  ].each do |file|
    better_migration_template file
  end
end

#create_collectionObject



72
73
74
# File 'lib/generators/sufia/models/install_generator.rb', line 72

def create_collection
  copy_file 'app/models/collection.rb', 'app/models/collection.rb'
end

#create_configuration_filesObject



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/generators/sufia/models/install_generator.rb', line 60

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/resque-pool.yml', 'config/resque-pool.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'
  copy_file 'config/resque.rake', 'lib/tasks/resque.rake'
end

#full_text_indexingObject

Sets up full-text indexing (Solr config + jars)



85
86
87
# File 'lib/generators/sufia/models/install_generator.rb', line 85

def full_text_indexing
  generate "sufia:models:fulltext"
end

#inject_sufia_user_behaviorObject

Add behaviors to the user model



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/generators/sufia/models/install_generator.rb', line 48

def inject_sufia_user_behavior
  file_path = "app/models/#{model_name.underscore}.rb"
  if File.exist?(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_mailboxerObject



76
77
78
# File 'lib/generators/sufia/models/install_generator.rb', line 76

def install_mailboxer
  generate "mailboxer:install"
end

#minimagick_configObject

Add mini-magick configuration



115
116
117
# File 'lib/generators/sufia/models/install_generator.rb', line 115

def minimagick_config
  generate 'sufia:models:minimagick_config'
end

#orcid_fieldObject

Adds orcid field to user model



100
101
102
# File 'lib/generators/sufia/models/install_generator.rb', line 100

def orcid_field
  generate 'sufia:models:orcid_field'
end

#proxiesObject

Sets up proxies and transfers



90
91
92
# File 'lib/generators/sufia/models/install_generator.rb', line 90

def proxies
  generate "sufia:models:proxies"
end

#user_statsObject

Adds user stats-related migration & methods



105
106
107
# File 'lib/generators/sufia/models/install_generator.rb', line 105

def user_stats
  generate 'sufia:models:user_stats'
end