Skip to content

Commit 75fb82d

Browse files
committed
Update docs and tests to cover formatter options
1 parent b9cd0df commit 75fb82d

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -443,24 +443,22 @@ ENV['SSHKIT_COLOR'] = 'TRUE'
443443

444444
Want custom output formatting? Here's what you have to do:
445445

446-
1. Write a new formatter class in the `SSHKit::Formatter` module. As an example, check out the default [pretty](https://github.com/capistrano/sshkit/blob/master/lib/sshkit/formatters/pretty.rb) formatter.
446+
1. Write a new formatter class in the `SSHKit::Formatter` module. Your class should subclass `SSHKit::Formatter::Abstract` to inherit conveniences and common behavior. For a basic an example, check out the [Pretty](https://github.com/capistrano/sshkit/blob/master/lib/sshkit/formatters/pretty.rb) formatter.
447447
1. Set the output format as described above. E.g. if your new formatter is called `FooBar`:
448448

449449
```ruby
450450
SSHKit.config.use_format :foobar
451451
```
452452

453-
If your formatter class takes a second `options` argument in its constructor, you can pass options to it like this:
453+
All formatters that extend from `SSHKit::Formatter::Abstract` accept an options Hash as a constructor argument. You can pass options to your formatter like this:
454454

455455
```ruby
456456
SSHKit.config.use_format :foobar, :my_option => "value"
457457
```
458458

459-
Which will call your constructor:
459+
You can then access these options using the `options` accessor within your formatter code.
460460

461-
```ruby
462-
SSHKit::Formatter::FooBar.new($stdout, :my_option => "value")
463-
```
461+
For a much more full-featured formatter example that makes use of options, check out the [Airbrussh repository](https://github.com/mattbrictson/airbrussh/).
464462

465463
## Output Verbosity
466464

test/unit/formatters/test_custom.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ def test_double_chevron_logs_commands
4343
assert_log_output 'C 1 /usr/bin/env ls'
4444
end
4545

46+
def test_accepts_options_hash
47+
custom = CustomFormatter.new(output, :foo => 'value')
48+
assert_equal('value', custom.options[:foo])
49+
end
50+
4651
private
4752

4853
def assert_log_output(expected_output)

0 commit comments

Comments
 (0)