You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asciinema.org/app/helpers/asciicasts_helper.rb

28 lines
680 B
Ruby

module AsciicastsHelper
def player_data(asciicast)
data = File.read(asciicast.stdout.path)
time = File.read(asciicast.stdout_timing.path)
data_hex_array = data.bytes.map { |b| '\x' + format('%02x', b) }
var_data = "'#{data_hex_array.join}'"
time_lines = time.lines.map do |line|
delay, n = line.split
"[#{delay.to_f}, #{n.to_i}]"
end
var_time = "[#{time_lines.join(',')}]"
<<EOS.html_safe
<script>
var data = #{var_data};
var time = #{j var_time};
var cols = #{asciicast.terminal_columns};
var lines = #{asciicast.terminal_lines};
$(function() { new AsciiIo.Player(cols, lines, data, time); });
</script>
EOS
end
end