Patch #27659
closed
redmine_plugin_model_generator improvements(fixes and timestamps)
Added by Javier Menéndez Rizo almost 7 years ago.
Updated over 5 years ago.
Description
Problems fixed:
- parent option not working
- migration option not working
Things added:
It would be really nice to add this to the migration generator for plugins.
Files
- Related to Defect #11024: redmine_plugin_model generator does not create the migration added
Javier Menéndez Rizo wrote:
Problems fixed:
- parent option not working
- migration option not working
Please explain more details.
AFAIK Redmine plugin is based old Rails engines, but current Redmine does not implement full feature of Rails engines.
Problems:
- parent option: before the patch the parent option do nothing because in the model.rb template is not defined
Before patch model.rb template only inherits from ActiveRecord::Base
class <%= @model_class %> < ActiveRecord::Base
After patch model.rb template uses the method parent_class_name to calculate the parent and put it on the template
class <%= @model_class %> < <%= parent_class_name.classify %>
- migration option: before the patch the generator alway generates the migration file, even if you pass --no-migration
After patch redmine_plugin_model_generator.rb i put a guard clause for generate the migration or not
return unless options[:migration]
migration_filename = "%.14d_#{@migration_filename}.rb" % migration_number
template "migration.rb", "#{plugin_path}/db/migrate/#{migration_filename}"
New feature:
Timestamps in the name of the generated migration file, right now redmine plugins generates the migrations in this form:
001_create_polls.rb
After patch
20171127212003_create_polls.rb
OK, I see.
On trunk r17132:
$ rails generate redmine_plugin_model --help
Usage:
rails generate redmine_plugin_model NAME MODEL [field[:type][:index] field[:type][:index]] [options]
Options:
[--skip-namespace], [--no-skip-namespace] # Skip namespace (affects only isolated applications)
[--migration], [--no-migration] # Indicates when to generate migration
[--timestamps], [--no-timestamps] # Indicates when to generate timestamps
[--parent=PARENT] # The parent class for the generated model
[--indexes], [--no-indexes] # Add indexes for references and belongs_to columns
# Default: true
Runtime options:
-f, [--force] # Overwrite files that already exist
-p, [--pretend], [--no-pretend] # Run but do not make any changes
-q, [--quiet], [--no-quiet] # Suppress status output
-s, [--skip], [--no-skip] # Skip files that already exist
Description:
Generates a plugin model.
Examples:
bundle exec rails generate redmine_plugin_model meetings pool
- Target version set to 4.1.0
- Category set to Plugin API
- Status changed from New to Closed
- Assignee set to Jean-Philippe Lang
Also available in: Atom
PDF