Sha256: 8987c6a065b77c66894d8d80d211c73e4bdc9908c4ce8b605e83c2addddca19c
Contents?: true
Size: 1.25 KB
Versions: 36
Compression:
Stored size: 1.25 KB
Contents
module Berkshelf class Location class << self # Create a new instance of a Location class given dependency and options. # The type of class is determined by the values in the given +options+ # Hash. # # If you do not provide an option with a matching location id, +nil+ # is returned. # # @example Create a git location # Location.init(dependency, git: 'git://github.com/berkshelf/berkshelf.git') # # @example Create a GitHub location # Location.init(dependency, github: 'berkshelf/berkshelf') # # @param [Dependency] dependency # @param [Hash] options # # @return [~BaseLocation, nil] def init(dependency, options = {}) if klass = klass_from_options(options) klass.new(dependency, options) else nil end end private # Load the correct location from the given options. # # @return [Class, nil] def klass_from_options(options) options.each do |key, _| id = key.to_s.capitalize begin return Berkshelf.const_get("#{id}Location") rescue NameError; end end nil end end end end
Version data entries
36 entries across 36 versions & 1 rubygems