Class: Loco::FileInjectorGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/loco/file_injector/file_injector_generator.rb

Instance Method Summary collapse

Instance Method Details

#application_controllerObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/loco/file_injector/file_injector_generator.rb', line 29

def application_controller
  file_path = Rails.root.join(
    'app',
    'controllers',
    'application_controller.rb'
  )
  data = File.read find_in_source_paths('application_controller.rb')
  after_line = "class ApplicationController < ActionController::Base\n"
  inject_into_file file_path, data, after: after_line
end

#application_helperObject



14
15
16
17
18
# File 'lib/generators/loco/file_injector/file_injector_generator.rb', line 14

def application_helper
  file_path = Rails.root.join 'app', 'helpers', 'application_helper.rb'
  line = %(  include Loco::Helpers\n)
  inject_into_file file_path, line, after: "module ApplicationHelper\n"
end

#connectionObject



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/generators/loco/file_injector/file_injector_generator.rb', line 40

def connection
  return if Rails.version.to_f < 5
  file_path = Rails.root.join(
    'app',
    'channels',
    'application_cable',
    'connection.rb'
  )
  data = File.read find_in_source_paths('connection.rb')
  inject_into_class file_path, 'Connection', data
end

#layoutObject



20
21
22
23
24
25
26
27
# File 'lib/generators/loco/file_injector/file_injector_generator.rb', line 20

def layout
  gsub_file(
    layout_path,
    '<body>',
    '<%= content_tag :body, loco_body_data do %>'
  )
  gsub_file layout_path, '</body>', '<% end %>'
end

#layout_pathObject



52
53
54
55
56
57
58
59
# File 'lib/generators/loco/file_injector/file_injector_generator.rb', line 52

def layout_path
  Rails.root.join(
    'app',
    'views',
    'layouts',
    'application.html.erb'
  )
end

#routesObject



7
8
9
10
11
12
# File 'lib/generators/loco/file_injector/file_injector_generator.rb', line 7

def routes
  file_path = Rails.root.join 'config', 'routes.rb'
  line = %(  mount Loco::Engine => '/notification-center'\n\n)
  str = "Rails.application.routes.draw do\n"
  inject_into_file file_path, line, after: str
end