Sha256: 9f95fa532392f8cac6b40b08f72bc500fc5d6934af6c0afba8cdbffdd6a168a5
Contents?: true
Size: 1.25 KB
Versions: 4
Compression:
Stored size: 1.25 KB
Contents
require 'stringio' module SousChef module Resource class Gemfile < File def initialize(context, name, &block) super @gems = [] @sources = [] end def gem(name, version=nil) @gems << [name, version] end def source(url) @sources << url end # override def path(path=nil) if path super else gemfile = super gemfile = "#{gemfile}/Gemfile" unless gemfile.split('/').last == "Gemfile" gemfile end end protected # override def content result = StringIO.new if @sources.any? @sources.each { |url| result.puts %{source "#{url}"} } result.puts end max_name_size = 0 @gems.each {|name,| max_name_size = [max_name_size, name.size].max} @gems.sort_by {|name,| name.downcase}.each do |name, version| if version.nil? result.puts %{gem "#{name}"} else width = max_name_size + 3 # 2 quotes + comma result.printf %{gem %-#{width}s "%s"\n}, %{"#{name}",}, version end end result.string.strip end end end end
Version data entries
4 entries across 4 versions & 1 rubygems