class Rails::Generators::ChannelGenerator

Public Instance Methods

create_channel_file() click to toggle source
# File lib/rails/generators/channel/channel_generator.rb, line 14
def create_channel_file
  template "channel.rb", File.join("app/channels", class_path, "#{file_name}_channel.rb")

  if options[:assets]
    if behavior == :invoke
      template "assets/cable.js", "app/assets/javascripts/cable.js"
    end

    js_template "assets/channel", File.join("app/assets/javascripts/channels", class_path, "#{file_name}")
  end

  generate_application_cable_files
end

Private Instance Methods

file_name() click to toggle source
Calls superclass method
# File lib/rails/generators/channel/channel_generator.rb, line 29
def file_name
  @_file_name ||= super.gsub(/_channel/i, "")
end
generate_application_cable_files() click to toggle source

FIXME: Change these files to symlinks once RubyGems 2.5.0 is required.

# File lib/rails/generators/channel/channel_generator.rb, line 34
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