Class: ActsAsHocUser::HocUserGenerator

Inherits:
ActiveRecord::Generators::Base
  • Object
show all
Defined in:
lib/generators/acts_as_hoc_user/hoc_user_generator.rb

Overview

module Generators

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.source_rootObject



13
14
15
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 13

def self.source_root
  @source_root ||= File.expand_path('../templates', __FILE__)
end

Instance Method Details

#generate_migrationObject



18
19
20
21
22
23
24
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 18

def generate_migration
  template "initializer.rb", "config/initializers/acts_as_hoc_user.rb"
  template "hoc_user.rb.erb", "app/models/#{model_name}.rb"
  migration_template("create_hoc_user.rb.erb",
    "db/migrate/#{migration_file_name}",
    migration_version: migration_version)
end

#migration_class_nameObject



55
56
57
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 55

def migration_class_name
  migration_name.camelize
end

#migration_columsObject



30
31
32
33
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 30

def migration_colums
  return fields.map { |field| "t.#{field.split(":").second} :#{field.split(":").first}" } unless fields.nil?
  return []
end

#migration_file_nameObject



51
52
53
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 51

def migration_file_name
  "#{migration_name}.rb"
end

#migration_indexesObject



35
36
37
38
39
40
41
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 35

def migration_indexes
  return fields.map { |field|
    elems = field.split(":")
    elems.first if elems.count > 2
  }.compact unless fields.nil?
  return []
end

#migration_nameObject



47
48
49
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 47

def migration_name
  "create_#{name.underscore.pluralize}"
end

#migration_versionObject



59
60
61
62
63
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 59

def migration_version
  if Rails.version.start_with? "5"
    "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
  end
end

#model_class_nameObject



43
44
45
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 43

def model_class_name
  name.camelize
end

#model_nameObject



26
27
28
# File 'lib/generators/acts_as_hoc_user/hoc_user_generator.rb', line 26

def model_name
  name.underscore
end