Class: Vedeu::CLI::Application

Inherits:
Object
  • Object
show all
Includes:
Helpers
Defined in:
lib/vedeu/cli/application.rb

Overview

Generates the client application directory and file structure.

:nocov:

Examples:

```bash
vedeu new your_app_name_here
```

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Helpers

#app_bin_path, #app_borders_path, #app_config_path, #app_controllers_path, #app_geometries_path, #app_helpers_path, #app_keymaps_path, #app_models_path, #app_name, #app_views_path, #copy_file, #log_processed_file, #log_skipped_file, #make_directory, #make_file, #name, #name_as_class, #output, #parse, #source, #touch_file

Constructor Details

#initialize(name) ⇒ Vedeu::CLI::Application

Returns a new instance of Vedeu::CLI::Application.

Parameters:

  • name (String)

    The name of the application.



29
30
31
# File 'lib/vedeu/cli/application.rb', line 29

def initialize(name)
  @name = name
end

Class Method Details

.generate(name) ⇒ Vedeu::CLI::Application

Parameters:

  • name (String)

    The name of the application.

Returns:



21
22
23
# File 'lib/vedeu/cli/application.rb', line 21

def self.generate(name)
  new(name).generate
end

Instance Method Details

#copy_app_namevoid (private)

This method returns an undefined value.



85
86
87
88
# File 'lib/vedeu/cli/application.rb', line 85

def copy_app_name
  make_file(source + '/config/app_name.erb',
            app_config_path + 'app_name')
end

#copy_app_root_filesvoid (private)

This method returns an undefined value.



91
92
93
94
95
96
97
98
99
100
101
# File 'lib/vedeu/cli/application.rb', line 91

def copy_app_root_files
  [
    '/Gemfile',
    '/.gitignore',
    '/LICENSE.txt',
    '/README.md',
    '/.ruby-version',
  ].each do |file|
    copy_file((source + file), (app_root_path + file))
  end
end

#copy_application_bootstrappervoid (private)

This method returns an undefined value.



56
57
58
59
# File 'lib/vedeu/cli/application.rb', line 56

def copy_application_bootstrapper
  make_file(source + '/application.erb',
            app_root_path + '/application.rb')
end

#copy_application_controllervoid (private)

This method returns an undefined value.



62
63
64
65
# File 'lib/vedeu/cli/application.rb', line 62

def copy_application_controller
  make_file(source + '/app/controllers/application_controller.erb',
            app_controllers_path + 'application_controller.rb')
end

#copy_application_executablevoid (private)

This method returns an undefined value.



68
69
70
# File 'lib/vedeu/cli/application.rb', line 68

def copy_application_executable
  copy_file(source + '/bin/name', app_bin_path + name)
end

#copy_application_helpervoid (private)

This method returns an undefined value.



73
74
75
76
# File 'lib/vedeu/cli/application.rb', line 73

def copy_application_helper
  make_file(source + '/app/helpers/application_helper.erb',
            app_helpers_path + 'application_helper.rb')
end

#copy_configurationvoid (private)

This method returns an undefined value.



79
80
81
82
# File 'lib/vedeu/cli/application.rb', line 79

def copy_configuration
  make_file(source + '/config/configuration.erb',
            app_config_path + 'configuration.rb')
end

#copy_global_keymapvoid (private)

This method returns an undefined value.



109
110
111
112
# File 'lib/vedeu/cli/application.rb', line 109

def copy_global_keymap
  copy_file(source + '/app/models/keymaps/_global_.rb',
            app_keymaps_path + '_global_.rb')
end

#directoriesArray<String> (private)

Returns:

  • (Array<String>)


115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/vedeu/cli/application.rb', line 115

def directories
  [
    '/app/controllers',
    '/app/helpers',
    '/app/models/keymaps',
    '/app/views/interfaces',
    '/app/views/interfaces/borders',
    '/app/views/interfaces/geometries',
    '/app/views/templates',
    '/bin',
    '/config',
    '/lib',
    '/log',
    '/test',
    '/vendor',
  ]
end

#generatevoid

This method returns an undefined value.



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/vedeu/cli/application.rb', line 34

def generate
  make_directory_structure

  copy_app_root_files
  copy_application_bootstrapper
  copy_application_controller
  copy_application_helper
  copy_global_keymap
  copy_application_executable
  make_application_executable
  copy_configuration
  copy_app_name
end

#make_application_executablevoid (private)

This method returns an undefined value.



104
105
106
# File 'lib/vedeu/cli/application.rb', line 104

def make_application_executable
  FileUtils.chmod(0755, "#{name}/bin/#{name}")
end

#make_directory_structurevoid (private)

This method returns an undefined value.



51
52
53
# File 'lib/vedeu/cli/application.rb', line 51

def make_directory_structure
  directories.each { |directory| make_directory(name + directory) }
end