class Rubysmith::Builders::RSpec::Context

Builds RSpec shared context for temporary directories.

Public Class Methods

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

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

  def call
    return unless configuration.build_rspec

    template = "%project_name%/spec/support/shared_contexts/temp_dir.rb.erb"
    configuration.with(template_path: template)
                 .then { |updated_configuration| builder.call updated_configuration }
                 .render
                 .replace(/\n\s+\n\s+/, "\n  ")
  end

  private

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

Public Instance Methods

call() click to toggle source
# File lib/rubysmith/builders/rspec/context.rb, line 15
def call
  return unless configuration.build_rspec

  template = "%project_name%/spec/support/shared_contexts/temp_dir.rb.erb"
  configuration.with(template_path: template)
               .then { |updated_configuration| builder.call updated_configuration }
               .render
               .replace(/\n\s+\n\s+/, "\n  ")
end