Sha256: a71ffc3e8f7bcc5a826609cc49425dd1f72518b13dfe67ce14e583a2e577732f

Contents?: true

Size: 1.46 KB

Versions: 47

Compression:

Stored size: 1.46 KB

Contents

module Isomorfeus
  module Installer
    class Gemfile
      extend Isomorfeus::Installer::DSL

      class << self
        def execute
          install_gemfile
        end

        def generate_gem_line(gem_hash)
          line = "gem '#{gem_hash[:name]}', '#{gem_hash[:version]}'"
          line << ", require: false" if gem_hash.key?(:require) && !gem_hash[:require]
          line << "\n"
        end

        def install_gemfile
          rack_server_gems = ''
          Isomorfeus::Installer.rack_servers[Isomorfeus::Installer.options[:rack_server]]&.fetch(:gems)&.each do |gem|
            rack_server_gems << generate_gem_line(gem)
          end
          data_hash = { rack_server_gems: rack_server_gems.chop }

          if Isomorfeus::Installer.project_name == 'test_app'
            gem_lines = ''
            %i[isomorfeus isomorfeus-data isomorfeus-i18n isomorfeus-mailer isomorfeus-operation isomorfeus-policy isomorfeus-transport].each do |i_module|
              gem_lines << "gem '#{i_module}', path: #{Isomorfeus::Installer.isomorfeus_module == i_module ? "'..'\n" : "'../../#{i_module}'"}\n"
            end
            data_hash[:isomorfeus_gems] = gem_lines.chop
          else
            data_hash[:isomorfeus_gems] = "gem 'isomorfeus', '~> #{Isomorfeus::VERSION}'"
          end

          create_file_from_template(Isomorfeus::Installer.templates_path, 'Gemfile.erb', 'Gemfile', data_hash)
        end
      end
    end
  end
end

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
isomorfeus-2.2.11 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.10 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.9 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.8 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.7 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.6 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.5 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.4 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.3 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.2 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.1 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.2.0 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.1.1 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.1.0 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.0.22 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.0.21 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.0.20 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.0.19 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.0.18 lib/isomorfeus/installer/gemfile.rb
isomorfeus-2.0.17 lib/isomorfeus/installer/gemfile.rb