@@ -34,6 +34,9 @@ gem 'jbuilder', '~> 2.5'
3434# Use ActiveModel has_secure_password
3535gem 'bcrypt' , '~> 3.1.7'
3636
37+ # 处理跨域问题
38+ # gem 'rack-cors'
39+
3740# Use ActiveStorage variant
3841# gem 'mini_magick', '~> 4.8'
3942
@@ -103,8 +106,8 @@ gem 'bootstrap', '~> 4.3.0'
103106# 监控 数据库、redis、Cache、Sidekiq、Resque的状态的工具。
104107# gem 'status-page'
105108
106- # grape 可以帮助我们快速的构建和 Rails 完美融合的 API 接口 。
107- gem 'grape '
109+ # paper_trail 跟踪对模型的更改,以进行审核或版本控制 。
110+ # gem 'paper_trail '
108111
109112# elasticsearch中的apm瓶颈监控工具
110113# gem 'elastic-apm'
@@ -113,8 +116,14 @@ gem 'grape'
113116#
114117# gem 'searchkick'
115118
119+ # 用户系统
120+ gem "devise"
121+ gem "devise-encryptable"
122+
116123# 可以为我们的应用加入操作权限控制。
117124gem "pundit"
125+ # 搭配devise、pundit使用,添加role对权限更加精细化的操作,比如实现RBAC权限管理。
126+ gem "rolify"
118127# 权限管理这一块或者可以使用下面的这个
119128# gem "cancancan"
120129
@@ -123,19 +132,32 @@ gem "omniauth"
123132gem "omniauth-github"
124133gem "omniauth-wechat-oauth2"
125134
135+ # 使用JWT实现Token认证
136+ gem 'jwt' , '~> 2.1'
137+
138+ # grape 可以帮助我们快速的构建和 Rails 完美融合的 API 接口。
139+ gem 'grape'
140+ gem 'grape-entity'
141+ gem 'grape-swagger'
142+ gem 'grape-swagger-entity'
143+ gem 'grape-swagger-rails'
144+ gem 'grape_logging'
145+ gem 'grape_on_rails_routes'
146+
147+ # GraphQL一种用于 API 的查询语言
148+ gem 'graphql' , '~> 1.9'
149+
126150# 邮件服务
127151# gem "postmark"
128152# gem "postmark-rails"
129153
130- # 用户系统
131- gem "devise"
132- gem "devise-encryptable"
133-
134154# 拒绝低版本浏览器的访问,并给其返回一个让其升级的页面。
135155# gem 'browser_warrior', '>= 0.8.0'
136156
137- # 异常监控
157+ # 异常监控通知
138158# gem 'exception_notification'
159+ # 在后台管理页面显示异常信息
160+ # gem 'exception-track'
139161# gem 'slack-notifier'
140162
141163# RPC远程过程调用
@@ -157,9 +179,23 @@ gem "devise-encryptable"
157179
158180# 一个使用 Ruby 连接和操作 RabbitMQ 的客户端
159181# gem "bunny", ">= 2.14.1"
160- # 业务通过 Bunny 在 Rails 中简易、快速地生产发布了消息,就需要有消费者来接收和消费消息,Sneakers 是一个处理 RabbitMQ 消息队列的高性能 Ruby 框架
182+ # 业务通过 Bunny 在 Rails 中简易、快速地生产发布了消息,就需要有消费者来接收和消费消息,
183+ # Sneakers 是一个处理 RabbitMQ 消息队列的高性能 Ruby 框架
161184# gem 'sneakers'
162185
186+ # aasm ruby类的状态机(支持普通Ruby,ActiveRecord,Mongoid)
187+ # gem 'aasm'
188+
189+ # 一些使用rack协议编写的小工具。
190+ gem "rack-contrib"
191+
192+ # 保护你的应用免收不良客户端的请求的拦截器。
193+ gem "rack-attack"
194+
195+ # bugsnageRuby的Bugsnag异常报告器会立即通知您从Rails,Sinatra,Rack或纯Ruby应用程序引发的异常。
196+ # 任何未捕获的异常都会触发通知,该通知将发送到您的Bugsnag项目。
197+ gem "bugsnag" , "~> 6.12"
198+ gem "uniform_notifier"
163199
164200group :development , :test do
165201 # Call 'byebug' anywhere in the code to stop execution and get a debugger console
@@ -169,6 +205,21 @@ group :development, :test do
169205 gem 'letter_opener'
170206
171207 gem 'factory_bot_rails'
208+
209+ # BDD 行为驱动开发
210+ # gem 'cucumber'
211+ # gem 'cucumber-rails', require: false
212+ # gem 'cucumber-api-steps', require: false
213+
214+ # faker生成伪数据。
215+ # gem 'faker'
216+
217+ # 一个提供“时间旅行”和“时间冻结”功能的gem,使测试依赖于时间的代码变得非常简单。它提供了
218+ # 一个统一的方法,可以在单个调用中模拟Time.now,Date.today和DateTime.now。
219+ # gem 'timecop'
220+
221+ # 生成文档工具
222+ # gem 'sdoc'
172223end
173224
174225group :development do
@@ -206,8 +257,10 @@ group :development do
206257 gem 'rubycritic' , require : false
207258
208259 # 代码风格指南工具。具体使用,在根目录输入命令 rubocop -h 查看即可。 rubocop ./config/deploy
209- gem 'rubocop' , '~> 0.58.2' , require : false
210- gem 'rubocop-rspec' , '~> 1.29' , require : false
260+ gem 'rubocop' , '~> 0.81.0' , require : false
261+ gem 'rubocop-rspec' , require : false
262+ gem 'rubocop-performance'
263+ gem 'rubocop-rails' , require : false
211264
212265 # 检测你的gem使用情况。命令: bundle exec derailed bundle:mem 使用derailed -h查看可用命令
213266 gem 'derailed'
@@ -235,6 +288,15 @@ group :development do
235288
236289 # 帮助解决rails的N+1问题
237290 gem "bullet"
291+
292+ # 在Rails应用程序中安装GraphiQL查询编辑器
293+ # gem 'graphiql-rails', '~> 1.7.0'
294+
295+ # 在日志中写入请求源信息
296+ gem 'active_record_query_trace'
297+
298+ # 在应用的每个页面底部显示请求信息,并链接到源码(可通过 TextMate 打开);
299+ # gem 'rails-footnotes', '~> 4.0'
238300end
239301
240302group :test do
@@ -250,8 +312,6 @@ group :test do
250312 gem 'database_cleaner'
251313
252314 gem 'launchy'
253- # 提供“时间旅行”和“时间冻结”功能的gem,使测试依赖时间的代码变得非常简单。
254- gem 'timecop'
255315
256316 # 配置测试需要的数据
257317 gem 'webmock'
@@ -263,6 +323,7 @@ group :test do
263323 gem 'rspec-mocks'
264324 gem 'rspec-rails'
265325 gem 'rspec-support'
326+ gem 'rspec-sidekiq'
266327
267328 # 生成虚假数据
268329 gem "faker"
0 commit comments