class Ember::Generators::BootstrapGenerator

Public Instance Methods

create_adapter_file() click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 45
def create_adapter_file
  template "application_adapter.#{engine_extension}", "#{ember_path}/adapters/application.#{engine_extension}"
end
create_app_file() click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 37
def create_app_file
  template "app.#{engine_extension}", "#{ember_path}/#{application_name.underscore.dasherize}.#{engine_extension}"
end
create_dir_layout() click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 30
def create_dir_layout
  ember_prefix_dirs.each do |dir|
    empty_directory "#{ember_path}/#{dir}"
    create_file "#{ember_path}/#{dir}/.gitkeep" unless options[:skip_git]
  end
end
create_env_file() click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 49
def create_env_file
  template "environment.#{engine_extension}", "#{ember_path}/environment.#{engine_extension}"
end
create_router_file() click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 41
def create_router_file
  template "router.#{engine_extension}", "#{ember_path}/router.#{engine_extension}"
end
inject_ember() click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 20
def inject_ember
  if javascript_engine == 'es6'
    inject_into_application_file('es6') # Don't use `.module.es6`.
  else
    inject_into_application_file(engine_extension)
  end
rescue Exception
  inject_into_application_file('js')
end

Private Instance Methods

ember_prefix_dirs() click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 83
def ember_prefix_dirs
  dirs =
    if configuration
      Array(configuration.prefix_dirs)
    else
      %w[models controllers views routes components helpers mixins serializers adapters transforms]
    end

  dirs + %w[templates templates/components]
end
get_options_from_contents(contents) click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 72
def get_options_from_contents(contents)
  regex = /^.*require_tree.*$/
  return { before: regex } if contents =~ regex

  regex = /^\s*$/
  return { before: regex } if contents =~ regex

  regex = /\z/
  { after: regex }
end
inject_into_application_file(safe_extension) click to toggle source
# File lib/generators/ember/bootstrap_generator.rb, line 55
def inject_into_application_file(safe_extension)
  application_file = "application.#{safe_extension}"
  full_path = Pathname.new(destination_root).join(ember_path, application_file)

  if full_path.exist?
    injection_options = get_options_from_contents(full_path.read)

    inject_into_file(full_path.to_s, injection_options) do
      context = instance_eval('binding', __FILE__, __LINE__)
      source  = File.expand_path(find_in_source_paths(application_file))
      ERB.new(::File.binread(source), trim_mode: '-', eoutvar: '@output_buffer').result(context)
    end
  else
    template application_file, full_path
  end
end