Sha256: 6eaf208456bfc82df91243e96d811b0cd548176f7784d2cbda309135602e911c

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

require_relative "../constants"

module Hanami
  module CLI
    module Generators
      module App
        # @since 2.2.0
        # @api private
        class Relation
          # @since 2.2.0
          # @api private
          def initialize(fs:, inflector:, out: $stdout)
            @fs = fs
            @inflector = inflector
            @out = out
          end

          # @since 2.2.0
          # @api private
          def call(key:, namespace:, base_path:, gateway:)
            schema_name = key.split(KEY_SEPARATOR).last
            body_content = ["schema :#{schema_name}, infer: true"]

            body_content.prepend("gateway :#{gateway}") if gateway

            RubyFileWriter.new(
              fs: fs,
              inflector: inflector,
            ).call(
              namespace: namespace,
              key: key,
              base_path: base_path,
              extra_namespace: "Relations",
              relative_parent_class: "DB::Relation",
              body: body_content,
            )
          end

          private

          attr_reader :fs, :inflector, :out
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hanami-cli-2.2.1 lib/hanami/cli/generators/app/relation.rb
hanami-cli-2.2.0 lib/hanami/cli/generators/app/relation.rb