Class: Composer::Package::Package

Inherits:
BasePackage show all
Defined in:
lib/composer/package/package.rb

Overview

Core package definitions that are needed to resolve dependencies and install packages

Direct Known Subclasses

CompletePackage

Constant Summary

Constants inherited from BasePackage

BasePackage::STABILITY_ALPHA, BasePackage::STABILITY_BETA, BasePackage::STABILITY_DEV, BasePackage::STABILITY_RC, BasePackage::STABILITY_STABLE, BasePackage::SUPPORTED_LINK_TYPES

Instance Attribute Summary collapse

Attributes inherited from BasePackage

#id, #name, #pretty_name, #pretty_version, #repository, #transport_options, #version

Instance Method Summary collapse

Methods inherited from BasePackage

stabilities, #to_s

Constructor Details

#initialize(name, version, pretty_version) ⇒ Package

Creates a new in memory package. Param: string name The package’s name Param: string version The package’s version Param: string prettyVersion The package’s non-normalized version



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/composer/package/package.rb', line 38

def initialize(name, version, pretty_version)
  super(name)

  # default values
  @extra = {}
  @binaries = []
  @requires = {}
  @conflicts = {}
  @provides = {}
  @replaces = {}
  @dev_requires = {}
  @suggests = {}
  @autoload = {}
  @dev_autoload = {}
  @include_paths = []
  @archive_excludes = []

  # init package attributes
  replace_version(version, pretty_version)

end

Instance Attribute Details

#archive_excludesObject

Returns the value of attribute archive_excludes.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def archive_excludes
  @archive_excludes
end

#autoloadObject

Returns the value of attribute autoload.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def autoload
  @autoload
end

#binariesObject

Returns the value of attribute binaries.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def binaries
  @binaries
end

#conflictsObject

Returns the value of attribute conflicts.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def conflicts
  @conflicts
end

#dev_autoloadObject

Returns the value of attribute dev_autoload.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def dev_autoload
  @dev_autoload
end

#dev_requiresObject

Returns the value of attribute dev_requires.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def dev_requires
  @dev_requires
end

#dist_mirrorsObject

Returns the value of attribute dist_mirrors.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def dist_mirrors
  @dist_mirrors
end

#dist_referenceObject

Returns the value of attribute dist_reference.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def dist_reference
  @dist_reference
end

#dist_sha1_checksumObject

Returns the value of attribute dist_sha1_checksum.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def dist_sha1_checksum
  @dist_sha1_checksum
end

#dist_typeObject

Returns the value of attribute dist_type.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def dist_type
  @dist_type
end

#dist_urlObject

Returns the value of attribute dist_url.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def dist_url
  @dist_url
end

#extraObject

Returns the value of attribute extra.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def extra
  @extra
end

#include_pathsObject

Returns the value of attribute include_paths.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def include_paths
  @include_paths
end

#installation_sourceObject

Returns the value of attribute installation_source.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def installation_source
  @installation_source
end

#notification_urlObject

Returns the value of attribute notification_url.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def notification_url
  @notification_url
end

#providesObject

Returns the value of attribute provides.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def provides
  @provides
end

#release_dateObject

Returns the value of attribute release_date.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def release_date
  @release_date
end

#replacesObject

Returns the value of attribute replaces.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def replaces
  @replaces
end

#requiresObject

Returns the value of attribute requires.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def requires
  @requires
end

#source_mirrorsObject

Returns the value of attribute source_mirrors.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def source_mirrors
  @source_mirrors
end

#source_referenceObject

Returns the value of attribute source_reference.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def source_reference
  @source_reference
end

#source_typeObject

Returns the value of attribute source_type.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def source_type
  @source_type
end

#source_urlObject

Returns the value of attribute source_url.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def source_url
  @source_url
end

#stabilityObject (readonly)

Returns the value of attribute stability.



21
22
23
# File 'lib/composer/package/package.rb', line 21

def stability
  @stability
end

#suggestsObject

Returns the value of attribute suggests.



23
24
25
# File 'lib/composer/package/package.rb', line 23

def suggests
  @suggests
end

Instance Method Details

#attributesObject



60
61
62
63
# File 'lib/composer/package/package.rb', line 60

def attributes
  dumper = Composer::Package::Dumper::HashDumper.new
  dumper.dump(self)
end

#is_devObject

Determine if development package Return: true if development package; Otherwise false.



100
101
102
# File 'lib/composer/package/package.rb', line 100

def is_dev
  @dev
end

#pretty_stringObject



94
95
96
# File 'lib/composer/package/package.rb', line 94

def pretty_string
  "#{pretty_name} #{pretty_version}"
end

#replace_version(version, pretty_version) ⇒ Object

Replaces current version and pretty version with passed values. It also sets stability. Param: string version The package’s normalized version Param: string prettyVersion The package’s non-normalized version



108
109
110
111
112
113
114
# File 'lib/composer/package/package.rb', line 108

def replace_version(version, pretty_version)
  @version = version
  @pretty_version = pretty_version

  @stability = Composer::Package::Version::VersionParser::parse_stability(version)
  @dev = @stability === 'dev'
end

#target_dirObject



81
82
83
84
85
# File 'lib/composer/package/package.rb', line 81

def target_dir
  return unless @target_dir
  regex = '(?:^|[\\\\/]+)\.\.?(?:[\\\\/]+|$)(?:\.\.?(?:[\\\\/]+|$))*'
  @target_dir.gsub(/#{regex}/x, '/').gsub(/^\/+/, '')
end

#target_dir=(target_dir) ⇒ Object



77
78
79
# File 'lib/composer/package/package.rb', line 77

def target_dir=(target_dir)
  @target_dir = target_dir
end

#typeObject

Get package type Return: string



73
74
75
# File 'lib/composer/package/package.rb', line 73

def type
  @type ? @type : 'library'
end

#type=(type) ⇒ Object

Set package type Param: string type



67
68
69
# File 'lib/composer/package/package.rb', line 67

def type=(type)
  @type = type
end

#unique_nameObject

Returns package unique name, constructed from name, version and release type. Return: string



90
91
92
# File 'lib/composer/package/package.rb', line 90

def unique_name
  "#{name}-#{version}"
end