Sha256: c80f960001532e7d87e776d20d2c81077318aa29275808a0121660a423399c2d

Contents?: true

Size: 981 Bytes

Versions: 2

Compression:

Stored size: 981 Bytes

Contents

require_relative 'gem'
require_relative 'project_set'
require_relative 'gem_definition/presenter'

module WebammToRails
  module Sources
    module Gemfile
      class Definition
        def initialize(waml_definition:)
          @waml_definition = waml_definition
        end

        def render
          template_path = File.expand_path('template.erb', __dir__)
          template_content = File.read(template_path)
          raw_content = ERB.new(template_content, trim_mode: '-').result(instance_eval { binding })

          ::WebammToRails::Utils::FormatCode.call(raw_content)
        end

        private

        def gems
          ::WebammToRails::Sources::Gemfile::ProjectSet.new(waml_definition: @waml_definition).collection.map do |gem|
            ::WebammToRails::Sources::Gemfile::GemDefinition::Presenter.new(gem: gem).render
          end.inject({}) { |hash, gem| hash[gem.first] ||= []; hash[gem.first] << gem.last; hash }
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webamm_to_rails-7.0.1 lib/webamm_to_rails/sources/gemfile/definition.rb
webamm_to_rails-7.0.0 lib/webamm_to_rails/sources/gemfile/definition.rb