class Rugular::New

Public Class Methods

source_root() click to toggle source
# File lib/rugular/tasks/new.rb, line 11
def self.source_root
  __dir__.chomp('/tasks')
end

Public Instance Methods

create_application_directory() click to toggle source
# File lib/rugular/tasks/new.rb, line 15
def create_application_directory
  directory "#{lib_directory}/templates/new/", app_open_struct.name
end
create_asset_directory() click to toggle source
# File lib/rugular/tasks/new.rb, line 35
def create_asset_directory
  empty_directory "#{app_name}/src/assets"
end
create_component_directory() click to toggle source
# File lib/rugular/tasks/new.rb, line 31
def create_component_directory
  empty_directory "#{app_name}/src/components"
end
create_custom_files() click to toggle source
# File lib/rugular/tasks/new.rb, line 19
def create_custom_files
  template_file_names.each do |(file_name, template_file_name)|
    create_file "#{app_name}/#{template_file_name.gsub('.erb', '')}" do
      pathname = Pathname.new(file_name)

      ERB.new(pathname.read).result(
        app_open_struct.instance_eval { binding }
      )
    end
  end
end
create_dist_directory() click to toggle source
# File lib/rugular/tasks/new.rb, line 43
def create_dist_directory
  empty_directory "#{app_name}/dist"
end
create_release_directory() click to toggle source
# File lib/rugular/tasks/new.rb, line 47
def create_release_directory
  empty_directory "#{app_name}/release"
end
create_vendor_directory() click to toggle source
# File lib/rugular/tasks/new.rb, line 39
def create_vendor_directory
  empty_directory "#{app_name}/vendor"
end
install_bourbon() click to toggle source
# File lib/rugular/tasks/new.rb, line 51
def install_bourbon
  run "cd #{app_name}/vendor && bourbon install "\
    '&& neat install && bitters install'
end
installation_complete() click to toggle source
# File lib/rugular/tasks/new.rb, line 56
    def installation_complete
      puts <<-POST_INSTALL_MESSAGE
♪┏(°.°)┛┗(°.°)┓┗(°.°)┛┏(°.°)┓┏(°.°)┛┗(°.°)┓┗(°.°)┛┏(°.°)┓♪

Thank you for installing Rugular, please finish setting up your
project with: `cd #{app_open_struct.name} && rugular dependencies`

♪┏(°.°)┛┗(°.°)┓┗(°.°)┛┏(°.°)┓┏(°.°)┛┗(°.°)┓┗(°.°)┛┏(°.°)┓♪
      POST_INSTALL_MESSAGE
    end

Private Instance Methods

app_open_struct() click to toggle source
# File lib/rugular/tasks/new.rb, line 69
def app_open_struct
  @_app_open_struct ||= OpenStruct.new(name: app_name)
end
lib_directory() click to toggle source
# File lib/rugular/tasks/new.rb, line 73
def lib_directory
  __dir__.chomp('/tasks')
end
template_file_names() click to toggle source
# File lib/rugular/tasks/new.rb, line 77
def template_file_names
  real_file_names = Dir.glob(
    "#{lib_directory}/templates/new_erb/**/*.erb"
  )
  abbreviated_file_names = real_file_names.map do |file_name|
    file_name.gsub("#{lib_directory}/templates/new_erb/", '')
  end

  real_file_names.zip(abbreviated_file_names)
end