Skip to content

Commit 1864144

Browse files
authored
Merge pull request #34 from DannyBen/escape-quotes
Sanitize usage strings for quotes
2 parents f371f16 + 6b8a32a commit 1864144

File tree

7 files changed

+11
-11
lines changed

7 files changed

+11
-11
lines changed

lib/bashly/extensions/string.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class String
2-
def escape_newlines
3-
gsub "\n", "\\n"
2+
def sanitize_for_print
3+
gsub("\n", "\\n").gsub("\"", "\\\"")
44
end
55

66
def indent(offset)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# :argument.usage
22
echo " <%= name.upcase %>"
3-
echo -e "<%= help.wrap(76).indent(4).escape_newlines %>"
3+
echo -e "<%= help.wrap(76).indent(4).sanitize_for_print %>"
44
echo

lib/bashly/views/command/usage.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<%- else -%>
88
echo -e "<%= full_name %>"
99
echo
10-
echo -e "<%= help.wrap(78).indent(2).escape_newlines %>"
10+
echo -e "<%= help.wrap(78).indent(2).sanitize_for_print %>"
1111
echo
1212
<%- end -%>
1313
else

lib/bashly/views/command/usage_environment_variables.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
echo -e "<%= strings[:environment_variables] %>"
33
<%- environment_variables.each do |name, description| -%>
44
echo " <%= name %>"
5-
echo -e "<%= description.wrap(76).indent(4).escape_newlines %>"
5+
echo -e "<%= description.wrap(76).indent(4).sanitize_for_print %>"
66
<%- end -%>
77
echo

lib/bashly/views/command/usage_examples.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
echo -e "<%= strings[:examples] %>"
33

44
<%- examples.each do |example| -%>
5-
echo -e "<%= example.wrap(78).indent(2).escape_newlines %>"
5+
echo -e "<%= example.wrap(78).indent(2).sanitize_for_print %>"
66
<%- end -%>
77
echo

lib/bashly/views/flag/usage.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# :flag.usage
22
echo " <%= usage_string extended: true %>"
3-
echo -e "<%= help.wrap(76).indent(4).escape_newlines %>"
3+
echo -e "<%= help.wrap(76).indent(4).sanitize_for_print %>"
44
echo

spec/bashly/extensions/string_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
require 'spec_helper'
22

33
describe Array do
4-
describe '#escape_newlines' do
5-
subject { "hello\nworld" }
6-
it "escapes newlines" do
7-
expect(subject.escape_newlines).to eq "hello\\nworld"
4+
describe '#sanitize_for_print' do
5+
subject { %Q[this is\na "new line"] }
6+
it "escapes newlines and quotes" do
7+
expect(subject.sanitize_for_print).to eq "this is\\na \\\"new line\\\""
88
end
99
end
1010

0 commit comments

Comments
 (0)