Class: ReviseAuth::Generators::ModelGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
Rails::Generators::ResourceHelpers
Defined in:
lib/generators/revise_auth/model_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(args, *options) ⇒ ModelGenerator

Returns a new instance of ModelGenerator.



13
14
15
# File 'lib/generators/revise_auth/model_generator.rb', line 13

def initialize(args, *options)
  super
end

Instance Method Details

#add_revise_auth_modelObject



27
28
29
30
31
32
33
34
# File 'lib/generators/revise_auth/model_generator.rb', line 27

def add_revise_auth_model
  prepend_to_file "app/models/api_token.rb", "require 'revise_auth-jets'\n"
  inject_into_class "app/models/api_token.rb", "ApiToken", "  include ReviseAuth::ApiModel\n"

  prepend_to_file model_path, "require 'revise_auth-jets'\n"
  inject_into_class model_path, class_name, "  include ReviseAuth::Model\n"
  inject_into_class model_path, class_name, "  has_many :api_tokens, dependent: :destroy\n"
end

#add_uniq_to_email_indexObject



36
37
38
39
40
41
42
# File 'lib/generators/revise_auth/model_generator.rb', line 36

def add_uniq_to_email_index
  puts migration_path
  puts name.downcase.pluralize
  insert_into_file migration_path, after: "#{name.downcase.pluralize}, :email", force: true do
    ", unique: true"
  end
end

#doneObject



44
45
46
# File 'lib/generators/revise_auth/model_generator.rb', line 44

def done
  readme "README" if behavior == :invoke
end

#generate_modelObject



17
18
19
20
21
22
23
24
25
# File 'lib/generators/revise_auth/model_generator.rb', line 17

def generate_model
  model_attributess = model_attributes.join(", ").delete(",")
  puts "Adding #{name}"
  puts "jets g model #{name} #{model_attributess}"
  system "jets g model #{name} #{model_attributess}"
  puts "Adding ApiToken"
  system "jets g model ApiTokens #{name.downcase}:references token:string:uniq name:string metadata:jsonb transient:boolean last_used_at:datetime expires_at:datetime"
  # generate :model, name, *model_attributes
end