class LinkedRails::ModelGenerator

Public Instance Methods

copy_files() click to toggle source
# File lib/generators/linked_rails/model/model_generator.rb, line 19
def copy_files # rubocop:disable Metrics/AbcSize
  template 'action_list.rb', File.join('app', 'actions', class_path, "#{file_name}_action_list.rb")
  template 'controller.rb', File.join('app', 'controllers', class_path, "#{plural_file_name}_controller.rb")
  template 'form.rb', File.join('app', 'forms', class_path, "#{file_name}_form.rb")
  template 'menu_list.rb', File.join('app', 'menus', class_path, "#{file_name}_menu_list.rb")
  template 'policy.rb', File.join('app', 'policies', class_path, "#{file_name}_policy.rb")
  template 'serializer.rb', File.join('app', 'serializers', class_path, "#{file_name}_serializer.rb")
end
create_migration_file() click to toggle source
# File lib/generators/linked_rails/model/model_generator.rb, line 10
def create_migration_file # rubocop:disable Metrics/AbcSize
  return unless options[:migration] && options[:parent].nil?

  if options[:indexes] == false
    attributes.each { |a| a.attr_options.delete(:index) if a.reference? && !a.has_index? }
  end
  migration_template 'create_table_migration.rb', File.join(db_migrate_path, "create_#{table_name}.rb")
end
insert_route() click to toggle source
# File lib/generators/linked_rails/model/model_generator.rb, line 28
def insert_route
  after = after_sorted_match(routes_path, /linked_resource\((\w+\))/)

  opts = after ? {after: after} : {before: 'end'}
  inject_into_file(routes_path, routes_line, opts)
end

Private Instance Methods

after_sorted_match(file, matcher, name = class_name) click to toggle source
# File lib/generators/linked_rails/model/model_generator.rb, line 37
def after_sorted_match(file, matcher, name = class_name)
  after = nil

  File.open(file).each do |line|
    match = line.match(matcher)
    after = line if match.try(:[], 1).present? && match[1] <= name
  end

  return if after == name

  after
end
routes_line() click to toggle source
# File lib/generators/linked_rails/model/model_generator.rb, line 50
def routes_line
  "  linked_resource(#{class_name})\n"
end
routes_path() click to toggle source
# File lib/generators/linked_rails/model/model_generator.rb, line 54
def routes_path
  File.join('config', 'routes.rb')
end