Skip to content

Commit

Permalink
Update docs and tests to cover formatter options
Browse files Browse the repository at this point in the history
  • Loading branch information
mattbrictson committed Dec 29, 2015
1 parent b9cd0df commit 75fb82d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
10 changes: 4 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -443,24 +443,22 @@ ENV['SSHKIT_COLOR'] = 'TRUE'

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

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.
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.
1. Set the output format as described above. E.g. if your new formatter is called `FooBar`:

```ruby
SSHKit.config.use_format :foobar
```

If your formatter class takes a second `options` argument in its constructor, you can pass options to it like this:
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:

```ruby
SSHKit.config.use_format :foobar, :my_option => "value"
```

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

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

## Output Verbosity

Expand Down
5 changes: 5 additions & 0 deletions test/unit/formatters/test_custom.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ def test_double_chevron_logs_commands
assert_log_output 'C 1 /usr/bin/env ls'
end

def test_accepts_options_hash
custom = CustomFormatter.new(output, :foo => 'value')
assert_equal('value', custom.options[:foo])
end

private

def assert_log_output(expected_output)
Expand Down

0 comments on commit 75fb82d

Please sign in to comment.