Sha256: c1dbf90e268696de2c3b3e23008ccb7e5b704d3190507c83f11693d948e0d7f5

Contents?: true

Size: 1.53 KB

Versions: 23

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

23 entries across 23 versions & 2 rubygems

Version Path
avm-eac_ruby_base1-0.18.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.21.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.17.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.20.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.16.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.19.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.18.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.15.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.13.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.17.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.16.1 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.16.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.15.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.14.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
avm-eac_ruby_base1-0.12.0 lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.13.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.12.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.11.1 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.11.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb
eac_tools-0.10.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/base/bundler.rb