How might I pass text data from the ruby console into my clipboard without saving to a file?
clipboard, pbcopy, ruby, unix
Solution
You can just echo it instead if there are no newline characters in the string; otherwise, use the `IO` class.
Using `echo`:
system "echo #{stringdata} | pbcopy"
OR
`echo #{stringdata} | pbcopy`
Ruby will then just rip the text from memory, inject it into the shell command which opens a pipe between the `echo` and `pbcopy` processes.
Using the `IO` class:
If you want to do it the Ruby way, we simply create a pipe with `pbcopy` using the IO class. This creates a shared files between the processes which we write to, and `pbcopy` will read from.
`IO.popen("pbcopy", "w") { |pipe| pipe.puts "Hello world!" }`
Problem
I'm trying to pass the array contained in a global variable I've created into my clipboard on my mac. It is very long so I don't want to highlight, copy & paste on my console. I want to use embedded unix code, specificially the `pbcopy` function for the mac laptop console that allows me to pass text into my computers clipboard, ready to paste. Were I to do this with a file-save, I'd do something like this (in ruby): ``` stringdata = “kflxkhdoudopudpdpudpudpyddoyod” File.open("temp.txt"){|f| f.write(stringdata)} `cat temp.txt | pbcopy` ``` But could I possibly do this without creating a temporary file? I'm sure this is possible. All things in text are possible. Thanks in advance for the solution