Sha256: 2f5f0e8e3260055d06fc187882af39cc5813a99ee94bdd520e636c72d9d33eb4

Contents?: true

Size: 1.53 KB

Versions: 12

Compression:

Stored size: 1.53 KB

Contents

# frozen_string_literal: true

require 'avm/eac_generic_base0/sources/base'
require 'avm/eac_ruby_base1/sources/base/bundle_command'
require 'eac_ruby_utils/core_ext'

module Avm
  module EacRubyBase1
    module Sources
      class Base < ::Avm::EacGenericBase0::Sources::Base
        module Bundler
          CONFIGURED_GEMFILE_PATH_ENTRY_KEY = 'ruby.gemfile_path'
          DEFAULT_GEMFILE_PATH = 'Gemfile'

          # @return [Avm::EacRubyBase1::Sources::Base::BundleCommand]
          def bundle(*args)
            ::Avm::EacRubyBase1::Sources::Base::BundleCommand.new(self, %w[bundle] + args)
              .envvar_gemfile
          end

          # @return [String]
          def configured_gemfile_path
            configuration.entry(CONFIGURED_GEMFILE_PATH_ENTRY_KEY).value
          end

          # @return [String]
          def default_gemfile_path
            DEFAULT_GEMFILE_PATH
          end

          # @return [Bundler::LockfileParser]
          def gemfile_lock_content
            ::Bundler::LockfileParser.new(::Bundler.read_file(gemfile_lock_path))
          end

          def gemfile_lock_gem_version(gem_name)
            gemfile_lock_content.specs.find { |gem| gem.name == gem_name }.if_present(&:version)
          end

          # @return [Pathname]
          def gemfile_lock_path
            gemfile_path.basename_sub { |b| "#{b}.lock" }
          end

          # @return [Pathname]
          def gemfile_path
            path.join(configured_gemfile_path || default_gemfile_path)
          end
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
avm-eac_ruby_base1-0.10.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.7.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.9.1 lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.6.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.5.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.9.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.4.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.3.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.2.2 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.8.2 lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.8.1 lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.8.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb