Sha256: 42f3be91261ebaa32afa20f10478cd860c6e6760e64fcd4113fe39a51aa1be61

Contents?: true

Size: 1.7 KB

Versions: 15

Compression:

Stored size: 1.7 KB

Contents

# frozen_string_literal: true

##
# Usage example:
#
# result = ConvenientService::Examples::Standard::Gemfile::Services::FormatGemsWithoutEnvs.result(
#   parsed_content: {
#     gems: [
#       {
#         envs: [],
#         line: %(gem "bootsnap", ">= 1.4.4", require: false)
#       },
#       {
#         envs: [],
#         line: %(gem "pg")
#       },
#       {
#         envs: [],
#         line: %(gem "rails", "~> 6.1.3", ">= 6.1.3.2")
#       },
#       {
#         envs: [],
#         line: %(gem "webpacker", "~> 5.0")
#       },
#       {
#         envs: [],
#         line: %(gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby])
#       }
#     ]
#   }
# )
#
# NOTE: Check the corresponding spec file to see more examples.
#
module ConvenientService
  module Examples
    module Standard
      module Gemfile
        module Services
          class FormatGemsWithoutEnvs
            EMPTY_LINE = ""
            ENTER = "\n"

            include ConvenientService::Standard::Config

            attr_reader :parsed_content

            def initialize(parsed_content:)
              @parsed_content = parsed_content
            end

            def result
              success(formatted_content: format_content)
            end

            private

            def format_content
              return "" if gems_without_envs.none?

              gems_without_envs
                .map { |gem| gem[:line] }
                .reduce(EMPTY_LINE.dup) { |content, line| content << line << ENTER }
            end

            def gems_without_envs
              @gems_without_envs ||= parsed_content[:gems].to_a.select { |gem| gem[:envs].none? }
            end
          end
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
convenient_service-0.12.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.11.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.10.1 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.10.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.9.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.8.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.7.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.6.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.5.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.4.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.3.1 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.3.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.2.1 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.2.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb
convenient_service-0.1.0 lib/convenient_service/examples/standard/gemfile/services/format_gems_without_envs.rb