Sha256: e8755d010a97720ce45150a3c332a3b1b806be78d42cef7d4c450ba8a264e1a0

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true
require "rails/generators"
require "rails/generators/active_record"

module Logidze
  module Generators
    class InstallGenerator < ::Rails::Generators::Base # :nodoc:
      include Rails::Generators::Migration

      source_root File.expand_path('templates', __dir__)

      class_option :update, type: :boolean, optional: true,
                            desc: "Define whether this is an update migration"

      def generate_migration
        migration_template "migration.rb.erb", "db/migrate/#{migration_name}.rb"
      end

      def generate_hstore_migration
        return if update?

        migration_template "hstore.rb.erb", "db/migrate/enable_hstore.rb"
      end

      no_tasks do
        def migration_name
          if update?
            "logidze_update_#{Logidze::VERSION.delete('.')}"
          else
            "logidze_install"
          end
        end

        def migration_class_name
          migration_name.classify
        end

        def update?
          options[:update]
        end
      end

      def self.next_migration_number(dir)
        ::ActiveRecord::Generators::Base.next_migration_number(dir)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
logidze-0.9.0 lib/generators/logidze/install/install_generator.rb
logidze-0.8.1 lib/generators/logidze/install/install_generator.rb
logidze-0.8.0 lib/generators/logidze/install/install_generator.rb