Class: Hyrax::ModelsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/hyrax/models_generator.rb

Instance Method Summary collapse

Instance Method Details


10
11
12
# File 'lib/generators/hyrax/models_generator.rb', line 10

def banner
  say_status('info', 'GENERATING HYRAX MODELS', :blue)
end

#clamavObject

Adds clamav initializtion


49
50
51
# File 'lib/generators/hyrax/models_generator.rb', line 49

def clamav
  generate 'hyrax:clamav'
end

#copy_migrationsObject

Setup the database migrations


15
16
17
# File 'lib/generators/hyrax/models_generator.rb', line 15

def copy_migrations
  rake 'hyrax:install:migrations'
end

#create_collectionObject

rubocop:enable Metrics/MethodLength


38
39
40
41
# File 'lib/generators/hyrax/models_generator.rb', line 38

def create_collection
  copy_file 'app/models/collection.rb', 'app/models/collection.rb'
  copy_file 'spec/models/collection_spec.rb', 'spec/models/collection_spec.rb' if rspec_installed?
end

#create_file_setObject


43
44
45
46
# File 'lib/generators/hyrax/models_generator.rb', line 43

def create_file_set
  copy_file 'app/models/file_set.rb', 'app/models/file_set.rb'
  copy_file 'spec/models/file_set_spec.rb', 'spec/models/file_set_spec.rb' if rspec_installed?
end

#inject_user_behaviorObject

Add behaviors to the user model


20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/generators/hyrax/models_generator.rb', line 20

def inject_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
      "\n  # Connects this user object to Hyrax behaviors." \
      "\n  include Hyrax::User" \
      "\n  include Hyrax::UserUsageStats\n"
    end
  else
    puts "     \e[31mFailure\e[0m  Hyrax requires a user object. This " \
         "generator 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 hyrax:models client"
  end
end