Module: Development::Directory::DirectoryInterface

Included in:
Development::Directory
Defined in:
lib/development/directory/directory_interface.rb

Overview

Interface for directory implementation. Implementation provided separately for ease of overloading.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#nameObject (readonly)

Name.



57
58
59
# File 'lib/development/directory/directory_interface.rb', line 57

def name
  @name
end

#Name.Object (readonly)

Path.



57
# File 'lib/development/directory/directory_interface.rb', line 57

attr_reader :name

#pathObject (readonly)

Path.



83
84
85
# File 'lib/development/directory/directory_interface.rb', line 83

def path
  @path
end

Instance Method Details

#add(gem_or_gemset, ...) ⇒ ::Development::Directory

Add gems or gemsets to directory.

Parameters:

  • gem_or_gemset

    Gem or Gemset instance or name to add to directory.

Returns:



133
134
135
136
137
138
139
# File 'lib/development/directory/directory_interface.rb', line 133

def add( *gems_or_gemsets )
  
  @gemset.add( *gems_or_gemsets )

  return self
  
end

#delete(gem_or_gemset, ...) ⇒ ::Development::Directory Also known as: remove

Remove gems or gemsets from directory.

Parameters:

  • gem_or_gemset

    Gem or Gemset instance or name to add to directory.

Returns:



157
158
159
160
161
# File 'lib/development/directory/directory_interface.rb', line 157

def delete( *gems_or_gemsets )
  
  return @gemset.delete( *gems_or_gemsets )
  
end

#initialize(name, path_part, ...) ⇒ Object

Parameters:

  • name

    Reference name for directory.

  • path_part

    Part of path; the first can be a symbol referring to a named path or a string, all other parts must be strings.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/development/directory/directory_interface.rb', line 24

def initialize( name, *path_parts )

  @name = name
      
  self.set_path( *path_parts )
  
  # a directory is also a gemset
  @gemset = ::Development.gemset( name )
  @gemset.set_directory( self )

  # if there's a gem or gemset name by this directory name, 
  # we use it unless gem or gemset already has a directory
  if name
    if gem_instance = ::Development.get_gem( name )
      gem_instance.set_directory( self )
    end

    if gemset_instance = ::Development.get_gemset( name )
      gemset_instance.set_directory( self )
    end
  end
  
end

#membersArray<::Development::Gem,::Development::Gemset>

Gems or Gemsets with self as their directory.

Returns:



68
69
70
71
72
# File 'lib/development/directory/directory_interface.rb', line 68

def members
  
  return @gemset.members
  
end

#set_path(*path_parts) ⇒ ::Development::Directory

Set Path.

Parameters:

  • path

    Path string.

Returns:



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/development/directory/directory_interface.rb', line 98

def set_path( *path_parts )
  
  if path_parts[ 0 ].is_a?( ::Symbol )
    base_directory_name = path_parts[ 0 ]
    base_directory = ::Development.get_directory( base_directory_name )
    path_parts[ 0 ] = base_directory.path
  end
  
  path_parts.collect!( & :to_s )
  
  if path_parts[ 0 ].nil?
    @path = nil
  else
    @path = ::File.expand_path( ::File.join( *path_parts ) )
  end
  
  return self
  
end