class SousChef::Resource::Gemfile
Public Class Methods
new(context, name, &block)
click to toggle source
Calls superclass method
SousChef::Resource::Directory::new
# File lib/sous_chef/resource/gemfile.rb, line 6 def initialize(context, name, &block) super @gems = [] @sources = [] end
Public Instance Methods
gem(name, version=nil)
click to toggle source
# File lib/sous_chef/resource/gemfile.rb, line 12 def gem(name, version=nil) @gems << [name, version] end
path(path=nil)
click to toggle source
override
Calls superclass method
SousChef::Resource::Directory#path
# File lib/sous_chef/resource/gemfile.rb, line 21 def path(path=nil) if path super else gemfile = super gemfile = "#{gemfile}/Gemfile" unless gemfile.split('/').last == "Gemfile" gemfile end end
source(url)
click to toggle source
# File lib/sous_chef/resource/gemfile.rb, line 16 def source(url) @sources << url end
Protected Instance Methods
content()
click to toggle source
override
# File lib/sous_chef/resource/gemfile.rb, line 33 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