Class: Sorcery::Generators::InstallGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object

Define the next_migration_number method (necessary for the migration_template method to work)



60
61
62
63
64
65
66
67
# File 'lib/generators/sorcery/install_generator.rb', line 60

def self.next_migration_number(dirname)
  if ActiveRecord::Base.timestamped_migrations
    sleep 1 # make sure each time we get a different timestamp
    Time.new.utc.strftime("%Y%m%d%H%M%S")
  else
    "%.3d" % (current_migration_number(dirname) + 1)
  end
end

Instance Method Details

#configure_initializer_fileObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/generators/sorcery/install_generator.rb', line 24

def configure_initializer_file
  # Add submodules to the initializer file.
  if submodules
    submodule_names = submodules.collect{ |submodule| ':' + submodule }

    gsub_file "config/initializers/sorcery.rb", /submodules = \[.*\]/ do |str|
      current_submodule_names = (str =~ /\[(.*)\]/ ? $1 : '').delete(' ').split(',')
      "submodules = [#{(current_submodule_names | submodule_names).join(', ')}]"
    end
  end

  # Generate the model and add 'authenticates_with_sorcery!' unless you passed --migrations
  unless options[:migrations]
    generate "model #{model_class_name} --skip-migration"
    insert_into_file "app/models/#{model_class_name.underscore}.rb", "  authenticates_with_sorcery!\n", :after => "class #{model_class_name} < ActiveRecord::Base\n"
  end
end

#copy_initializer_fileObject

Copy the initializer file to config/initializers folder.



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

def copy_initializer_file
  template "initializer.rb", "config/initializers/sorcery.rb" unless options[:migrations]
end

#copy_migration_filesObject

Copy the migrations files to db/migrate folder



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/generators/sorcery/install_generator.rb', line 43

def copy_migration_files
  # Copy core migration file in all cases except when you pass --migrations.
  return unless defined?(Sorcery::Generators::InstallGenerator::ActiveRecord)
  migration_template "migration/core.rb", "db/migrate/sorcery_core.rb" unless options[:migrations]

  if submodules
    submodules.each do |submodule|
      unless submodule == "http_basic_auth" || submodule == "session_timeout"
        migration_template "migration/#{submodule}.rb", "db/migrate/sorcery_#{submodule}.rb"
      end
    end
  end
  

end