]> source.dussan.org Git - redmine.git/commitdiff
redmine_plugin_model_generator improvements (#27659).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 20 Jun 2019 14:16:58 +0000 (14:16 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 20 Jun 2019 14:16:58 +0000 (14:16 +0000)
Patch by Javier Menéndez Rizo.

git-svn-id: http://svn.redmine.org/redmine/trunk@18298 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb
lib/generators/redmine_plugin_model/templates/model.rb.erb

index 66daaf7920fcf2ad5b64dd24d47e5c7535842536..ed9eb859c719adfa25883cd7f00441871c489923 100644 (file)
@@ -22,7 +22,7 @@ class RedminePluginModelGenerator < Rails::Generators::NamedBase
   source_root File.expand_path("../templates", __FILE__)
   argument :model, :type => :string
   argument :attributes, :type => :array, :default => [], :banner => "field[:type][:index] field[:type][:index]"
-  class_option :migration,  :type => :boolean
+  class_option :migration,  :type => :boolean, :default => true
   class_option :timestamps, :type => :boolean
   class_option :parent,     :type => :string, :desc => "The parent class for the generated model"
   class_option :indexes,    :type => :boolean, :default => true, :desc => "Add indexes for references and belongs_to columns"
@@ -44,10 +44,13 @@ class RedminePluginModelGenerator < Rails::Generators::NamedBase
     template 'model.rb.erb', "#{plugin_path}/app/models/#{model.underscore}.rb"
     template 'unit_test.rb.erb', "#{plugin_path}/test/unit/#{model.underscore}_test.rb"
 
-    migration_filename = "%03i_#{@migration_filename}.rb" % (migration_number + 1)
+    return unless options[:migration]
+    migration_filename = "%.14d_#{@migration_filename}.rb" % migration_number
     template "migration.rb", "#{plugin_path}/db/migrate/#{migration_filename}"
   end
 
+  private
+
   def attributes_with_index
     attributes.select { |a| a.has_index? || (a.reference? && options[:indexes]) }
   end
@@ -56,5 +59,11 @@ class RedminePluginModelGenerator < Rails::Generators::NamedBase
     current = Dir.glob("#{plugin_path}/db/migrate/*.rb").map do |file|
       File.basename(file).split("_").first.to_i
     end.max.to_i
+
+    [current + 1, Time.now.utc.strftime("%Y%m%d%H%M%S").to_i].max
+  end
+
+  def parent_class_name
+    options[:parent] || "ActiveRecord::Base"
   end
 end
index cb6f3141134da385b37525ef11cab22a081a3c89..cf9edbbda9fd8be2f2043a26f1f5bb5c93249a81 100644 (file)
@@ -1,2 +1,2 @@
-class <%= @model_class %> < ActiveRecord::Base
+class <%= @model_class %> < <%= parent_class_name.classify %>
 end