Sha256: 2052306ed9f30cd4cc2f6f1b02de5ec254f5f943295bff39e2c18c5c7e4137b2

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

# module used for feching gem information
module Helper
  # function that makes the methods incapsulated as utility functions

  module_function

  def find_loaded_gem_property(gem_name, property)
    gem_spec = Gem.loaded_specs.values.find { |repo| repo.name == gem_name }
    gem_spec.respond_to?(property) ? gem_spec.send(property) : nil
  end

  def fetch_gem_version(gem_name, options = {})
    version = find_loaded_gem_property(gem_name, 'version')
    version.blank? ? nil : get_parsed_version(version.to_s, options)
  end

  def get_parsed_version(version, options)
    parsing_options = {optional_fields: [:tiny]}.merge(options.fetch("unparse", {}))
    Versionomy.parse(version).unparse(parsing_options)
  rescue Versionomy::Errors::ParseError
    nil
  end

  def verify_gem_version(gem_name, version, options = {})
    options.stringify_keys!
    version = get_parsed_version(version, options)
    gem_version = fetch_gem_version(gem_name, options)
    gem_version.blank? ? false : gem_version.send(options.fetch('operator', '<='), version)
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
capistrano_multiconfig_parallel-0.15.3 lib/capistrano_multiconfig_parallel/helper.rb
capistrano_multiconfig_parallel-0.15.2 lib/capistrano_multiconfig_parallel/helper.rb
capistrano_multiconfig_parallel-0.15.1 lib/capistrano_multiconfig_parallel/helper.rb