Sha256: 41d9c1d3cf2ac9c5b2b5281adb0f50d90fc9c3236677f29ca3a82645f4fb3f3d

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

require "rails/generators"

module Merit
  module Generators
    class MeritGenerator < ::Rails::Generators::NamedBase
      source_root File.expand_path('../templates', __FILE__)

      def inject_merit_content
        if model_exists?
          inject_into_class(model_path, class_name, "  ### END ###\n\n")
          inject_into_class(model_path, class_name, "  has_many :created_badges, class_name: 'Merit::Badge'\n")
          inject_into_class(model_path, class_name, "  belongs_to :sash, foreign_key: 'sash_id', class_name: 'Merit::QalamSash'\n")
          inject_into_class(model_path, class_name, "  has_merit\n")
          inject_into_class(model_path, class_name, "  ### QALAM_MERIT ###\n")
        end
      end

      def run_active_record_generators
        invoke 'merit:active_record:merit'
      end

      private

      def model_exists?
        File.exist? File.join(destination_root, model_path)
      end

      def model_path
        @model_path ||= File.join('app', 'models', "#{file_path}.rb")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
qalam_merit-4.5.00 lib/merit/generators/merit_generator.rb
qalam_merit-4.0.4 lib/merit/generators/merit_generator.rb