Module: RSpec::Scaffold

Defined in:
lib/rspec/scaffold.rb,
lib/rspec/scaffold/cli.rb,
lib/rspec/scaffold/runner.rb,
lib/rspec/scaffold/version.rb,
lib/rspec/scaffold/generator.rb,
lib/rspec/scaffold/file_writer.rb,
lib/rspec/scaffold/dir_expander.rb,
lib/rspec/scaffold/condition_exhibit.rb,
lib/rspec/scaffold/spec_location_builder.rb

Defined Under Namespace

Classes: Cli, ConditionExhibit, DirExpander, FileWriter, Generator, Runner, SpecLocationBuilder

Constant Summary collapse

VERSION =
"2.0.1".freeze

Class Method Summary collapse

Class Method Details

.helper_fileObject

DEPRECATED



22
23
24
25
26
27
28
# File 'lib/rspec/scaffold.rb', line 22

def self.helper_file
  if Object.const_defined?("Rails") && RSpec::Core::Version::STRING.to_s >= '3'
    'rails_helper'
  else
    'spec_helper'
  end
end

.log(msg = nil, color = :green) ⇒ Object

refactored from runner for more general use



72
73
74
# File 'lib/rspec/scaffold.rb', line 72

def self.log(msg = nil, color = :green)
  return send(color, "  #{msg}")
end

.rootObject



67
68
69
# File 'lib/rspec/scaffold.rb', line 67

def self.root
  Pathname.new File.expand_path('../../..', __FILE__)
end

.testify_file(filepath, mode = :to_text, out: nil) ⇒ Object

RSpec::Scaffold.testify_file(filepath) mode = :to_file, :to_text



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rspec/scaffold.rb', line 32

def self.testify_file(filepath, mode=:to_text, out: nil)
  begin
    test_scaffold = RSpec::Scaffold::Generator.new(Ryan.new(filepath)).perform
  rescue => e
    RSpec::Scaffold.log("- parse error in '#{filepath}': #{e.message}", :red)
    return nil
  end

  scaffold_text = test_scaffold.join("\n")

  if out # pre-empts :mode and infers :to_file
    return RSpec::Scaffold::FileWriter.new(out, scaffold_text).write!
  else
    case mode
    when :to_file
      output_filename = filepath.sub(%r'\.rb\z', '_spec.rb')
      return RSpec::Scaffold::FileWriter.new(output_filename, scaffold_text).write!
    when :to_text
      return scaffold_text
    else
      raise("Unrecognized mode")
    end
  end
end

.testify_text(text) ⇒ Object

RSpec::Scaffold.testify_text(text)



58
59
60
61
62
63
64
65
# File 'lib/rspec/scaffold.rb', line 58

def self.testify_text(text)
  test_scaffold = RSpec::Scaffold::Generator.new(Ryan.new(text)).perform
  return test_scaffold.join("\n")
rescue => e
  message = "parse error: #{e.message}"
  RSpec::Scaffold.log(message, :red)
  return message
end