class Rails::Generators::ChannelGenerator

Public Instance Methods

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

  if options[:assets]
    if self.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

Protected Instance Methods

file_name() click to toggle source
Calls superclass method
# File lib/rails/generators/channel/channel_generator.rb, line 27
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 32
def generate_application_cable_files
  return if self.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