Sha256: 65d0eaaebb1010698770421997fcb3aaa286aec4f4b1bab337f26bdc922161b7

Contents?: true

Size: 1.49 KB

Versions: 20

Compression:

Stored size: 1.49 KB

Contents

require 'rails/generators/active_record'
require 'generators/adminpanel/resource/resource_generator_helper'
require 'generators/adminpanel/migration/migration_generator_helper'

module Adminpanel
  class MigrationGenerator < ActiveRecord::Generators::Base
    include ResourceGeneratorHelper
    include MigrationGeneratorHelper

    source_root File.expand_path("../templates", __FILE__)
    desc "Generate a migration files and updates the model and controller"
    argument :fields, :type => :array, :default => [], :banner => "field[:type][:index] field[:type][:index]"

    def change_field_aliases
      fields.each do |attribute|
        type = attribute.split(':').second
        case type
        when 'wysiwyg'
          fields.delete(attribute)
          fields << attribute.split(':').first + ':' + 'text'
        end
      end
    end

    def generate_migration
      parameters = fields
      parameters.delete_if do |pair|
        if pair.split(':').second == 'has_many'
          puts "migrations aren't supported yet, sorry :(, but you can do a pull request"
          true
        else
          false
        end
      end
      invoke :migration, [migration_name, parameters]
    end

    def inject_attributes_into_file
      inject_into_file(
        "app/models/adminpanel/#{resource_migrating}.rb",
        after: '      ['
      ) do
        indent ("\n" + form_attributes_hash + ','), 8
      end
    end

    def puts_messages
      puts "don't forget to migrate your database"
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
adminpanel-3.6.1 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.6.0 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.5.1 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.5.0 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.4.7 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.4.6 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.4.5 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.4.4 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.4.3 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.4.2 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.4.1 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.4.0 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.3.4 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.3.3 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.3.0 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.2.1 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.2.0 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.1.0 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-3.0.0 lib/generators/adminpanel/migration/migration_generator.rb
adminpanel-2.6.1 lib/generators/adminpanel/migration/migration_generator.rb