Module: CapistranoMulticonfigParallel::GemHelper

Included in:
CapistranoMulticonfigParallel, ApplicationHelper
Defined in:
lib/capistrano_multiconfig_parallel/helpers/gem_helper.rb

Overview

helper used to determine gem versions

Class Method Summary collapse

Class Method Details

.fetch_gem_version(gem_name) ⇒ Object



15
16
17
18
# File 'lib/capistrano_multiconfig_parallel/helpers/gem_helper.rb', line 15

def fetch_gem_version(gem_name)
  version = find_loaded_gem_property(gem_name)
  version.blank? ? nil : get_parsed_version(version)
end

.find_loaded_gem(name, property = nil) ⇒ Object



6
7
8
9
# File 'lib/capistrano_multiconfig_parallel/helpers/gem_helper.rb', line 6

def find_loaded_gem(name, property = nil)
  gem_spec = Gem.loaded_specs.values.find { |repo| repo.name == name }
  gem_spec.present? && property.present? ? gem_spec.send(property).to_s : gem_spec
end

.find_loaded_gem_property(gem_name, property = 'version') ⇒ Object



11
12
13
# File 'lib/capistrano_multiconfig_parallel/helpers/gem_helper.rb', line 11

def find_loaded_gem_property(gem_name, property = 'version')
  find_loaded_gem(gem_name, property)
end

.format_gem_version(version) ⇒ Object



27
28
29
30
31
# File 'lib/capistrano_multiconfig_parallel/helpers/gem_helper.rb', line 27

def format_gem_version(version)
  return version if version.size <= 2
  version.pop until version.size == 2
  version
end

.get_parsed_version(version) ⇒ Object



20
21
22
23
24
25
# File 'lib/capistrano_multiconfig_parallel/helpers/gem_helper.rb', line 20

def get_parsed_version(version)
  return 0 if version.blank?
  version = version.to_s.split('.')
  version = format_gem_version(version)
  version.join('.').to_f
end

.verify_gem_version(gem_version, version, options = {}) ⇒ Object



33
34
35
36
37
# File 'lib/capistrano_multiconfig_parallel/helpers/gem_helper.rb', line 33

def verify_gem_version(gem_version, version, options = {})
  options.stringify_keys!
  version = get_parsed_version(version)
  get_parsed_version(gem_version).send(options.fetch('operator', '<='), version)
end