Class: Vue::Generators::ApiFileGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Includes:
Rails::Generators::ResourceHelpers
Defined in:
lib/generators/vue/api_file_generator.rb

Instance Method Summary collapse

Instance Method Details

#copy_api_fileObject

def the_api_init

unless File.exist?(Rails.root.join("app/javascript/packs/api", "index.js"))
  create_file "app/javascript/packs/api/index.js", 'export default {}'
end 
unless File.exist?(Rails.root.join("app/javascript/packs/api", "methods.js"))
  copy_file 'methods.js', "app/javascript/packs/api/methods.js"
end

end



16
17
18
19
# File 'lib/generators/vue/api_file_generator.rb', line 16

def copy_api_file
  log :copy_api, controller_file_path
  template "javascript/api.js", "app/javascript/packs/api/res/#{controller_file_path}.js"
end

#write_componentsObject



33
34
35
36
37
38
# File 'lib/generators/vue/api_file_generator.rb', line 33

def write_components
  sentinel = /<template>\s*\n*<ul>\s*\n*/m
  content = "<li><router-link to='/#{controller_file_path}'>#{controller_file_path.capitalize}</router-link></li>\n"
  log :add_components, controller_file_path
  inject_into_file "app/javascript/packs/components/SideBar.vue", content, after: sentinel, verbose: false, force: false
end

#write_export_apiObject



27
28
29
30
31
32
# File 'lib/generators/vue/api_file_generator.rb', line 27

def write_export_api
  sentinel = /export default\s*{\n*/m
  content = "#{controller_file_path},\n"
  log :export_api, controller_file_path
  inject_into_file "app/javascript/packs/api/index.js", content, after: sentinel, verbose: false, force: false
end

#write_import_api_form_indexObject



21
22
23
24
25
26
# File 'lib/generators/vue/api_file_generator.rb', line 21

def write_import_api_form_index
  sentinel = /export default\s*{\s*/m
  content = "import #{controller_file_path} from './res/#{controller_file_path}' \n"
  log :import_api, content
  inject_into_file "app/javascript/packs/api/index.js", content, before: sentinel, verbose: false, force: false
end