Class: GemsSnapshot::YmlExporter

Inherits:
Object
  • Object
show all
Includes:
ExporterHelper
Defined in:
lib/gems_snapshot/exporter/yml_exporter.rb

Instance Method Summary collapse

Methods included from ExporterHelper

#installed_gems

Instance Method Details

#export(filename) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/gems_snapshot/exporter/yml_exporter.rb', line 7

def export(filename)
  hash_specs = {}
  installed_gems.each do |spec|
    versions = hash_specs[spec.name.to_s] || []
    versions << spec.version.to_s
    hash_specs[spec.name.to_s] = versions
  end

  gems = []
  hash_specs.each do |spec_name, versions|
    gems << {'name' => spec_name, 'versions' => versions}
  end

  main_hash = {'gems' => gems, 'sources' => Gem.sources}
  #puts main_hash.to_yaml.to_s  #for debug only :P

  File.open(filename, "w") { |file| file.puts(main_hash.to_yaml) }
  filename
end