Enable rails generators out of the box (#6043)

* Enable rails generators out of the box

Add bin/rails and Gemfile to generated plugin.
This enables use of rails generators in the generated plugin
right after including it into OP's Gemfile.plugins and setting OPENPROJECT_ROOT environment variable.

[ci skip]
This commit is contained in:
Aidas Kasparas
2017-12-07 14:28:18 +02:00
committed by Oliver Günther
parent e9116c9d8a
commit f6702eb532
3 changed files with 40 additions and 0 deletions
@@ -36,6 +36,7 @@ class OpenProject::PluginGenerator < Rails::Generators::Base
def generate_plugin
plugin_dir
lib_dir
bin_dir
end
def full_name
@@ -70,4 +71,14 @@ class OpenProject::PluginGenerator < Rails::Generators::Base
directory('lib', lib_path)
end
end
def bin_path
"#{plugin_path}/bin"
end
def bin_dir
@bin_dir ||= begin
directory('bin', bin_path)
end
end
end
@@ -0,0 +1,3 @@
source 'https://rubygems.org'
gemspec
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails gems
# installed from the root of your application.
ENGINE_ROOT = File.expand_path('../..', __FILE__)
ENGINE_PATH = File.expand_path('../../lib/open_project/<%= plugin_name %>/engine', __FILE__)
# Set up gems listed in the Gemfile.
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
##
# This is not ideal but better than nothing.
if ENV['OPENPROJECT_ROOT']
# /Users/mkahl/dev/openproject/release/lib
path = Pathname(ENV["OPENPROJECT_ROOT"]).join("lib")
$LOAD_PATH.unshift(path.to_s)
else
puts
puts "Error: please define OPENPROJECT_ROOT pointing to your OpenProject core's root directory"
puts
Kernel.exit(1)
end
require 'rails/all'
require 'rails/engine/commands'