Sha256: a59487a6e338912a9c3d00788fa333642723e09ebedd5c06a9fc2b6eaf97e319

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

module ConvenientService
  module Examples
    module Standard
      class Gemfile
        module Services
          class MergeSections
            include ConvenientService::Standard::Config

            attr_reader :header, :body

            step :validate_header,
              in: :header

            step :validate_body,
              in: :body

            step :result,
              in: [
                :header,
                :body
              ]

            def initialize(header:, body:)
              @header = header
              @body = body
            end

            def result
              success(merged_sections: "#{header}\n#{body}")
            end

            def validate_header
              return failure(header: "Header is `nil`") if header.nil?
              return failure(header: "Header is empty") if header.empty?

              success
            end

            def validate_body
              return failure(body: "Body is `nil`") if body.nil?
              return failure(body: "Body is empty") if body.empty?

              success
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
convenient_service-0.13.0 lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb