Module: BundlerFu::Lockfile::RootNode

Defined in:
lib/bundler-fu/lockfile.rb

Overview

{{{1

Instance Method Summary collapse

Instance Method Details

#_get_deps(deps, w_bang = false) ⇒ Object

{{{2



20
21
22
23
24
25
26
27
28
29
# File 'lib/bundler-fu/lockfile.rb', line 20

def _get_deps(deps, w_bang = false)                         # {{{2
  Hash[deps.map do |x|
    v   = x.version.respond_to?(:version) ?
          x.version.version.value.text_value : nil
    g   = x.gem.text_value
    d1  = { gem: g, version: v }
    d2  = w_bang ? d1.merge(bang: !x.bang.text_value.empty?) : d1
    [g, d2]
  end]
end

#_get_specs(specs) ⇒ Object

}}}2



31
32
33
34
35
36
37
38
# File 'lib/bundler-fu/lockfile.rb', line 31

def _get_specs(specs)                                       # {{{2
  Hash[specs.map do |x|
    g = x.gem.text_value
    d = { gem: g, version: x.version.value.text_value,
          deps: _get_deps(x.deps.elements) }
    [g, d]
  end]
end

#get_dependenciesObject



76
77
78
# File 'lib/bundler-fu/lockfile.rb', line 76

def get_dependencies
  _get_deps dependencies.dependencies.elements, true
end

#get_gemsObject

}}}2



72
73
74
# File 'lib/bundler-fu/lockfile.rb', line 72

def get_gems
  _get_specs gems.specs.specs.elements
end

#get_gitsObject

{{{2



48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/bundler-fu/lockfile.rb', line 48

def get_gits                                                # {{{2
  Hash[gits.elements.map do |x|
    b     = x.branch.respond_to?(:branch) ?
            x.branch.branch.text_value : nil
    s     = _get_specs x.specs.specs.elements
    g, v  = s.first[1].values_at(:gem, :version)
    d     = { gem: g, version: v,
              remote: x.remote.url.text_value,
              revision: x.revision.revision.text_value,
              branch: b, specs: s }
    [g, d]
  end]
end

#get_pathsObject

}}}2



62
63
64
65
66
67
68
69
70
# File 'lib/bundler-fu/lockfile.rb', line 62

def get_paths                                               # {{{2
  Hash[paths.elements.map do |x|
    s     = _get_specs x.specs.specs.elements
    g, v  = s.first[1].values_at(:gem, :version)
    d     = { gem: g, version: v,
              remote: x.remote.url.text_value, specs: s }
    [g, d]
  end]
end

#get_platformsObject



44
45
46
# File 'lib/bundler-fu/lockfile.rb', line 44

def get_platforms
  platforms.platforms.elements.map { |x| x.name.text_value }
end

#get_remoteObject

}}}2



40
41
42
# File 'lib/bundler-fu/lockfile.rb', line 40

def get_remote
  gems.remote.url.text_value
end