slack-ruby-bot-server 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d321d037f8cdc7fad16e52f186f3b0afc0c85516
4
- data.tar.gz: 9800883a0267d2c4e55f914fe4b7d3293fe69ff9
3
+ metadata.gz: 4f6c5511a9161eb4105b995b780da2be43a4e10d
4
+ data.tar.gz: c597b55c62c0da9d73fcbc9403efe72ec9d461e1
5
5
  SHA512:
6
- metadata.gz: 82d13ce31210bae5d59dc782415457456964382862e0272aa2bbef94f5097d90c4b0a1e766ffb161ff164c8c2acb73785e7d155e0c50d445e2fe58024a7a7560
7
- data.tar.gz: 07946d7ec77b7339fbefbc0b45ce23844b5ff03209520e47f6004aedf2cd6788e14d189f8718e4d24cfe897cd5fc832607c5d0d047dd5f452b1349c2baa86784
6
+ metadata.gz: 34c926d67dc9be7450fe7447f259e593fa92e4aaeb989ddb838d0a987f37dfd7ccc4abb46aa008e81b889a84746bdd1b54ff6b4761c19b549bcda99d4e5aa49e
7
+ data.tar.gz: 2b006e96aca517a203dc2085bf6095abd4c3059e9d2d19121e59864d2cf4dd0f576cd366706f01ea986ebd6d63e1c528bc03abbf1ee3b6ac7d554e646c2d94d6
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2016-06-02 15:39:53 -0300 using RuboCop version 0.35.1.
3
+ # on 2016-06-20 12:01:59 -0400 using RuboCop version 0.40.0.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -13,14 +13,15 @@ Lint/RescueException:
13
13
 
14
14
  # Offense count: 7
15
15
  Metrics/AbcSize:
16
- Max: 32
16
+ Max: 33
17
17
 
18
18
  # Offense count: 2
19
19
  Metrics/CyclomaticComplexity:
20
20
  Max: 11
21
21
 
22
- # Offense count: 66
23
- # Configuration parameters: AllowURI, URISchemes.
22
+ # Offense count: 77
23
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
24
+ # URISchemes: http, https
24
25
  Metrics/LineLength:
25
26
  Max: 163
26
27
 
@@ -33,13 +34,12 @@ Metrics/MethodLength:
33
34
  Metrics/PerceivedComplexity:
34
35
  Max: 11
35
36
 
36
- # Offense count: 25
37
- # Configuration parameters: Exclude.
37
+ # Offense count: 23
38
38
  Style/Documentation:
39
39
  Enabled: false
40
40
 
41
41
  # Offense count: 2
42
- # Configuration parameters: Exclude.
42
+ # Configuration parameters: ExpectMatchingDefinition, Regex, IgnoreExecutableScripts.
43
43
  Style/FileName:
44
44
  Exclude:
45
45
  - 'lib/slack-ruby-bot-server.rb'
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ### Changelog
2
2
 
