class Rails::Generators::ChannelGenerator

def create_channel_file

def create_channel_file
  template "channel.rb", File.join("app/channels", class_path, "#{file_name}_channel.rb")
  if options[:assets]
    if behavior == :invoke
      template "javascript/index.js", "app/javascript/channels/index.js"
      template "javascript/consumer.js", "app/javascript/channels/consumer.js"
    end
    js_template "javascript/channel", File.join("app/javascript/channels", class_path, "#{file_name}_channel")
  end
  generate_application_cable_files
end

def file_name

def file_name
  @_file_name ||= super.sub(/_channel\z/i, "")
end

def generate_application_cable_files

FIXME: Change these files to symlinks once RubyGems 2.5.0 is required.
def generate_application_cable_files
  return if behavior != :invoke
  files = [
    "application_cable/channel.rb",
    "application_cable/connection.rb"
  ]
  files.each do |name|
    path = File.join("app/channels/", name)
    template(name, path) if !File.exist?(path)
  end
end