Class: WristbandGenerator

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



63
64
65
66
67
# File 'lib/generators/wristband/wristband_generator.rb', line 63

def self.next_migration_number(dirname)
  orm = Rails.configuration.generators.options[:rails][:orm]
  require "rails/generators/#{orm}"
  "#{orm.to_s.camelize}::Generators::Base".constantize.next_migration_number(dirname)
end

Instance Method Details

#generate_controllersObject



12
13
14
15
16
17
18
# File 'lib/generators/wristband/wristband_generator.rb', line 12

def generate_controllers
  puts "\t== Controllers =="
  copy_file 'app/controllers/application_controller.rb', 'app/controllers/application_controller.rb'
  copy_file 'app/controllers/users_controller.rb', 'app/controllers/users_controller.rb'
  copy_file 'app/controllers/sessions_controller.rb', 'app/controllers/sessions_controller.rb'
  copy_file 'app/controllers/passwords_controller.rb', 'app/controllers/passwords_controller.rb'
end

#generate_migrationObject



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/generators/wristband/wristband_generator.rb', line 50

def generate_migration
  puts "\t== Migration =="
  destination   = File.expand_path('db/migrate/01_create_users_table.rb', self.destination_root)
  migration_dir = File.dirname(destination)
  destination   = self.class.migration_exists?(migration_dir, 'create_users_table')

  if destination
    puts "\e[0m\e[31mFound existing create_users_table.rb migration. Remove it if you want to regenerate.\e[0m"
  else
    migration_template 'db/migrate/01_create_users_table.rb', 'db/migrate/create_users_table.rb'
  end
end

#generate_modelsObject



6
7
8
9
10
# File 'lib/generators/wristband/wristband_generator.rb', line 6

def generate_models
  puts "\t== Models =="
  copy_file 'app/models/user.rb', 'app/models/user.rb'
  copy_file 'app/models/session_user.rb', 'app/models/session_user.rb'
end

#generate_testsObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/generators/wristband/wristband_generator.rb', line 35

def generate_tests
  puts "\t== Test helper and Dummies =="
  copy_file 'test/test_helper.rb', 'test/test_helper.rb'
  copy_file 'test/dummy/user.rb', 'test/dummy/user.rb'
  
  puts "\t== Unit tests =="
  copy_file 'test/unit/user_test.rb', 'test/unit/user_test.rb'
  copy_file 'test/unit/session_user_test.rb', 'test/unit/session_user_test.rb'
  copy_file 'test/unit/user_mailer_test.rb', 'test/unit/user_mailer_test.rb'
  
  puts "\t== Functional tests =="
  copy_file 'test/functional/sessions_controller_test.rb', 'test/functional/sessions_controller_test.rb'
  copy_file 'test/functional/passwords_controller_test.rb', 'test/functional/passwords_controller_test.rb'
end

#generate_user_mailerObject



28
29
30
31
32
33
# File 'lib/generators/wristband/wristband_generator.rb', line 28

def generate_user_mailer
  puts "\t== User Mailer =="
  copy_file 'app/mailers/user_mailer.rb', 'app/mailers/user_mailer.rb'
  copy_file'app/views/user_mailer/password_reset.html.erb', 'app/views/user_mailer/password_reset.html.erb'
  copy_file 'app/views/user_mailer/password_reset.text.erb', 'app/views/user_mailer/password_reset.text.erb'
end

#generate_viewsObject



20
21
22
23
24
25
26
# File 'lib/generators/wristband/wristband_generator.rb', line 20

def generate_views
  puts "\t== Views =="
  copy_file 'app/views/users/show.html.erb', 'app/views/users/show.html.erb'
  copy_file 'app/views/sessions/new.html.erb', 'app/views/sessions/new.html.erb'
  copy_file 'app/views/passwords/new.html.erb', 'app/views/passwords/new.html.erb'
  copy_file 'app/views/passwords/edit.html.erb', 'app/views/passwords/edit.html.erb'
end