Sha256: d3aedbc5f10bb47dfca89ec8a178431bc35b3ce760d070a5fdf29a2122855bd2

Contents?: true

Size: 845 Bytes

Versions: 5

Compression:

Stored size: 845 Bytes

Contents

# frozen_string_literal: true

module Interage
  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

5 entries across 5 versions & 1 rubygems

Version Path
interage-query-0.1.4 lib/generators/interage/query/create/create_generator.rb
interage-query-0.1.3 lib/generators/interage/query/create/create_generator.rb
interage-query-0.1.2 lib/generators/interage/query/create/create_generator.rb
interage-query-0.1.1 lib/generators/interage/query/create/create_generator.rb
interage-query-0.1.0 lib/generators/interage/query/create/create_generator.rb