Class: RedactorRails::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/redactor_rails/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object

Implement the required interface for Rails::Generators::Migration.



18
19
20
# File 'lib/generators/redactor_rails/install_generator.rb', line 18

def self.next_migration_number(dirname)
  Time.now.strftime("%Y%m%d%H%M%S")
end

Instance Method Details

#copy_migrationObject



27
28
29
30
31
32
33
# File 'lib/generators/redactor_rails/install_generator.rb', line 27

def copy_migration
  @database = options["database"] || detect_database
  unless @database.in?([nil, "postgresql", "postgresql-jsonb", "mysql", "sqlite"])
    raise Thor::Error, "Unknown database option"
  end
  migration_template "active_record_redactor_assets_migration.rb", "db/migrate/create_redactor_assets.rb", migration_version: migration_version
end

#create_configObject



48
49
50
# File 'lib/generators/redactor_rails/install_generator.rb', line 48

def create_config
  template "config.js", File.join('app/assets/javascripts/redactor_rails', "config.js")
end

#detect_databaseObject



52
53
54
55
56
57
58
59
# File 'lib/generators/redactor_rails/install_generator.rb', line 52

def detect_database
  postgresql_version = ActiveRecord::Base.connection.send(:postgresql_version) rescue 0
  if postgresql_version >= 90400
    "postgresql-jsonb"
  elsif postgresql_version >= 90200
    "postgresql"
  end
end

#generate_modelObject



36
37
38
39
40
41
42
43
44
45
46
# File 'lib/generators/redactor_rails/install_generator.rb', line 36

def generate_model
  [:asset, :picture, :document].each do |filename|
    template "active_record_models/#{filename}.rb",
    File.join('app/models', 'redactor_rails', "#{filename}.rb")
  end

  [:picture, :document].each do |filename|
    template "uploaders/redactor_rails_#{filename}_uploader.rb",
      File.join("app/uploaders", 'redactor_rails', "#{filename}_uploader.rb")
  end
end

#migration_versionObject



61
62
63
64
65
# File 'lib/generators/redactor_rails/install_generator.rb', line 61

def migration_version
  if ActiveRecord::VERSION::MAJOR >= 5
    "[#{ActiveRecord::VERSION::MAJOR}.#{ActiveRecord::VERSION::MINOR}]"
  end
end