Sha256: 649efdc3635e7838463e39e87fb3ba84b1bf57b560f31087704b67752c866b2f

Contents?: true

Size: 1.25 KB

Versions: 4

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

module ConvenientService
  module Examples
    module Standard
      module V1
        class Gemfile
          module Services
            class MergeSections
              include ConvenientService::Standard::V1::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
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
convenient_service-0.17.0 lib/convenient_service/examples/standard/v1/gemfile/services/merge_sections.rb
convenient_service-0.16.0 lib/convenient_service/examples/standard/v1/gemfile/services/merge_sections.rb
convenient_service-0.15.0 lib/convenient_service/examples/standard/v1/gemfile/services/merge_sections.rb
convenient_service-0.14.0 lib/convenient_service/examples/standard/v1/gemfile/services/merge_sections.rb