Sha256: 483753e60abd830dbe87cd57a3deb06401906e95fc329beb465ea15f6f0f76d6

Contents?: true

Size: 1.16 KB

Versions: 6

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

module ConvenientService
  module Examples
    module Standard
      module 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

6 entries across 6 versions & 1 rubygems

Version Path
convenient_service-0.12.0 lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb
convenient_service-0.10.1 lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb
convenient_service-0.10.0 lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb
convenient_service-0.9.0 lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb
convenient_service-0.8.0 lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb
convenient_service-0.7.0 lib/convenient_service/examples/standard/gemfile/services/merge_sections.rb