Sha256: fd6d47512820e67b1e674b5d0cdeae6eab8890c10bab2278918c30f0729056dd

Contents?: true

Size: 1.15 KB

Versions: 6

Compression:

Stored size: 1.15 KB

Contents

if defined?(Rails)
  require 'rails/generators'
  require 'rails/generators/active_record'

  module Translateable
    class MigrationGenerator < ActiveRecord::Generators::Base
      desc 'Create sample migration with translateable field'
      source_root File.expand_path('../templates', __FILE__)

      argument :field_name, type: :string
      argument :locale, type: :string, default: I18n.default_locale

      def create_migration_file
        raise ArgumentError, "given locale #{locale} is not available, check I18n.available_locales" unless I18n.available_locales.include?(locale.to_sym)
        migration_template('migration.rb.erb', "db/migrate/migrate_translateable_#{name}_#{field_name}.rb",
                           migration_version: migration_version,
                           table_name: name,
                           field_name: field_name,
                           locale: locale)
      end

      private

      def rails5?
        Rails.version.start_with?('5')
      end

      def migration_version
        if rails5?
          "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
        else
          ''
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
translateable-0.1.6 lib/generators/translateable/migration_generator.rb
translateable-0.1.5 lib/generators/translateable/migration_generator.rb
translateable-0.1.4 lib/generators/translateable/migration_generator.rb
translateable-0.1.3 lib/generators/translateable/migration_generator.rb
translateable-0.1.2 lib/generators/translateable/migration_generator.rb
translateable-0.1.1 lib/generators/translateable/migration_generator.rb