class Ecogem::Gemfile::Dependency

Attributes

gemfile[R]

Public Class Methods

new(gemfile, data) click to toggle source
# File lib/ecogem/gemfile/dependency.rb, line 6
def initialize(gemfile, data)
  @gemfile = gemfile
  @data = data
end

Public Instance Methods

code() click to toggle source
# File lib/ecogem/gemfile/dependency.rb, line 31
def code
  @code ||= begin
    a = ["gem \"#{name}\""]

    if !(versions.size == 1 && versions[0] == '>= 0')
      a << versions.map{|i| "\"#{i}\""}.join(', ')
    end

    if platforms.size > 0
      s = if platforms.size == 1
        ":#{platforms[0]}"
      else
        '[' + platforms.map{|i| ":#{i}"}.join(', ') + ']'
      end
      a << "platform: #{s}"
    end

    if groups.size > 0 && !(groups.size == 1 && groups[0] == :default)
      s = if groups.size == 1
        ":#{groups[0]}"
      else
        '[' + groups.map{|i| ":#{i}"}.join(', ') + ']'
      end
      a << "group: #{s}"
    end

    if s = source.code
      a << s
    end

    a.join(', ')
  end
end
groups() click to toggle source
# File lib/ecogem/gemfile/dependency.rb, line 27
def groups
  @groups ||= @data.instance_variable_get(:@groups).dup
end
name() click to toggle source
# File lib/ecogem/gemfile/dependency.rb, line 11
def name
  @data.name
end
platforms() click to toggle source
# File lib/ecogem/gemfile/dependency.rb, line 23
def platforms
  @platforms ||= @data.instance_variable_get(:@platforms).dup
end
source() click to toggle source
# File lib/ecogem/gemfile/dependency.rb, line 15
def source
  @source ||= ::Ecogem::Gemfile::Source.new(self, @data.instance_variable_get(:@source))
end
versions() click to toggle source
# File lib/ecogem/gemfile/dependency.rb, line 19
def versions
  @versions ||= @data.requirement.requirements.map{|i| "#{i[0]} #{i[1]}"}
end