class ChatWorkToSlack::Client

Attributes

channel[R]
chatwork_api_key[R]
chatwork_csv_path[R]
room_id[R]
users[R]
workdir[R]

Public Class Methods

new(args) click to toggle source
# File lib/chatwork_to_slack.rb, line 11
def initialize(args)
  @room_id = args[:room_id]
  @channel = args[:channel]
  @workdir = args[:workdir]
  @users = args[:users]
  @chatwork_csv_path = args[:chatwork_csv_path]
  @chatwork_api_key = args[:chatwork_api_key]
end

Public Instance Methods

generate_template() click to toggle source
# File lib/chatwork_to_slack.rb, line 32
def generate_template
  CSV.generate do |csv|
    csv << ['chatwork_account_id', 'chatwork_name', 'slack_name']
    chatwork_users.each do |u|
      csv << [u['account_id'], u['name'], u['chatwork_id']]
    end
  end
end
to_csv() click to toggle source
# File lib/chatwork_to_slack.rb, line 20
def to_csv
  invalid_users.each do |name|
    puts "[WARN] #{name} is not valid slack username"
  end

  CSV.generate do |csv|
    slack_messages.each do |slack_message|
      csv << slack_message
    end
  end
end

Private Instance Methods

chatwork_messages() click to toggle source
# File lib/chatwork_to_slack.rb, line 55
def chatwork_messages
  CSV.read(chatwork_csv_path)
end
chatwork_users() click to toggle source
# File lib/chatwork_to_slack.rb, line 43
def chatwork_users
  @chatwork_users ||= ->{
    return [] unless chatwork_api_key
    ChatWork.api_key = chatwork_api_key
    ChatWork::Contacts.get.push(ChatWork::Me.get)
  }.call
end
invalid_users() click to toggle source
# File lib/chatwork_to_slack.rb, line 59
def invalid_users
  slack_messages.map{|m| m[2]}.uniq.reject{|u| u.gsub(/[0-9]/,'').match(/[\w\.\-]+/)}
end
messages() click to toggle source
# File lib/chatwork_to_slack.rb, line 69
def messages
  valid_messages.map do |message|
    Message.new(
      message: message,
      users: users,
      channel: channel
    ).to_slack
  end
end
slack_messages() click to toggle source
# File lib/chatwork_to_slack.rb, line 79
def slack_messages
  messages.sort{|a, b| a[0] <=> b[0]}
end
valid_messages() click to toggle source
# File lib/chatwork_to_slack.rb, line 63
def valid_messages
  chatwork_messages.reject do |message|
    message[2] == '[deleted]'
  end
end