class SpecFileGenerator::FileBuilder

Public Class Methods

new(klass, config = OpenStruct.new) click to toggle source
# File lib/spec_file_generator/file_builder.rb, line 9
def initialize(klass, config = OpenStruct.new)
  @klass = klass
  @config = config
end

Public Instance Methods

call() click to toggle source
# File lib/spec_file_generator/file_builder.rb, line 14
def call
  create_folder unless Dir.exist?(spec_folder_to_write)
  File.write(file_to_write, placeholder)
  file_to_write
end

Private Instance Methods

create_folder() click to toggle source
# File lib/spec_file_generator/file_builder.rb, line 34
def create_folder
  FileUtils.mkdir_p(spec_folder_to_write)
end
file_to_write() click to toggle source
# File lib/spec_file_generator/file_builder.rb, line 30
def file_to_write
  File.join(place_into, "#{path_without_extension}_spec.rb")
end
path_without_extension() click to toggle source
# File lib/spec_file_generator/file_builder.rb, line 22
def path_without_extension
  @klass.pathize.snakecase
end
place_into() click to toggle source
# File lib/spec_file_generator/file_builder.rb, line 38
def place_into
  @place_into ||= @config.place_into || "spec"
end
placeholder() click to toggle source
# File lib/spec_file_generator/file_builder.rb, line 42
    def placeholder
      <<~TEMPLATE
        # frozen_string_literal: true

        require 'spec_helper'

        RSpec.describe #{@klass} do
        end
      TEMPLATE
    end
spec_folder_to_write() click to toggle source
# File lib/spec_file_generator/file_builder.rb, line 26
def spec_folder_to_write
  @spec_folder_to_write ||= File.join(place_into, path_without_extension.split("/")[0..-2])
end