Sha256: d5e9a665f04881826e21fdc5aac5982e65fac4884b9503c4bc28ac858f414ef2

Contents?: true

Size: 840 Bytes

Versions: 2

Compression:

Stored size: 840 Bytes

Contents

# frozen_string_literal: true

module Ows
  module Query
    module Generators
      class CreateGenerator < Rails::Generators::NamedBase
        source_root File.expand_path('templates', __dir__)

        desc 'Generates a query.'

        def initialize(args, *_options)
          super

          @query_name = args[0].camelize
          @model_name = args[1].camelize
        end

        def create_query
          create_file Rails.root.join("app/queries/#{file_name}_query.rb"),
                      sample_file.gsub('{{QUERY_NAME}}', query_name)
                                 .gsub('{{MODEL_NAME}}', model_name)
        end

        private

        attr_reader :query_name, :model_name

        def sample_file
          File.read(File.expand_path('templates/sample_query.rb', __dir__))
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ows-queries-0.1.6 lib/generators/ows/query/create/create_generator.rb
ows-queries-0.1.5 lib/generators/ows/query/create/create_generator.rb