Class: PaidUp::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Generators::Utils, Rails::Generators::Migration
Defined in:
lib/generators/paid_up/install/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Generators::Utils

#ask_for, #output

Class Method Details

.next_migration_number(dirname) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/generators/paid_up/install/install_generator.rb', line 53

def self.next_migration_number(dirname)
  if ActiveRecord::Base.timestamped_migrations
    unless @prev_migration_nr
      @prev_migration_nr = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
    else
      @prev_migration_nr += 1
    end
    @prev_migration_nr.to_s
  else
    "%.3d" % (current_migration_number(dirname) + 1)
  end
end

Instance Method Details

#add_initializerObject



31
32
33
34
# File 'lib/generators/paid_up/install/install_generator.rb', line 31

def add_initializer
  output "Next, you'll need an initializer.  This is where you put your configuration options.", :magenta
  template "initializer.rb", "config/initializers/paid_up.rb"
end

#add_migrationsObject



36
37
38
39
# File 'lib/generators/paid_up/install/install_generator.rb', line 36

def add_migrations
  output "Next come migrations.", :magenta
  rake 'paid_up:install:migrations'
end

#add_routeObject



47
48
49
50
51
# File 'lib/generators/paid_up/install/install_generator.rb', line 47

def add_route
  output "Adding PaidUp to your routes.rb file", :magenta
  gsub_file "config/routes.rb", /mount PaidUp::Engine => '\/.*', :as => 'paid_up'/, ''
  route("mount PaidUp::Engine => '/', :as => 'paid_up'")
end

#add_to_modelObject



41
42
43
44
45
# File 'lib/generators/paid_up/install/install_generator.rb', line 41

def add_to_model
  output "Adding PaidUp to your User model", :magenta
  gsub_file "app/models/user.rb", /^\n  subscriber$/, ''
  inject_into_file "app/models/user.rb", "\n  subscriber", after: "class User < ActiveRecord::Base"
end

#helloObject



9
10
11
# File 'lib/generators/paid_up/install/install_generator.rb', line 9

def hello
  output "PaidUp Installer will now install itself", :magenta
end

#install_cancanObject



21
22
23
24
# File 'lib/generators/paid_up/install/install_generator.rb', line 21

def install_cancan
  output "For authorization, PaidUp uses CanCan. Let's get you started with a customizable ability.rb file.", :magenta
  template "ability.rb", "app/models/ability.rb"
end

#install_deviseObject

all public methods in here will be run in order



15
16
17
18
19
# File 'lib/generators/paid_up/install/install_generator.rb', line 15

def install_devise
  output "To start with, Devise is used to authenticate users. No need to install it separately, I'll do that now.", :magenta
  generate("devise:install")
  generate("devise User")
end

#install_rolifyObject



26
27
28
29
# File 'lib/generators/paid_up/install/install_generator.rb', line 26

def install_rolify
  output "To provide varying roles for Users, we'll use Rolify. Let's set that up now.", :magenta
  generate("rolify", "Role User")
end