Class: Architext::Clipboard
- Inherits:
-
Object
- Object
- Architext::Clipboard
- Defined in:
- lib/architext/clipboard.rb
Defined Under Namespace
Classes: CommandFailed, Error, UnsupportedPlatform
Instance Method Summary collapse
- #copy(text) ⇒ Object
-
#initialize(runner: Open3.method(:capture3), env: ENV, host_os: RbConfig::CONFIG['host_os']) ⇒ Clipboard
constructor
A new instance of Clipboard.
Constructor Details
#initialize(runner: Open3.method(:capture3), env: ENV, host_os: RbConfig::CONFIG['host_os']) ⇒ Clipboard
Returns a new instance of Clipboard.
12 13 14 15 16 |
# File 'lib/architext/clipboard.rb', line 12 def initialize(runner: Open3.method(:capture3), env: ENV, host_os: RbConfig::CONFIG['host_os']) @runner = runner @env = env @host_os = host_os.to_s.downcase end |
Instance Method Details
#copy(text) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/architext/clipboard.rb', line 18 def copy(text) copied = false candidates.each do |command| _out, err, status = @runner.call(*command, stdin_data: text.to_s) if status.success? copied = true break end details = err.to_s.strip details = "exit #{status.exitstatus}" if details.empty? raise CommandFailed, "Clipboard command failed: #{command.join(' ')} (#{details})" rescue Errno::ENOENT next end return if copied raise UnsupportedPlatform, 'No supported clipboard command found. Use --stdout to print and pipe to your clipboard tool.' end |