diff --git a/.rubocop.yml b/.rubocop.yml index be830179..9842cee1 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -20,7 +20,7 @@ Metrics/BlockLength: Metrics/ClassLength: Max: 250 Metrics/LineLength: - Max: 100 + Max: 128 Style/Documentation: Enabled: false Style/ModuleFunction: diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 4abdbce5..c7549a8b 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2020-06-22 23:35:07 +0800 using RuboCop version 0.82.0. +# on 2020-06-29 08:44:31 -0400 using RuboCop version 0.82.0. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new @@ -30,7 +30,7 @@ Lint/SuppressedException: Metrics/AbcSize: Max: 39 -# Offense count: 1 +# Offense count: 2 # Configuration parameters: IgnoredMethods. Metrics/CyclomaticComplexity: Max: 9 diff --git a/CHANGELOG.md b/CHANGELOG.md index c8ee641c..5bcf9f9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * [#324](https://github.com/slack-ruby/slack-ruby-client/pull/324): Upgrade slack-ruby-danger, rubocop, rubocop-rspec and rubocop-performance - [@dblock](https://github.com/dblock). * [#327](https://github.com/slack-ruby/slack-ruby-client/pull/327), [#326](https://github.com/slack-ruby/slack-ruby-client/pull/326): Added `admin_conversations_whitelist`, `admin_usergroups`, `calls` and `calls_participants` endpoints - [@wasabigeek](https://github.com/wasabigeek). * [#329](https://github.com/slack-ruby/slack-ruby-client/pull/329): Log when methods are deprecated - [@wasabigeek](https://github.com/wasabigeek). +* [#325](https://github.com/slack-ruby/slack-ruby-client/pull/325): Remove activesupport dependency - [@ianks](https://github.com/ianks). * Your contribution here. ### 0.14.6 (2020/3/28) diff --git a/UPGRADING.md b/UPGRADING.md index ab538662..bcc0e03a 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -1,6 +1,12 @@ Upgrading Slack-Ruby-Client =========================== +### Upgrading to >= 0.15.0 + +As of 0.15.0, `activesupport` is no longer required. Add `gem 'activesupport'` to your Gemfile if you required ActiveSupport via this library. + +See [#325](https://github.com/slack-ruby/slack-ruby-client/pull/325) for more information. + ### Upgrading to >= 0.14.0 If you are using async-websocket, lock down its version to 0.8.0 as newer versions are currently incompatible. diff --git a/lib/slack-ruby-client.rb b/lib/slack-ruby-client.rb index a4fe898b..81848117 100644 --- a/lib/slack-ruby-client.rb +++ b/lib/slack-ruby-client.rb @@ -37,8 +37,6 @@ require_relative 'slack/web/client' # RealTime API -require 'active_support' -require 'active_support/core_ext' require_relative 'slack/real_time/concurrency' require_relative 'slack/real_time/socket' require_relative 'slack/real_time/api/message_id' diff --git a/lib/slack/messages/message.rb b/lib/slack/messages/message.rb index 54492367..b47d6d40 100644 --- a/lib/slack/messages/message.rb +++ b/lib/slack/messages/message.rb @@ -2,10 +2,6 @@ module Slack module Messages class Message < Hashie::Mash - def presence - super['presence'] - end - def to_s keys.sort_by(&:to_s).map do |key| "#{key}=#{self[key]}" diff --git a/lib/slack/real_time/concurrency/async.rb b/lib/slack/real_time/concurrency/async.rb index b206bf30..437e04df 100644 --- a/lib/slack/real_time/concurrency/async.rb +++ b/lib/slack/real_time/concurrency/async.rb @@ -114,9 +114,7 @@ def build_ssl_context def build_endpoint endpoint = ::Async::IO::Endpoint.tcp(addr, port) - if secure? - endpoint = ::Async::IO::SSLEndpoint.new(endpoint, ssl_context: build_ssl_context) - end + endpoint = ::Async::IO::SSLEndpoint.new(endpoint, ssl_context: build_ssl_context) if secure? endpoint end diff --git a/lib/slack/real_time/concurrency/eventmachine.rb b/lib/slack/real_time/concurrency/eventmachine.rb index 9820d721..4249df88 100644 --- a/lib/slack/real_time/concurrency/eventmachine.rb +++ b/lib/slack/real_time/concurrency/eventmachine.rb @@ -8,9 +8,9 @@ module Concurrency module Eventmachine class Client < Faye::WebSocket::Client def initialize(url, protocols = nil, options = {}) - @logger = - options.fetch(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger - super url, protocols, options.except(:logger) + options = options.dup + @logger = options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger + super url, protocols, options end def parse(data) diff --git a/lib/slack/real_time/models/base.rb b/lib/slack/real_time/models/base.rb index edb525ce..3d7d3447 100644 --- a/lib/slack/real_time/models/base.rb +++ b/lib/slack/real_time/models/base.rb @@ -3,10 +3,6 @@ module Slack module RealTime module Models class Base < Hashie::Mash - def presence - super['presence'] - end - # see https://github.com/intridea/hashie/issues/394 def log_built_in_message(*); end end diff --git a/lib/slack/real_time/socket.rb b/lib/slack/real_time/socket.rb index 6870e87f..b5b701a1 100644 --- a/lib/slack/real_time/socket.rb +++ b/lib/slack/real_time/socket.rb @@ -8,9 +8,9 @@ class Socket def initialize(url, options = {}) @url = url - @options = options + @options = options.dup @driver = nil - @logger = options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger + @logger = @options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger @last_message_at = nil end diff --git a/lib/slack/real_time/stores/base.rb b/lib/slack/real_time/stores/base.rb index 3a77fe38..484411c7 100644 --- a/lib/slack/real_time/stores/base.rb +++ b/lib/slack/real_time/stores/base.rb @@ -4,7 +4,9 @@ module RealTime module Stores # Doesn't store anything. class Base - class_attribute :events + class << self + attr_accessor :events + end attr_accessor :users attr_accessor :bots diff --git a/lib/slack/web/api/mixins/ids.id.rb b/lib/slack/web/api/mixins/ids.id.rb index 52261877..503ba50e 100644 --- a/lib/slack/web/api/mixins/ids.id.rb +++ b/lib/slack/web/api/mixins/ids.id.rb @@ -11,9 +11,7 @@ def id_for(key, name, prefix, list_method, not_found_error) yield.tap do |list| list.public_send(list_method).each do |li| - if li.name == name[1..-1] - return Slack::Messages::Message.new('ok' => true, key.to_s => { 'id' => li.id }) - end + return Slack::Messages::Message.new('ok' => true, key.to_s => { 'id' => li.id }) if li.name == name[1..-1] end end diff --git a/lib/slack/web/pagination/cursor.rb b/lib/slack/web/pagination/cursor.rb index 4446f9dc..e82458d8 100644 --- a/lib/slack/web/pagination/cursor.rb +++ b/lib/slack/web/pagination/cursor.rb @@ -32,14 +32,14 @@ def each client.logger.debug("#{self.class}##{__method__}") { e.to_s } retry_count += 1 - sleep(e.retry_after.seconds) + sleep(e.retry_after) next end yield response break unless response.response_metadata next_cursor = response.response_metadata.next_cursor - break if next_cursor.blank? + break if next_cursor.nil? || next_cursor == '' retry_count = 0 sleep(sleep_interval) if sleep_interval diff --git a/lib/tasks/web.rake b/lib/tasks/web.rake index 618c7026..1e2fe632 100644 --- a/lib/tasks/web.rake +++ b/lib/tasks/web.rake @@ -2,8 +2,6 @@ # largely from https://github.com/aki017/slack-ruby-gem require 'json-schema' require 'erubis' -require 'active_support' -require 'active_support/core_ext' namespace :slack do namespace :web do diff --git a/slack-ruby-client.gemspec b/slack-ruby-client.gemspec index ada9fd80..683236b5 100644 --- a/slack-ruby-client.gemspec +++ b/slack-ruby-client.gemspec @@ -17,12 +17,12 @@ Gem::Specification.new do |s| s.homepage = 'http://github.com/slack-ruby/slack-ruby-client' s.licenses = ['MIT'] s.summary = 'Slack Web and RealTime API client.' - s.add_dependency 'activesupport' s.add_dependency 'faraday', '>= 1.0' s.add_dependency 'faraday_middleware' s.add_dependency 'gli' s.add_dependency 'hashie' s.add_dependency 'websocket-driver' + s.add_development_dependency 'activesupport' s.add_development_dependency 'erubis' s.add_development_dependency 'json-schema' s.add_development_dependency 'rake', '~> 10'