3
+ #### 0.2.0 (6/21/2016)
4
+
5
+ * Relaxed dependency versions, notably enabling grape 0.16.2 and Swagger 0.21.0 that uses Swagger 2.0 spec - [@dblock](https://github.com/dblock).
6
+ * [#21](https://github.com/dblock/slack-ruby-bot-server/issues/21): Fix: pass additional options through into `SlackRubyBot::Server` - [@dblock](https://github.com/dblock).
7
+
3
8
  #### 0.1.1 (6/4/2016)
4
9
 
5
10
  * [#14](https://github.com/dblock/slack-ruby-bot-server/pull/14): Moved config/initializers into the library - [@tmsrjs](https://github.com/tmsrjs).
data/Gemfile CHANGED
@@ -1,3 +1,22 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ group :development, :test do
6
+ gem 'bundler'
7
+ gem 'rake'
8
+ gem 'rspec'
9
+ gem 'rubocop', '0.40.0'
10
+ gem 'byebug'
11
+ gem 'mongoid-shell'
12
+ gem 'heroku'
13
+ gem 'rack-test'
14
+ gem 'webmock'
15
+ gem 'vcr'
16
+ gem 'fabrication'
17
+ gem 'faker'
18
+ gem 'database_cleaner'
19
+ gem 'hyperclient'
20
+ gem 'capybara'
21
+ gem 'selenium-webdriver'
22
+ end
data/README.md CHANGED
@@ -5,11 +5,11 @@ Slack Ruby Bot Server
5
5
  [![Build Status](https://travis-ci.org/dblock/slack-ruby-bot-server.svg?branch=master)](https://travis-ci.org/dblock/slack-ruby-bot-server)
6
6
  [![Code Climate](https://codeclimate.com/github/dblock/slack-ruby-bot-server.svg)](https://codeclimate.com/github/dblock/slack-ruby-bot-server)
7
7
 
8
- An opinionated boilerplate and demo for a complete Slack bot service with Slack button integration, in Ruby. If you are not familiar with Slack bots or Slack API concepts, you might want to watch [this video](http://code.dblock.org/2016/03/11/your-first-slack-bot-service-video.html). A good demo of a service built on top of this is [playplay.io](http://playplay.io).
8
+ A library that enables you to write a complete Slack bot service with Slack button integration, in Ruby. If you are not familiar with Slack bots or Slack API concepts, you might want to watch [this video](http://code.dblock.org/2016/03/11/your-first-slack-bot-service-video.html). A good demo of a service built on top of this is [missingkidsbot.org](http://missingkidsbot.org).
9
9
 
10
10
  ### Try Me
11
11
 
12
- A demo version of this app is running on Heroku at [slack-ruby-bot-server.herokuapp.com](https://slack-ruby-bot-server.herokuapp.com). Use the _Add to Slack_ button. The bot will join your team as _@slackbotserver_.
12
+ A demo version of the [sample app](sample_app) is running on Heroku at [slack-ruby-bot-server.herokuapp.com](https://slack-ruby-bot-server.herokuapp.com). Use the _Add to Slack_ button. The bot will join your team as _@slackbotserver_.
13
13
 
14
14
  ![](images/slackbutton.gif)
15
15
 
@@ -19,14 +19,13 @@ Once a bot is registered, you can invite to a channel with `/invite @slackbotser
19
19
 
20
20
  ### What is this?
21
21
 
22
- A [Grape](http://github.com/ruby-grape/grape) API serving a [Slack Ruby Bot](https://github.com/dblock/slack-ruby-bot) to multiple teams. This gem combines a web server, a RESTful API and multiple instances of [slack-ruby-bot](https://github.com/dblock/slack-ruby-bot). It integrates with the [Slack Platform API](https://medium.com/slack-developer-blog/launch-platform-114754258b91#.od3y71dyo).
23
- Your customers can use a Slack button to install the bot.
22
+ A [Grape](http://github.com/ruby-grape/grape) API serving a [Slack Ruby Bot](https://github.com/dblock/slack-ruby-bot) to multiple teams. This gem combines a web server, a RESTful API and multiple instances of [slack-ruby-bot](https://github.com/dblock/slack-ruby-bot). It integrates with the [Slack Platform API](https://medium.com/slack-developer-blog/launch-platform-114754258b91#.od3y71dyo). Your customers can use a Slack button to install the bot.
24
23
 
25
24
  ### Run Your Own
26
25
 
27
26
  You can use the [sample application](sample_app) to bootstrap your project and start adding slack command handlers on top of this code.
28
27
 
29
- Install [MongoDB](https://www.mongodb.org/downloads), required to store teams.
28
+ Install [MongoDB](https://www.mongodb.org/downloads), required to store teams. We would like your help with [supporting other databases](https://github.com/dblock/slack-ruby-bot-server/issues/12).
30
29
 
31
30
  [Create a New Application](https://api.slack.com/applications/new) on Slack.
32
31
 
@@ -38,10 +37,9 @@ If you deploy to Heroku set `SLACK_CLIENT_ID` and `SLACK_CLIENT_SECRET` via `her
38
37
 
39
38
  ### Examples Using Slack Ruby Bot Server
40
39
 
41
- * [slack-gamebot](https://github.com/dblock/slack-gamebot), free service at [playplay.io](http://playplay.io)
42
- * [slack-shellbot](https://github.com/dblock/slack-shellbot), free service at [shell.playplay.io](http://shell.playplay.io)
43
- * [api-explorer](https://github.com/dblock/slack-api-explorer), free service at [api-explorer.playplay.io](http://api-explorer.playplay.io)
44
- * [slack-market](https://github.com/dblock/slack-market), free service at [market.playplay.io](http://market.playplay.io)
40
+ * [slack-amber-alert](https://github.com/dblock/slack-amber-alert), free service at [missingkidsbot.org](https://www.missingkidsbot.org)
41
+ * [slack-gamebot](https://github.com/dblock/slack-gamebot), free service at [www.playplay.io](https://www.playplay.io)
42
+ * [slack-market](https://github.com/dblock/slack-market), free service at [market.playplay.io](https://market.playplay.io)
45
43
 
46
44
  ### Copyright & License
47
45
 
@@ -37,7 +37,7 @@ module SlackRubyBotServer
37
37
  post do
38
38
  client = Slack::Web::Client.new
39
39
 
40
- fail 'Missing SLACK_CLIENT_ID or SLACK_CLIENT_SECRET.' unless ENV.key?('SLACK_CLIENT_ID') && ENV.key?('SLACK_CLIENT_SECRET')
40
+ raise 'Missing SLACK_CLIENT_ID or SLACK_CLIENT_SECRET.' unless ENV.key?('SLACK_CLIENT_ID') && ENV.key?('SLACK_CLIENT_SECRET')
41
41
 
42
42
  rc = client.oauth_access(
43
43
  client_id: ENV['SLACK_CLIENT_ID'],
@@ -51,7 +51,7 @@ module SlackRubyBotServer
51
51
  if team && !team.active?
52
52
  team.activate!(token)
53
53
  elsif team
54
- fail "Team #{team.name} is already registered."
54
+ raise "Team #{team.name} is already registered."
55
55
  else
56
56
  team = Team.create!(
57
57
  token: token,
@@ -9,7 +9,7 @@ module SlackRubyBotServer
9
9
  # results: (paginated collection subset)
10
10
  # next: (cursor to the next page)
11
11
  def paginate_by_cursor(coll, &_block)
12
- fail 'Both cursor and offset parameters are present, these are mutually exclusive.' if params.key?(:offset) && params.key?(:cursor)
12
+ raise 'Both cursor and offset parameters are present, these are mutually exclusive.' if params.key?(:offset) && params.key?(:cursor)
13
13
  results = { results: [], next: nil }
14
14
  size = (params[:size] || 10).to_i
15
15
  if params.key?(:offset)
@@ -12,7 +12,7 @@ module SlackRubyBotServer
12
12
  mutually_exclusive :offset, :cursor
13
13
  end
14
14
 
15
- ALL = %w(cursor size sort offset total_count)
15
+ ALL = %w(cursor size sort offset total_count).freeze
16
16
  end
17
17
  end
18
18
  end
@@ -27,7 +27,7 @@ module SlackRubyBotServer
27
27
  def query_string_for_cursor(cursor, opts)
28
28
  qs = Hashie::Mash.new(Rack::Utils.parse_nested_query(opts[:env]['QUERY_STRING']))
29
29
  if cursor
30
- qs.merge!(cursor: cursor)
30
+ qs[:cursor] = cursor
31
31
  qs.delete(:offset)
32
32
  end
33
33
  "?#{qs.to_query}" unless qs.empty?
@@ -32,13 +32,13 @@ module SlackRubyBotServer
32
32
 
33
33
  def check_mongodb_provider!
34
34
  return unless ENV['RACK_ENV'] == 'production'
35
- fail "Missing ENV['MONGO_URL'], ENV['MONGOHQ_URI'] or ENV['MONGOLAB_URI']." unless ENV['MONGO_URL'] || ENV['MONGOHQ_URI'] || ENV['MONGOLAB_URI']
35
+ raise "Missing ENV['MONGO_URL'], ENV['MONGOHQ_URI'] or ENV['MONGOLAB_URI']." unless ENV['MONGO_URL'] || ENV['MONGOHQ_URI'] || ENV['MONGOLAB_URI']
36
36
  end
37
37
 
38
38
  def check_database!
39
39
  rc = Mongoid.default_client.command(ping: 1)
40
40
  return if rc && rc.ok?
41
- fail rc.documents.first['error'] || 'Unexpected error.'
41
+ raise rc.documents.first['error'] || 'Unexpected error.'
42
42
  rescue Exception => e
43
43
  warn "Error connecting to MongoDB: #{e.message}"
44
44
  raise e
@@ -2,7 +2,7 @@ module SlackRubyBot
2
2
  module Commands
3
3
  class Base
4
4
  class << self
5
- alias_method :_invoke, :invoke
5
+ alias _invoke invoke
6
6
 
7
7
  def invoke(client, data)
8
8
  _invoke client, data
@@ -1,5 +1,5 @@
1
1
  module SlackRubyBotServer
2
- INFO = <<-EOS
2
+ INFO = <<-EOS.freeze
3
3
  BotServer #{SlackRubyBotServer::VERSION}
4
4
 
5
5
  © 2016 Daniel Doubrovkine & Contributors, MIT License
@@ -2,7 +2,7 @@ class Team
2
2
  include Mongoid::Document
3
3
  include Mongoid::Timestamps
4
4
 
5
- SORT_ORDERS = ['created_at', '-created_at', 'updated_at', '-updated_at']
5
+ SORT_ORDERS = ['created_at', '-created_at', 'updated_at', '-updated_at'].freeze
6
6
 
7
7
  field :team_id, type: String
8
8
  field :name, type: String
@@ -5,10 +5,11 @@ module SlackRubyBotServer
5
5
  attr_accessor :team
6
6
 
7
7
  def initialize(attrs = {})
8
- @team = attrs[:team]
9
- fail 'Missing team' unless @team
10
- options = { token: @team.token }
11
- super(options)
8
+ attrs = attrs.dup
9
+ @team = attrs.delete(:team)
10
+ raise 'Missing team' unless @team
11
+ attrs[:token] = @team.token
12
+ super(attrs)
12
13
  client.owner = @team
13
14
  end
14
15
 
@@ -19,7 +19,7 @@ module SlackRubyBotServer
19
19
  end
20
20
 
21
21
  def start!(team)
22
- fail 'Token already known.' if @services.key?(team.token)
22
+ raise 'Token already known.' if @services.key?(team.token)
23
23
  logger.info "Starting team #{team}."
24
24
  server = SlackRubyBotServer::Server.new(team: team)
25
25
  @lock.synchronize do
@@ -32,7 +32,7 @@ module SlackRubyBotServer
32
32
 
33
33
  def stop!(team)
34
34
  @lock.synchronize do
35
- fail 'Token unknown.' unless @services.key?(team.token)
35
+ raise 'Token unknown.' unless @services.key?(team.token)
36
36
  logger.info "Stopping team #{team}."
37
37
  @services[team.token].stop!
38
38
  @services.delete(team.token)
@@ -1,3 +1,3 @@
1
1
  module SlackRubyBotServer
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -1,5 +1,5 @@
1
1
  class Help < SlackRubyBot::Commands::Base
2
- HELP = <<-EOS
2
+ HELP = <<-EOS.freeze
3
3
  ```
4
4
  I am your friendly slack-ruby-bot-server, here to help.
5
5
 
@@ -15,34 +15,17 @@ Gem::Specification.new do |spec|
15
15
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) }
16
16
  spec.require_paths = ['lib']
17
17
 
18
- spec.add_dependency 'slack-ruby-bot', '~> 0.8.0'
18
+ spec.add_dependency 'slack-ruby-bot'
19
19
  spec.add_dependency 'celluloid-io'
20
- spec.add_dependency 'mongoid', '~> 5.0.0'
20
+ spec.add_dependency 'mongoid'
21
21
  spec.add_dependency 'unicorn'
22
- spec.add_dependency 'grape', '~> 0.15.0'
23
- spec.add_dependency 'grape-swagger', '~> 0.10.0'
22
+ spec.add_dependency 'grape'
23
+ spec.add_dependency 'grape-swagger'
24
24
  spec.add_dependency 'grape-roar'
25
25
  spec.add_dependency 'rack-cors'
26
- spec.add_dependency 'kaminari', '~> 0.16.1'
26
+ spec.add_dependency 'kaminari-mongoid'
27
27
  spec.add_dependency 'mongoid-scroll'
28
28
  spec.add_dependency 'rack-rewrite'
29
29
  spec.add_dependency 'rack-server-pages'
30
30
  spec.add_dependency 'foreman'
31
-
32
- spec.add_development_dependency 'bundler', '~> 1.12'
33
- spec.add_development_dependency 'rake', '~> 10.0'
34
- spec.add_development_dependency 'rspec', '~> 3.0'
35
- spec.add_development_dependency 'rubocop', '~> 0.35.1'
36
- spec.add_development_dependency 'byebug'
37
- spec.add_development_dependency 'mongoid-shell'
38
- spec.add_development_dependency 'heroku'
39
- spec.add_development_dependency 'rack-test'
40
- spec.add_development_dependency 'webmock'
41
- spec.add_development_dependency 'vcr'
42
- spec.add_development_dependency 'fabrication'
43
- spec.add_development_dependency 'faker'
44
- spec.add_development_dependency 'database_cleaner'
45
- spec.add_development_dependency 'hyperclient'
46
- spec.add_development_dependency 'capybara'
47
- spec.add_development_dependency 'selenium-webdriver'
48
31
  end
data/tasks/db.rake CHANGED
@@ -14,7 +14,7 @@ namespace :db do
14
14
  logger.info("[#{Time.now}] db:heroku:backup started")
15
15
 
16
16
  # get heroku configuration info
17
- app = args[:app] || fail('Missing app.')
17
+ app = args[:app] || raise('Missing app.')
18
18
  JSON.parse(`bundle exec heroku config --app #{app} --json`).each_pair do |k, v|
19
19
  ENV[k] = v
20
20
  end
metadata CHANGED
@@ -1,31 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-ruby-bot-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-04 00:00:00.000000000 Z
11
+ date: 2016-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: slack-ruby-bot
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.8.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 0.8.0
27
- - !ruby/object:Gem::Dependency
28
- name: celluloid-io
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ">="
@@ -39,21 +25,7 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: mongoid
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 5.0.0
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: 5.0.0
55
- - !ruby/object:Gem::Dependency
56
- name: unicorn
28
+ name: celluloid-io
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
31
  - - ">="
@@ -67,35 +39,7 @@ dependencies:
67
39
  - !ruby/object:Gem::Version
68
40
  version: '0'
69
41
  - !ruby/object:Gem::Dependency
70
- name: grape
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.15.0
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.15.0
83
- - !ruby/object:Gem::Dependency
84
- name: grape-swagger
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.10.0
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.10.0
97
- - !ruby/object:Gem::Dependency
98
- name: grape-roar
42
+ name: mongoid
99
43
  requirement: !ruby/object:Gem::Requirement
100
44
  requirements:
101
45
  - - ">="
@@ -109,7 +53,7 @@ dependencies:
109
53
  - !ruby/object:Gem::Version
110
54
  version: '0'
111
55
  - !ruby/object:Gem::Dependency
112
- name: rack-cors
56
+ name: unicorn
113
57
  requirement: !ruby/object:Gem::Requirement
114
58
  requirements:
115
59
  - - ">="
@@ -123,21 +67,7 @@ dependencies:
123
67
  - !ruby/object:Gem::Version
124
68
  version: '0'
125
69
  - !ruby/object:Gem::Dependency
126
- name: kaminari
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: 0.16.1
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: 0.16.1
139
- - !ruby/object:Gem::Dependency
140
- name: mongoid-scroll
70
+ name: grape
141
71
  requirement: !ruby/object:Gem::Requirement
142
72
  requirements:
143
73
  - - ">="
@@ -151,7 +81,7 @@ dependencies:
151
81
  - !ruby/object:Gem::Version
152
82
  version: '0'
153
83
  - !ruby/object:Gem::Dependency
154
- name: rack-rewrite
84
+ name: grape-swagger
155
85
  requirement: !ruby/object:Gem::Requirement
156
86
  requirements:
157
87
  - - ">="
@@ -165,7 +95,7 @@ dependencies:
165
95
  - !ruby/object:Gem::Version
166
96
  version: '0'
167
97
  - !ruby/object:Gem::Dependency
168
- name: rack-server-pages
98
+ name: grape-roar
169
99
  requirement: !ruby/object:Gem::Requirement
170
100
  requirements:
171
101
  - - ">="
@@ -179,7 +109,7 @@ dependencies:
179
109
  - !ruby/object:Gem::Version
180
110
  version: '0'
181
111
  - !ruby/object:Gem::Dependency
182
- name: foreman
112
+ name: rack-cors
183
113
  requirement: !ruby/object:Gem::Requirement
184
114
  requirements:
185
115
  - - ">="
@@ -193,167 +123,13 @@ dependencies:
193
123
  - !ruby/object:Gem::Version
194
124
  version: '0'
195
125
  - !ruby/object:Gem::Dependency
196
- name: bundler
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: '1.12'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: '1.12'
209
- - !ruby/object:Gem::Dependency
210
- name: rake
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: '10.0'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: '10.0'
223
- - !ruby/object:Gem::Dependency
224
- name: rspec
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - "~>"
228
- - !ruby/object:Gem::Version
229
- version: '3.0'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: '3.0'
237
- - !ruby/object:Gem::Dependency
238
- name: rubocop
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: 0.35.1
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: 0.35.1
251
- - !ruby/object:Gem::Dependency
252
- name: byebug
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - ">="
256
- - !ruby/object:Gem::Version
257
- version: '0'
258
- type: :development
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - ">="
263
- - !ruby/object:Gem::Version
264
- version: '0'
265
- - !ruby/object:Gem::Dependency
266
- name: mongoid-shell
267
- requirement: !ruby/object:Gem::Requirement
268
- requirements:
269
- - - ">="
270
- - !ruby/object:Gem::Version
271
- version: '0'
272
- type: :development
273
- prerelease: false
274
- version_requirements: !ruby/object:Gem::Requirement
275
- requirements:
276
- - - ">="
277
- - !ruby/object:Gem::Version
278
- version: '0'
279
- - !ruby/object:Gem::Dependency
280
- name: heroku
281
- requirement: !ruby/object:Gem::Requirement
282
- requirements:
283
- - - ">="
284
- - !ruby/object:Gem::Version
285
- version: '0'
286
- type: :development
287
- prerelease: false
288
- version_requirements: !ruby/object:Gem::Requirement
289
- requirements:
290
- - - ">="
291
- - !ruby/object:Gem::Version
292
- version: '0'
293
- - !ruby/object:Gem::Dependency
294
- name: rack-test
295
- requirement: !ruby/object:Gem::Requirement
296
- requirements:
297
- - - ">="
298
- - !ruby/object:Gem::Version
299
- version: '0'
300
- type: :development
301
- prerelease: false
302
- version_requirements: !ruby/object:Gem::Requirement
303
- requirements:
304
- - - ">="
305
- - !ruby/object:Gem::Version
306
- version: '0'
307
- - !ruby/object:Gem::Dependency
308
- name: webmock
309
- requirement: !ruby/object:Gem::Requirement
310
- requirements:
311
- - - ">="
312
- - !ruby/object:Gem::Version
313
- version: '0'
314
- type: :development
315
- prerelease: false
316
- version_requirements: !ruby/object:Gem::Requirement
317
- requirements:
318
- - - ">="
319
- - !ruby/object:Gem::Version
320
- version: '0'
321
- - !ruby/object:Gem::Dependency
322
- name: vcr
126
+ name: kaminari-mongoid
323
127
  requirement: !ruby/object:Gem::Requirement
324
128
  requirements:
325
129
  - - ">="
326
130
  - !ruby/object:Gem::Version
327
131
  version: '0'
328
- type: :development
329
- prerelease: false
330
- version_requirements: !ruby/object:Gem::Requirement
331
- requirements:
332
- - - ">="
333
- - !ruby/object:Gem::Version
334
- version: '0'
335
- - !ruby/object:Gem::Dependency
336
- name: fabrication
337
- requirement: !ruby/object:Gem::Requirement
338
- requirements:
339
- - - ">="
340
- - !ruby/object:Gem::Version
341
- version: '0'
342
- type: :development
343
- prerelease: false
344
- version_requirements: !ruby/object:Gem::Requirement
345
- requirements:
346
- - - ">="
347
- - !ruby/object:Gem::Version
348
- version: '0'
349
- - !ruby/object:Gem::Dependency
350
- name: faker
351
- requirement: !ruby/object:Gem::Requirement
352
- requirements:
353
- - - ">="
354
- - !ruby/object:Gem::Version
355
- version: '0'
356
- type: :development
132
+ type: :runtime
357
133
  prerelease: false
358
134
  version_requirements: !ruby/object:Gem::Requirement
359
135
  requirements:
@@ -361,13 +137,13 @@ dependencies:
361
137
  - !ruby/object:Gem::Version
362
138
  version: '0'
363
139
  - !ruby/object:Gem::Dependency
364
- name: database_cleaner
140
+ name: mongoid-scroll
365
141
  requirement: !ruby/object:Gem::Requirement
366
142
  requirements:
367
143
  - - ">="
368
144
  - !ruby/object:Gem::Version
369
145
  version: '0'
370
- type: :development
146
+ type: :runtime
371
147
  prerelease: false
372
148
  version_requirements: !ruby/object:Gem::Requirement
373
149
  requirements:
@@ -375,13 +151,13 @@ dependencies:
375
151
  - !ruby/object:Gem::Version
376
152
  version: '0'
377
153
  - !ruby/object:Gem::Dependency
378
- name: hyperclient
154
+ name: rack-rewrite
379
155
  requirement: !ruby/object:Gem::Requirement
380
156
  requirements:
381
157
  - - ">="
382
158
  - !ruby/object:Gem::Version
383
159
  version: '0'
384
- type: :development
160
+ type: :runtime
385
161
  prerelease: false
386
162
  version_requirements: !ruby/object:Gem::Requirement
387
163
  requirements:
@@ -389,13 +165,13 @@ dependencies:
389
165
  - !ruby/object:Gem::Version
390
166
  version: '0'
391
167
  - !ruby/object:Gem::Dependency
392
- name: capybara
168
+ name: rack-server-pages
393
169
  requirement: !ruby/object:Gem::Requirement
394
170
  requirements:
395
171
  - - ">="
396
172
  - !ruby/object:Gem::Version
397
173
  version: '0'
398
- type: :development
174
+ type: :runtime
399
175
  prerelease: false
400
176
  version_requirements: !ruby/object:Gem::Requirement
401
177
  requirements:
@@ -403,13 +179,13 @@ dependencies:
403
179
  - !ruby/object:Gem::Version
404
180
  version: '0'
405
181
  - !ruby/object:Gem::Dependency
406
- name: selenium-webdriver
182
+ name: foreman
407
183
  requirement: !ruby/object:Gem::Requirement
408
184
  requirements:
409
185
  - - ">="
410
186
  - !ruby/object:Gem::Version
411
187
  version: '0'
412
- type: :development
188
+ type: :runtime
413
189
  prerelease: false
414
190
  version_requirements: !ruby/object:Gem::Requirement
415
191
  requirements:
@@ -518,7 +294,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
518
294
  version: '0'
519
295
  requirements: []
520
296
  rubyforge_project:
521
- rubygems_version: 2.4.8
297
+ rubygems_version: 2.6.4
522
298
  signing_key:
523
299
  specification_version: 4
524
300
  summary: A Grape API serving a Slack bot to multiple teams.