Add generator for plugins
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
9be0c2734a
commit
b985fe95b6
2 changed files with 41 additions and 0 deletions
16
generator_templates/plugins/template.rb
Normal file
16
generator_templates/plugins/template.rb
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Requirements
|
||||
# * File name must end with _s.rb. For example, jenkins_plugin.rb.
|
||||
# * All code should be inside class. No code should be executed on file load.
|
||||
# * Class name must be same as file name.
|
||||
# If file name is jenkins_plugin.rb then class name must be JenkinsPlugin.
|
||||
#
|
||||
# Reccomendations
|
||||
# * Code should not depend on or use GitLab classes and other code.
|
||||
# * Consider contributing your plugin to GitLab source code so we can test it
|
||||
# and make sure it will work in further version.
|
||||
#
|
||||
class $NAMEPlugin
|
||||
def execute(data)
|
||||
# TODO: Implement me
|
||||
end
|
||||
end
|
25
lib/tasks/plugins.rake
Normal file
25
lib/tasks/plugins.rake
Normal file
|
@ -0,0 +1,25 @@
|
|||
namespace :plugins do
|
||||
desc 'Generate skeleton for new plugin'
|
||||
task generate: :environment do
|
||||
ARGV.each { |a| task a.to_sym { } }
|
||||
name = ARGV[1]
|
||||
|
||||
unless name.present?
|
||||
puts 'Error. You need to specify a name for the plugin'
|
||||
exit 1
|
||||
end
|
||||
|
||||
class_name = name.classify
|
||||
param = name.underscore
|
||||
file_path = Rails.root.join('plugins', param + '_plugin.rb')
|
||||
template = File.read(Rails.root.join('generator_templates', 'plugins', 'template.rb'))
|
||||
template.gsub!('$NAME', class_name)
|
||||
|
||||
if File.write(file_path, template)
|
||||
puts "Done. Your plugin saved under #{file_path}."
|
||||
puts 'Feel free to edit it.'
|
||||
else
|
||||
puts "Failed to save #{file_path}."
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue