Class: Wcc::ModelGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Wcc::ModelGenerator
- Defined in:
- lib/generators/wcc/model_generator.rb
Constant Summary collapse
- VALID_MODELS =
Dir.glob("#{__dir__}/templates/*") .select { |f| File.directory? f } .map { |f| File.basename f } .sort .freeze
Instance Method Summary collapse
- #create_model_migrations ⇒ Object
- #drop_model_overrides_in_app_models ⇒ Object
- #ensure_initializer_exists ⇒ Object
- #ensure_migration_tools_installed ⇒ Object
- #ensure_wrapper_script_in_bin_dir ⇒ Object
-
#initialize ⇒ ModelGenerator
constructor
A new instance of ModelGenerator.
Constructor Details
#initialize ⇒ ModelGenerator
Returns a new instance of ModelGenerator.
15 16 17 18 19 20 21 |
# File 'lib/generators/wcc/model_generator.rb', line 15 def initialize(*) super return if VALID_MODELS.include?(singular) raise ArgumentError, "Model must be one of #{VALID_MODELS.to_sentence}" end |
Instance Method Details
#create_model_migrations ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/generators/wcc/model_generator.rb', line 71 def create_model_migrations copy_file "#{singular}/migrations/generated_add_#{plural}.ts", "db/migrate/#{}01_generated_add_#{plural}.ts" Dir.glob("#{__dir__}/templates/#{singular}/migrations/*.rb").each do |f| copy_file f, "db/migrate/#{}_#{File.basename(f)}" end end |
#drop_model_overrides_in_app_models ⇒ Object
80 81 82 |
# File 'lib/generators/wcc/model_generator.rb', line 80 def drop_model_overrides_in_app_models directory "#{singular}/models", 'app/models' end |
#ensure_initializer_exists ⇒ Object
65 66 67 68 69 |
# File 'lib/generators/wcc/model_generator.rb', line 65 def ensure_initializer_exists return if inside('config/initializers') { File.exist?('wcc_contentful.rb') } copy_file 'wcc_contentful.rb', 'config/initializers/wcc_contentful.rb' end |
#ensure_migration_tools_installed ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/generators/wcc/model_generator.rb', line 23 def ensure_migration_tools_installed in_root do run 'npm init -y' unless File.exist?('package.json') package = JSON.parse(File.read('package.json')) deps = package['dependencies'] unless deps.try(:[], '@watermarkchurch/contentful-migration').present? run 'npm install --save @watermarkchurch/contentful-migration ts-node ' \ 'typescript contentful-export' end end end |
#ensure_wrapper_script_in_bin_dir ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/generators/wcc/model_generator.rb', line 36 def ensure_wrapper_script_in_bin_dir copy_file 'contentful_shell_wrapper', 'bin/contentful' unless inside('bin') { File.exist?('contentful') } if inside('bin') { File.exist?('release') } release = inside('bin') { File.read('release') } unless release.include?('contentful migrate') insert_into_file('bin/release', after: 'bundle exec rake db:migrate') do <<~HEREDOC DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" $DIR/contentful migrate -y HEREDOC end end else copy_file 'release', 'bin/release' end if in_root { File.exist?('Procfile') } procfile = in_root { File.read('Procfile') } unless procfile.include?('release:') insert_into_file('Procfile') do 'release: bin/release' end end else copy_file 'Procfile' end end |