class Rubysmith::Builders::Rake

Builds project skeleton Rake support.

Public Class Methods

call(...) click to toggle source
# File lib/rubysmith/builders/rake.rb, line 7
  def self.call(...) = new(...).call

  def initialize configuration, builder: Builder
    @configuration = configuration
    @builder = builder
  end

  def call
    return unless configuration.build_rake

    builder.call(configuration.with(template_path: "%project_name%/Rakefile.erb"))
           .render
           .replace(/\[\s+/, "[")
           .replace(/\s+\]/, "]")
           .replace("  ", "")
           .replace(/\n+(?=require)/, "\n")
           .replace(/\n{2,}/, "\n\n")
    nil
  end

  private

  attr_reader :configuration, :builder
end
new(configuration, builder: Builder) click to toggle source
# File lib/rubysmith/builders/rake.rb, line 9
def initialize configuration, builder: Builder
  @configuration = configuration
  @builder = builder
end

Public Instance Methods

call() click to toggle source
# File lib/rubysmith/builders/rake.rb, line 14
def call
  return unless configuration.build_rake

  builder.call(configuration.with(template_path: "%project_name%/Rakefile.erb"))
         .render
         .replace(/\[\s+/, "[")
         .replace(/\s+\]/, "]")
         .replace("  ", "")
         .replace(/\n+(?=require)/, "\n")
         .replace(/\n{2,}/, "\n\n")
  nil
end