class Hipmost::Cmds::Private

Public Class Methods

new(path:, verbose: false) click to toggle source
# File lib/hipmost/cmds/private.rb, line 4
def initialize(path:, verbose: false)
  $path    = Pathname.new(path).expand_path
  @outpath = $path.join("..", "Private Chats.jsonl").expand_path
  @verbose = verbose
end

Public Instance Methods

import(args) click to toggle source
# File lib/hipmost/cmds/private.rb, line 31
def import(args)
  File.open(@outpath, "w") do |jsonl|
    puts "Writing version header..." if @verbose
    jsonl.puts %[{ "type": "version", "version": 1 }]

    puts "Writing room members..." if @verbose
    Hipchat.users.each do |_,user|
      jsonl.puts(user.to_jsonl)
    end

    puts "Writing 1-on-1 room members..." if @verbose
    Hipchat.direct_channels.each do |members|
      puts members.inspect if @verbose
      jsonl.puts(%[{ "type": "direct_channel", "direct_channel": { "members": #{members.inspect} }}])
    end

    puts "Writing 1-on-1 room posts (oldest to newest)..." if @verbose
    Hipchat.direct_posts(jsonl, @verbose)
  end

  true
end
list(_args) click to toggle source
# File lib/hipmost/cmds/private.rb, line 22
def list(_args)
  puts "Listing Private chats" if @verbose
  Hipchat.direct_channels.each do |members|
    puts members.inspect
  end

  true
end
run(args) click to toggle source
# File lib/hipmost/cmds/private.rb, line 10
def run(args)
  subcommand = args.shift

  if ["list", "import"].include?(subcommand)
  else
    puts "Command invalid for `private`, must be `import` or `list`"
    exit 1
  end

  send(subcommand, args)
end