Class: Gems::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/gems/config.rb

Direct Known Subclasses

Updater

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Config

Returns a new instance of Config.



8
9
10
# File 'lib/gems/config.rb', line 8

def initialize(name)
  @name = name
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



6
7
8
# File 'lib/gems/config.rb', line 6

def name
  @name
end

Instance Method Details

#add_gems(file) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/gems/config.rb', line 12

def add_gems(file)
  new_gems = Gems::Parser.new(file).gems
  new_gems.each do |gemname, versions|
    versions.each do |version|
      add_gem(gemname, version)
    end
  end
  save_config
end

#export_gems(file) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/gems/config.rb', line 22

def export_gems(file)
  File.open(file,'wb') do |f|
    gems.sort_by{|gemname, versions| gemname}.each do |gemname, versions|
      f.puts "%s (%s)" % [gemname, versions.join(", ")]
    end
  end
end

#gemsObject

Load gems.

Returns a Gems::List.

Old data structures are automatically converted to new data structures.



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/gems/config.rb', line 50

def gems
  gem_data = (project['gems'] ||= Gems::List.new)
  return gem_data if gem_data.kind_of? Gems::List
  if gem_data.kind_of? Hash
    project['gems'] = Gems::List.new(gem_data)
    save_config
    return gems
  end
  new_gems = Gems::List.new
  gem_data.each do |gem_ary|
    new_gems[gem_ary[0]] = gem_ary[1]
  end
  project['gems'] = new_gems
  save_config
  return gems
end

#import_gems(file) ⇒ Object



30
31
32
33
34
# File 'lib/gems/config.rb', line 30

def import_gems(file)
  new_gems = Gems::Parser.new(file).gems
  self.gems = new_gems
  save_config
end

#options_for(gemname) ⇒ Object



36
37
38
# File 'lib/gems/config.rb', line 36

def options_for(gemname)
  gem_options[gemname] || []
end

#project_namesObject



67
68
69
# File 'lib/gems/config.rb', line 67

def project_names
  projects.keys.sort
end

#set_gem_options(gemname, options) ⇒ Object



40
41
42
43
# File 'lib/gems/config.rb', line 40

def set_gem_options(gemname, options)
  gem_options[gemname] = options
  save_config
end