diff --git a/.travis.yml b/.travis.yml index ae5fcd93..ed2f1072 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,25 +10,12 @@ node_js: - "4" - "4.2" env: - - HUBOT_VERSION=">=2.0 <3" COFFEESCRIPT_VERSION=">=1.6.3 <2.0" - - HUBOT_VERSION="^3.0" COFFEESCRIPT_VERSION=">=1.6.3 <2.0" - - HUBOT_VERSION="^3.0" COFFEESCRIPT_VERSION="^2.0" -# Excluding tests with Coffeescript 2 on nodejs version <= 5 -# because the syntax incompatible issue. Coffeescript 2 use -# destructuring assignment syntax at https://git.io/fjcq2 but -# nodejs <= 5 doesn't support. -matrix: - exclude: - - node_js: "4.2" - env: HUBOT_VERSION="^3.0" COFFEESCRIPT_VERSION="^2.0" - - node_js: "4" - env: HUBOT_VERSION="^3.0" COFFEESCRIPT_VERSION="^2.0" - - node_js: "5" - env: HUBOT_VERSION="^3.0" COFFEESCRIPT_VERSION="^2.0" + - HUBOT_VERSION=">=2.0 <3" + - HUBOT_VERSION="^3.0" after_success: - npm run codecov # The second step here installs the specific hubot version determined # by the `env` specified in the matrix. That lets us test against # multiple Hubot versions. This is a bit messy, but works around # package.json only being able to specify one version. -script: npm install && npm install hubot@"$HUBOT_VERSION" coffeescript@"$COFFEESCRIPT_VERSION" && npm test +script: npm install && npm install hubot@"$HUBOT_VERSION" && npm test diff --git a/src/bot.coffee b/src/bot.coffee index 43474796..65b5a89f 100644 --- a/src/bot.coffee +++ b/src/bot.coffee @@ -16,9 +16,8 @@ class SlackBot extends Adapter # @param {Object} options.rtm - RTM configuration options for SlackClient # @param {Object} options.rtmStart - options for `rtm.start` Web API method ### - constructor: (robot, @options) -> - super robot - @robot = robot + constructor: (@robot, @options) -> + super @robot.logger.info "hubot-slack adapter v#{pkg.version}" @client = new SlackClient @options, @robot @@ -306,9 +305,9 @@ class SlackBot extends Adapter @robot.logger.debug "Received presence update message for users: #{u.id for u in users} with status: #{event.presence}" @receive new PresenceMessage(users, event.presence) - + else if event.type is "file_shared" - + # Once again Hubot expects all user objects to have a room property that is used in the envelope for the message # after it is received. If the reaction is to a message, then the `event.item.channel` contain a conversation ID. # Otherwise reactions can be on files and file comments, which are "global" and aren't contained in a diff --git a/src/message.coffee b/src/message.coffee index c277f55f..2dc02890 100644 --- a/src/message.coffee +++ b/src/message.coffee @@ -17,11 +17,10 @@ class ReactionMessage extends Message # custom integration (not part of a Slack app with a bot user), then this value will be undefined. # @param {string} event_ts - A String of the reaction event timestamp. ### - constructor: (@type, user, @reaction, @item_user, @item, @event_ts) -> - super user - @user = user + constructor: (@type, @user, @reaction, @item_user, @item, @event_ts) -> + super @user @type = @type.replace("reaction_", "") - + class FileSharedMessage extends Message ###* @@ -32,9 +31,8 @@ class FileSharedMessage extends Message # @param {string} file_id - A String identifying the file_id of the file that was shared. # @param {string} event_ts - A String of the file_shared event timestamp. ### - constructor: (user, @file_id, @event_ts) -> - super user - @user = user + constructor: (@user, @file_id, @event_ts) -> + super @user class PresenceMessage extends Message @@ -81,12 +79,7 @@ class SlackTextMessage extends TextMessage # @param {string} robot_name - The Slack username for this robot # @param {string} robot_alias - The alias for this robot ### - constructor: (user, text, rawText, rawMessage, channel_id, robot_name, robot_alias) -> - super user, text, rawMessage.ts - - @user = user - @text = text - @rawMessage = rawMessage + constructor: (@user, @text, rawText, @rawMessage, channel_id, robot_name, robot_alias) -> # private instance properties @_channel_id = channel_id @_robot_name = robot_name @@ -97,6 +90,8 @@ class SlackTextMessage extends TextMessage @thread_ts = @rawMessage.thread_ts if @rawMessage.thread_ts? @mentions = [] + super @user, @text, @rawMessage.ts + ###* # Build the text property, a flat string representation of the contents of this message. # @@ -267,4 +262,4 @@ class SlackTextMessage extends TextMessage exports.SlackTextMessage = SlackTextMessage exports.ReactionMessage = ReactionMessage exports.PresenceMessage = PresenceMessage -exports.FileSharedMessage = FileSharedMessage +exports.FileSharedMessage = FileSharedMessage \ No newline at end of file