Deprecated methods
# File lib/bundler/dsl.rb, line 158 def self.deprecate(name, replacement = nil) define_method(name) do |*| message = "'#{name}' has been removed from the Gemfile DSL, " if replacement message << "and has been replaced with '#{replacement}'." else message << "and is no longer supported." end message << "\nSee the README for more information on upgrading from Bundler 0.8." raise DeprecatedError, message end end
# File lib/bundler/dsl.rb, line 149 def env(name) @env, old = name, @env yield ensure @env = old end
# File lib/bundler/dsl.rb, line 47 def gem(name, *args) if name.is_a?(Symbol) raise GemfileError, %{You need to specify gem names as Strings. Use 'gem "#{name.to_s}"' instead.} end options = Hash === args.last ? args.pop : {} version = args || [">= 0"] _deprecated_options(options) _normalize_options(name, version, options) dep = Dependency.new(name, version, options) # if there's already a dependency with this name we try to prefer one if current = @dependencies.find { |d| d.name == dep.name } if current.requirement != dep.requirement if current.type == :development @dependencies.delete current elsif dep.type == :development return else raise DslError, "You cannot specify the same gem twice with different version requirements. " "You specified: #{current.name} (#{current.requirement}) and " "#{dep.name} (#{dep.requirement})" end end if current.source != dep.source if current.type == :development @dependencies.delete current elsif dep.type == :development return else 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}" end end end @dependencies << dep end
# File lib/bundler/dsl.rb, line 23 def gemspec(opts = nil) path = opts && opts[:path] || '.' name = opts && opts[:name] || '{,*}' development_group = opts && opts[:development_group] || :development path = File.expand_path(path, Bundler.default_gemfile.dirname) gemspecs = Dir[File.join(path, "#{name}.gemspec")] case gemspecs.size when 1 spec = Bundler.load_gemspec(gemspecs.first) raise InvalidOption, "There was an error loading the gemspec at #{gemspecs.first}." unless spec gem spec.name, :path => path group(development_group) do spec.development_dependencies.each do |dep| gem dep.name, *(dep.requirement.as_list + [:type => :development]) end end when 0 raise InvalidOption, "There are no gemspecs at #{path}." else raise InvalidOption, "There are multiple gemspecs at #{path}. Please use the :name option to specify which one." end end
# File lib/bundler/dsl.rb, line 113 def git(uri, options = {}, source_options = {}, &blk) unless block_given? 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" raise DeprecatedError, msg end source Source::Git.new(_normalize_hash(options).merge("uri" => uri)), source_options, &blk end
# File lib/bundler/dsl.rb, line 134 def group(*args, &blk) @groups.concat args yield ensure args.each { @groups.pop } end
# File lib/bundler/dsl.rb, line 109 def path(path, options = {}, source_options = {}, &blk) source Source::Path.new(_normalize_hash(options).merge("path" => Pathname.new(path))), source_options, &blk end
# File lib/bundler/dsl.rb, line 141 def platforms(*platforms) @platforms.concat platforms yield ensure platforms.each { @platforms.pop } end
# File lib/bundler/dsl.rb, line 90 def source(source, options = {}) case source when :gemcutter, :rubygems, :rubyforge then rubygems_source "http://rubygems.org" return when String rubygems_source source return end @source = source options[:prepend] ? @sources.unshift(@source) : @sources << @source yield if block_given? @source ensure @source = nil end
Generated with the Darkfish Rdoc Generator 2.