summaryrefslogtreecommitdiff
path: root/lib/rubygems/specification.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/specification.rb')
-rw-r--r--lib/rubygems/specification.rb84
1 files changed, 53 insertions, 31 deletions
diff --git a/lib/rubygems/specification.rb b/lib/rubygems/specification.rb
index 08614cd9eb..87557cee5f 100644
--- a/lib/rubygems/specification.rb
+++ b/lib/rubygems/specification.rb
@@ -188,15 +188,19 @@ class Gem::Specification
attr_reader :version
##
- # Paths in the gem to add to <tt>$LOAD_PATH</tt> when this gem is activated.
+ # Paths in the gem to add to <code>$LOAD_PATH</code> when this gem is
+ # activated.
+ #
+ # If you have an extension you do not need to add <code>"ext"</code> to the
+ # require path, the extension build process will copy the extension files
+ # into "lib" for you.
+ #
+ # The default value is <code>"lib"</code>
#
# Usage:
#
# # If all library files are in the root directory...
# spec.require_path = '.'
- #
- # # If you have 'lib' and 'ext' directories...
- # spec.require_paths << 'ext'
attr_accessor :require_paths
@@ -210,7 +214,7 @@ class Gem::Specification
##
# A short summary of this gem's description. Displayed in `gem list -d`.
#
- # The description should be more detailed than the summary.
+ # The #description should be more detailed than the summary.
#
# Usage:
#
@@ -223,21 +227,23 @@ class Gem::Specification
#
# This is usually Gem::Platform::RUBY or Gem::Platform::CURRENT.
#
- # Most gems contain pure Ruby code; they should simply leave the default value
- # in place. Some gems contain C (or other) code to be compiled into a Ruby
- # “extension”. The should leave the default value in place unless their code
- # will only compile on a certain type of system. Some gems consist of
- # pre-compiled code (“binary gems”). It’s especially important that they set
- # the platform attribute appropriately. A shortcut is to set the platform to
- # Gem::Platform::CURRENT, which will cause the gem builder to set the platform
- # to the appropriate value for the system on which the build is being performed.
+ # Most gems contain pure Ruby code; they should simply leave the default
+ # value in place. Some gems contain C (or other) code to be compiled into a
+ # Ruby "extension". The should leave the default value in place unless
+ # their code will only compile on a certain type of system. Some gems
+ # consist of pre-compiled code ("binary gems"). It's especially important
+ # that they set the platform attribute appropriately. A shortcut is to set
+ # the platform to Gem::Platform::CURRENT, which will cause the gem builder
+ # to set the platform to the appropriate value for the system on which the
+ # build is being performed.
#
- # If this attribute is set to a non-default value, it will be included in the
- # filename of the gem when it is built, e.g. fxruby-1.2.0-win32.gem.
+ # If this attribute is set to a non-default value, it will be included in
+ # the filename of the gem when it is built such as:
+ # nokogiri-1.6.0-x86-mingw32.gem
#
# Usage:
#
- # spec.platform = Gem::Platform::Win32
+ # spec.platform = Gem::Platform.local
def platform= platform
if @original_platform.nil? or
@@ -339,7 +345,7 @@ class Gem::Specification
attr_reader :description
##
- # A contact email for this gem
+ # A contact email address (or addresses) for this gem
#
# Usage:
#
@@ -455,6 +461,8 @@ class Gem::Specification
# Usage:
#
# spec.extensions << 'ext/rmagic/extconf.rb'
+ #
+ # See Gem::Ext::Builder for information about writing extensions for gems.
def extensions
@extensions ||= []
@@ -484,6 +492,8 @@ class Gem::Specification
# This should just be the name of your license. The full
# text of the license should be inside of the gem when you build it.
#
+ # You can set multiple licenses with #licenses=
+ #
# Usage:
# spec.license = 'MIT'
@@ -520,15 +530,20 @@ class Gem::Specification
end
##
- # The version of ruby required by this gem
+ # The version of Ruby required by this gem. The ruby version can be
+ # specified to the patch-level:
+ #
+ # $ ruby -v -e 'p Gem.ruby_version'
+ # ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]
+ # #<Gem::Version "2.0.0.247">
#
# Usage:
#
- # # If it will work with 1.8.6 or greater...
+ # # This gem will work with 1.8.6 or greater...
# spec.required_ruby_version = '>= 1.8.6'
#
- # # Hopefully by now:
- # spec.required_ruby_version = '>= 1.9.2'
+ # # Only with ruby 2.0.x
+ # spec.required_ruby_version = '~> 2.0'
def required_ruby_version= req
@required_ruby_version = Gem::Requirement.create req
@@ -536,7 +551,7 @@ class Gem::Specification
##
# Lists the external (to RubyGems) requirements that must be met for this gem
- # to work. It’s simply information for the user.
+ # to work. It's simply information for the user.
#
# Usage:
#
@@ -548,7 +563,7 @@ class Gem::Specification
end
##
- # A collection of unit test files. They will be loaded as unit tests when
+ # A collection of unit test files. They will be loaded as unit tests when
# the user requests a gem to be unit tested.
#
# Usage:
@@ -574,7 +589,7 @@ class Gem::Specification
#
# Deprecated: It is neither supported nor functional.
- attr_accessor :autorequire
+ attr_accessor :autorequire # :nodoc:
##
# Sets the default executable for this gem.
@@ -602,9 +617,12 @@ class Gem::Specification
# The RubyGems version required by this gem
attr_reader :required_rubygems_version
+
##
# The rubyforge project this gem lives under. i.e. RubyGems'
# rubyforge_project is "rubygems".
+ #
+ # This option is deprecated.
attr_accessor :rubyforge_project
@@ -1267,7 +1285,7 @@ class Gem::Specification
end
##
- # Singular reader for #authors
+ # Singular reader for #authors. Returns the first author in the list
def author
val = authors and val.first
@@ -1275,6 +1293,8 @@ class Gem::Specification
##
# The list of author names who wrote this gem.
+ #
+ # spec.authors = ['Chad Fowler', 'Jim Weirich', 'Rich Kilmer']
def authors
@authors ||= []
@@ -1381,7 +1401,9 @@ class Gem::Specification
end
##
- # The date this gem was created. Lazily defaults to TODAY.
+ # The date this gem was created. Lazily defaults to the current UTC date.
+ #
+ # There is no need to set this in your gem specification.
def date
@date ||= TODAY
@@ -1428,7 +1450,7 @@ class Gem::Specification
# Deprecated: The name of the gem is assumed to be the name of the
# executable now. See Gem.bin_path.
- def default_executable
+ def default_executable # :nodoc:
if defined?(@default_executable) and @default_executable
result = @default_executable
elsif @executables and @executables.size == 1
@@ -1487,7 +1509,7 @@ class Gem::Specification
end
##
- # A long description of this gem
+ # A detailed description of this gem. See also #summary
def description= str
@description = str.to_s
@@ -1676,7 +1698,7 @@ class Gem::Specification
#
# Formerly used to indicate this gem was RDoc-capable.
- def has_rdoc
+ def has_rdoc # :nodoc:
true
end
@@ -1685,11 +1707,11 @@ class Gem::Specification
#
# Formerly used to indicate this gem was RDoc-capable.
- def has_rdoc= ignored
+ def has_rdoc= ignored # :nodoc:
@has_rdoc = true
end
- alias :has_rdoc? :has_rdoc
+ alias :has_rdoc? :has_rdoc # :nodoc:
##
# True if this gem has files in test_files