Class: Lono::Extension::New

Inherits:
Sequence
  • Object
show all
Includes:
Blueprint::Helper, Helper, Utils::Generators::Tree
Defined in:
lib/lono/extension/new.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Helper

#extension_class_name, #extension_underscore_name

Methods included from Blueprint::Helper

#user_info

Class Method Details

.cli_optionsObject



14
15
16
17
18
# File 'lib/lono/extension/new.rb', line 14

def self.cli_options
  [
    [:force, type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files."],
  ]
end

.source_rootObject



9
10
11
12
# File 'lib/lono/extension/new.rb', line 9

def self.source_root
  templates = File.expand_path("../../templates", File.dirname(__FILE__))
  "#{templates}/extension"
end

Instance Method Details

#create_licenseObject



34
35
36
37
# File 'lib/lono/extension/new.rb', line 34

def create_license
  return unless ENV['LONO_LICENSE_FILE']
  copy_file ENV['LONO_LICENSE_FILE'], "#{@cwd}/#{extension_name}/LICENSE.txt"
end

#create_projectObject



29
30
31
32
# File 'lib/lono/extension/new.rb', line 29

def create_project
  puts "=> Creating new extension called #{extension_name}."
  directory ".", "#{@cwd}/#{extension_name}", options
end

#set_cwdObject

for specs



25
26
27
# File 'lib/lono/extension/new.rb', line 25

def set_cwd
  @cwd = ENV['LONO_TEST'] ? File.dirname(Lono.root) : "#{Dir.pwd}/app/extensions"
end

#set_destination_rootObject

After this commands are executed with the newly created project



40
41
42
43
44
45
# File 'lib/lono/extension/new.rb', line 40

def set_destination_root
  destination_root = "#{@cwd}/#{extension_name}"
  self.destination_root = destination_root
  @old_dir = Dir.pwd # for reset_current_dir
  FileUtils.cd(self.destination_root)
end

#treeObject



61
62
63
# File 'lib/lono/extension/new.rb', line 61

def tree
  tree_structure("extension")
end

#welcome_messageObject



47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/lono/extension/new.rb', line 47

def welcome_message
  puts <<~EOL
    #{"="*64}
    Congrats 🎉 You have successfully created a lono extension.

    Cd into your extension and check things out.

        cd #{extension_name}

    More info: https://lono.cloud/docs/extensions

  EOL
end