Module: GeneratorHelper

Instance Method Summary collapse

Instance Method Details

#add_documentation_reference(message, source) ⇒ Object



56
57
58
# File 'lib/generators/react_on_rails/generator_helper.rb', line 56

def add_documentation_reference(message, source)
  "#{message} \n#{source}"
end

#copy_file_and_missing_parent_directories(source_file, destination_file = nil) ⇒ Object



48
49
50
51
52
53
54
# File 'lib/generators/react_on_rails/generator_helper.rb', line 48

def copy_file_and_missing_parent_directories(source_file, destination_file = nil)
  destination_file ||= source_file
  destination_path = Pathname.new(destination_file)
  parent_directories = destination_path.dirname
  empty_directory(parent_directories) unless dest_dir_exists?(parent_directories)
  copy_file source_file, destination_file
end

#dest_dir_exists?(dir) ⇒ Boolean

Returns:

  • (Boolean)


12
13
14
15
# File 'lib/generators/react_on_rails/generator_helper.rb', line 12

def dest_dir_exists?(dir)
  dest_dir = File.join(destination_root, dir)
  Dir.exist?(dest_dir) ? dest_dir : nil
end

#dest_file_exists?(file) ⇒ Boolean

Takes a relative path from the destination root, such as .gitignore or app/assets/javascripts/application.js

Returns:

  • (Boolean)


7
8
9
10
# File 'lib/generators/react_on_rails/generator_helper.rb', line 7

def dest_file_exists?(file)
  dest_file = File.join(destination_root, file)
  File.exist?(dest_file) ? dest_file : nil
end

#empty_directory_with_keep_file(destination, config = {}) ⇒ Object



25
26
27
28
# File 'lib/generators/react_on_rails/generator_helper.rb', line 25

def empty_directory_with_keep_file(destination, config = {})
  empty_directory(destination, config)
  keep_file(destination)
end

#keep_file(destination) ⇒ Object



30
31
32
# File 'lib/generators/react_on_rails/generator_helper.rb', line 30

def keep_file(destination)
  create_file("#{destination}/.keep") unless options[:skip_keeps]
end

#setup_file_error(file, data) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/generators/react_on_rails/generator_helper.rb', line 17

def setup_file_error(file, data)
  "    \#{file} was not found.\n    Please add the following content to your \#{file} file:\n    \#{data}\n  MSG\nend\n"

As opposed to Rails::Generators::Testing.create_link, which creates a link pointing to source_root, this symlinks a file in destination_root to a file also in destination_root.



37
38
39
40
41
42
43
44
45
46
# File 'lib/generators/react_on_rails/generator_helper.rb', line 37

def symlink_dest_file_to_dest_file(target, link)
  target_pathname = Pathname.new(File.join(destination_root, target))
  link_pathname = Pathname.new(File.join(destination_root, link))

  link_directory = link_pathname.dirname
  link_basename = link_pathname.basename
  target_relative_path = target_pathname.relative_path_from(link_directory)

  `cd #{link_directory} && ln -s #{target_relative_path} #{link_basename}`
end