Module: Librarian::RSpec::Support::CliMacro
- Defined in:
- lib/librarian/rspec/support/cli_macro.rb
Defined Under Namespace
Classes: FakeShell, FileMatcher
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.included(base) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 51
def self.included(base)
base.instance_exec do
let(:project_path) do
project_path = Pathname.new(__FILE__).expand_path
project_path = project_path.dirname until project_path.join("Rakefile").exist?
project_path
end
let(:tmp) { project_path.join("tmp/spec/cli") }
let(:pwd) { tmp + SecureRandom.hex(8) }
before { tmp.mkpath }
before { pwd.mkpath }
after { tmp.rmtree }
end
end
|
Instance Method Details
#cli!(*args) ⇒ Object
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 68
def cli!(*args)
@shell = FakeShell.new
@exit_status = Dir.chdir(pwd) do
described_class.with_environment do
described_class.returning_status do
described_class.start args, :shell => @shell
end
end
end
end
|
#exit_status ⇒ Object
105
106
107
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 105
def exit_status
@exit_status
end
|
#have_file(rel_path, content = nil) ⇒ Object
109
110
111
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 109
def have_file(rel_path, content = nil)
FileMatcher.new(rel_path, content)
end
|
#have_json_file(rel_path, content) ⇒ Object
113
114
115
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 113
def have_json_file(rel_path, content)
FileMatcher.new(rel_path, content, :type => :json)
end
|
#shell ⇒ Object
93
94
95
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 93
def shell
@shell
end
|
#stderr ⇒ Object
101
102
103
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 101
def stderr
shell.stderr.string
end
|
#stdout ⇒ Object
97
98
99
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 97
def stdout
shell.stdout.string
end
|
#strip_heredoc(text) ⇒ Object
#write_file!(path, content) ⇒ Object
79
80
81
82
83
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 79
def write_file!(path, content)
path = pwd.join(path)
path.dirname.mkpath
path.open("wb"){|f| f.write(content)}
end
|
#write_json_file!(path, content) ⇒ Object
85
86
87
|
# File 'lib/librarian/rspec/support/cli_macro.rb', line 85
def write_json_file!(path, content)
write_file! path, JSON.dump(content)
end
|