Object
Deprecated methods
# File lib/bundler/dsl.rb, line 147 147: def self.deprecate(name, replacement = nil) 148: define_method(name) do |*| 149: message = "'#{name}' has been removed from the Gemfile DSL, " 150: if replacement 151: message << "and has been replaced with '#{replacement}'." 152: else 153: message << "and is no longer supported." 154: end 155: message << "\nSee the README for more information on upgrading from Bundler 0.8." 156: raise DeprecatedError, message 157: end 158: end
# File lib/bundler/dsl.rb, line 138 138: def env(name) 139: @env, old = name, @env 140: yield 141: ensure 142: @env = old 143: end
# File lib/bundler/dsl.rb, line 50 50: def gem(name, *args) 51: if name.is_a?(Symbol) 52: raise GemfileError, %{You need to specify gem names as Strings. Use 'gem "#{name.to_s}"' instead.} 53: end 54: 55: options = Hash === args.last ? args.pop : {} 56: version = args || [">= 0"] 57: 58: _deprecated_options(options) 59: _normalize_options(name, version, options) 60: 61: dep = Dependency.new(name, version, options) 62: 63: if current = @dependencies.find { |d| d.name == dep.name } 64: if current.requirement != dep.requirement 65: raise DslError, "You cannot specify the same gem twice with different version requirements. " "You specified: #{current.name} (#{current.requirement}) and " "#{dep.name} (#{dep.requirement})" 66: end 67: 68: if current.source != dep.source 69: raise DslError, "You cannot specify the same gem twice coming from different sources. You " "specified that #{dep.name} (#{dep.requirement}) should come from " "#{current.source || 'an unspecfied source'} and #{dep.source}" 70: end 71: end 72: @dependencies << Dependency.new(name, version, options) 73: end
# File lib/bundler/dsl.rb, line 23 23: def gemspec(opts = nil) 24: path = opts && opts[:path] || '.' 25: name = opts && opts[:name] || '*' 26: development_group = opts && opts[:development_group] || :development 27: path = File.expand_path(path, Bundler.default_gemfile.dirname) 28: gemspecs = Dir[File.join(path, "#{name}.gemspec")] 29: 30: case gemspecs.size 31: when 1 32: spec = Gem::Specification.load(gemspecs.first) 33: raise InvalidOption, "There was an error loading the gemspec at #{gemspecs.first}." unless spec 34: gem spec.name, :path => path 35: spec.runtime_dependencies.each do |dep| 36: gem dep.name, *dep.requirement.as_list 37: end 38: group(development_group) do 39: spec.development_dependencies.each do |dep| 40: gem dep.name, *dep.requirement.as_list 41: end 42: end 43: when 0 44: raise InvalidOption, "There are no gemspecs at #{path}." 45: else 46: raise InvalidOption, "There are multiple gemspecs at #{path}. Please use the :name option to specify which one." 47: end 48: end
# File lib/bundler/dsl.rb, line 102 102: def git(uri, options = {}, source_options = {}, &blk) 103: unless block_given? 104: msg = "You can no longer specify a git source by itself. Instead, \n" "either use the :git option on a gem, or specify the gems that \n" "bundler should find in the git source by passing a block to \n" "the git method, like: \n\n" " git 'git://github.com/rails/rails.git' do\n" " gem 'rails'\n" " end" 105: raise DeprecatedError, msg 106: end 107: 108: source Source::Git.new(_normalize_hash(options).merge("uri" => uri)), source_options, &blk 109: end
# File lib/bundler/dsl.rb, line 123 123: def group(*args, &blk) 124: @groups.concat args 125: yield 126: ensure 127: args.each { @groups.pop } 128: end
# File lib/bundler/dsl.rb, line 98 98: def path(path, options = {}, source_options = {}, &blk) 99: source Source::Path.new(_normalize_hash(options).merge("path" => Pathname.new(path))), source_options, &blk 100: end
# File lib/bundler/dsl.rb, line 130 130: def platforms(*platforms) 131: @platforms.concat platforms 132: yield 133: ensure 134: platforms.each { @platforms.pop } 135: end
# File lib/bundler/dsl.rb, line 79 79: def source(source, options = {}) 80: case source 81: when :gemcutter, :rubygems, :rubyforge then 82: rubygems_source "http://rubygems.org" 83: return 84: when String 85: rubygems_source source 86: return 87: end 88: 89: @source = source 90: options[:prepend] ? @sources.unshift(@source) : @sources << @source 91: 92: yield if block_given? 93: @source 94: ensure 95: @source = nil 96: end
# File lib/bundler/dsl.rb, line 234 234: def _deprecated_options(options) 235: if options.include?(:require_as) 236: raise DeprecatedError, "Please replace :require_as with :require" 237: elsif options.include?(:vendored_at) 238: raise DeprecatedError, "Please replace :vendored_at with :path" 239: elsif options.include?(:only) 240: raise DeprecatedError, "Please replace :only with :group" 241: elsif options.include?(:except) 242: raise DeprecatedError, "The :except option is no longer supported" 243: end 244: end
# File lib/bundler/dsl.rb, line 175 175: def _normalize_hash(opts) 176: # Cannot modify a hash during an iteration in 1.9 177: opts.keys.each do |k| 178: next if String === k 179: v = opts[k] 180: opts.delete(k) 181: opts[k.to_s] = v 182: end 183: opts 184: end
# File lib/bundler/dsl.rb, line 186 186: def _normalize_options(name, version, opts) 187: _normalize_hash(opts) 188: 189: invalid_keys = opts.keys - %(group groups git path name branch ref tag require submodules platform platforms) 190: if invalid_keys.any? 191: plural = invalid_keys.size > 1 192: message = "You passed #{invalid_keys.map{|k| ':'+k }.join(", ")} " 193: if plural 194: message << "as options for gem '#{name}', but they are invalid." 195: else 196: message << "as an option for gem '#{name}', but it is invalid." 197: end 198: raise InvalidOption, message 199: end 200: 201: groups = @groups.dup 202: opts["group"] = opts.delete("groups") || opts["group"] 203: groups.concat Array(opts.delete("group")) 204: groups = [:default] if groups.empty? 205: 206: platforms = @platforms.dup 207: opts["platforms"] = opts["platform"] || opts["platforms"] 208: platforms.concat Array(opts.delete("platforms")) 209: platforms.map! { |p| p.to_sym } 210: platforms.each do |p| 211: next if VALID_PLATFORMS.include?(p) 212: raise DslError, "`#{p}` is not a valid platform. The available options are: #{VALID_PLATFORMS.inspect}" 213: end 214: 215: # Normalize git and path options 216: ["git", "path"].each do |type| 217: if param = opts[type] 218: if version.first && version.first =~ /^\s*=?\s*(\d[^\s]*)\s*$/ 219: options = opts.merge("name" => name, "version" => $1) 220: else 221: options = opts.dup 222: end 223: source = send(type, param, options, :prepend => true) {} 224: opts["source"] = source 225: end 226: end 227: 228: opts["source"] ||= @source 229: opts["env"] ||= @env 230: opts["platforms"] = platforms.dup 231: opts["group"] = groups 232: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.