module RailsappFactory::TemplateMethods

Attributes

template[R]

Public Instance Methods

append_to_template(text, source="append_to_template") click to toggle source
# File lib/railsapp_factory/template_methods.rb, line 30
def append_to_template(text, source="append_to_template")
  unless @template
    template_dir = File.join(base_dir, 'templates')
    FileUtils.mkdir_p(template_dir) unless File.directory?(template_dir)
    @template = Tempfile.new('append_', template_dir).path + '.rb'
  end
  open(@template, 'a+') do |f|
    f.puts "\n# #{source}:"
    f.puts text
  end
end
process_template() click to toggle source
# File lib/railsapp_factory/template_methods.rb, line 11
def process_template
  if self.template
    if self.built?
      if self.version =~ /^2/
        # recheck config/environment.rb in case the template/s add more config.gem lines
        use_template 'templates/use_bundler_with_rails23.rb'
      end
      self.logger.info "Processing template #{@template}"
      unless self.system_in_app "sh -xc '.bundle/bin/rake rails:template LOCATION=#{@template}' #{append_log 'template.log'}"
        raise RailsappFactory::BuildError.new("rake rails:template returned exist status #{$?} #{see_log 'rails_new.log'}")
      end
      clear_template
    else
      # build actions template
      self.build
    end
  end
end
use_template(template) click to toggle source
# File lib/railsapp_factory/template_methods.rb, line 42
def use_template(template)
  append_to_template(open(template).read, "use_template(#{template}")
end

Protected Instance Methods

clear_template() click to toggle source
# File lib/railsapp_factory/template_methods.rb, line 48
def clear_template
  @template = nil
end