responders 2.2.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7ba43cee72d6a197eff78818683a01dfe43814d3
4
- data.tar.gz: 37ceb10a23ee46f1ec142176eee690c33a98b73d
2
+ SHA256:
3
+ metadata.gz: 00a016ab308a0960fc75a6dc1d6f8b35b3165fe0edfef25cb3b898631c7c0454
4
+ data.tar.gz: bf658c0505d528307b5b61b9c1854fa76b50269c7ddedc27f7c3816e588c2a1f
5
5
  SHA512:
6
- metadata.gz: e198e8715fefd1e87c21d7a52ed255ad51445bdfe2eb83e0e8a5eb8845eae8d3b1e665217ce1ac6f836156abd1d56cff5a2082f48cfb6f44e3cabe875117125f
7
- data.tar.gz: c59cbdaf34207e264e7551bdd700f2d9afe200fa29c2a31672d79debce0979853c76ee8ce0500347f5ee8fb19ebf8b86fc270a45add262d06b4d9c43c7c7ae17
6
+ metadata.gz: 316cf7158bbfede88e505b1b2dfe25cf86ef873f678362da6062d5b4093849a190da2f730265021e7a3613f5a5bb1622553bc423d8850226ee5235083a9cf38b
7
+ data.tar.gz: 7aa5dbc3ef20b9c7ddafa0d8342067eaccfc2b50231eef76c00cf7c9a5e07703d449110ee4ec8dc4f3dcb9fa7c06472e0635cc3c41d05820a193c9f7445d14e7
@@ -1,3 +1,30 @@
1
+ ## 3.0.1
2
+
3
+ * Add support to Ruby 2.7
4
+
5
+ ## 3.0.0
6
+
7
+ * Remove support for Rails 4.2
8
+ * Remove support for Ruby < 2.4
9
+
10
+ ## 2.4.1
11
+
12
+ * Add support for Rails 6 beta
13
+
14
+ ## 2.4.0
15
+
16
+ * `respond_with` now accepts a new kwargs called `:render` which goes straight to the `render`
17
+ call after an unsuccessful post request. Usefull if for example you need to render a template
18
+ which is outside of controller's path eg:
19
+
20
+ `respond_with resource, render: { template: 'path/to/template' }`
21
+
22
+ ## 2.3.0
23
+
24
+ * `verify_request_format!` is aliased to `verify_requested_format!` now.
25
+ * Implementing the `interpolation_options` method on your controller is deprecated
26
+ in favor of naming it `flash_interpolation_options` instead.
27
+
1
28
  ## 2.2.0
2
29
 
3
30
  * Added the `verify_request_format!` method, that can be used as a `before_action`
@@ -1,4 +1,5 @@
1
- Copyright 2009-2016 Plataformatec. http://plataformatec.com.br
1
+ Copyright (c) 2020 Rafael França, Carlos Antônio da Silva
2
+ Copyright 2009-2019 Plataformatec. http://plataformatec.com.br
2
3
 
3
4
  Permission is hereby granted, free of charge, to any person obtaining
4
5
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Responders
2
2
 
3
3
  [![Gem Version](https://fury-badge.herokuapp.com/rb/responders.svg)](http://badge.fury.io/rb/responders)
4
- [![Build Status](https://api.travis-ci.org/plataformatec/responders.svg?branch=master)](http://travis-ci.org/plataformatec/responders)
5
- [![Code Climate](https://codeclimate.com/github/plataformatec/responders.svg)](https://codeclimate.com/github/plataformatec/responders)
4
+ [![Build Status](https://api.travis-ci.org/plataformatec/responders.svg?branch=master)](http://travis-ci.org/heartcombo/responders)
5
+ [![Code Climate](https://codeclimate.com/github/plataformatec/responders.svg)](https://codeclimate.com/github/heartcombo/responders)
6
6
 
7
- A set of responders modules to dry up your Rails 4.2+ app.
7
+ A set of responders modules to dry up your Rails app.
8
8
 
9
9
  ## Installation
10
10
 
@@ -160,7 +160,7 @@ end
160
160
 
161
161
  ## Interpolation Options
162
162
 
163
- You can pass in extra interpolation options for the translation by adding an `interpolation_options` method to your controller:
163
+ You can pass in extra interpolation options for the translation by adding an `flash_interpolation_options` method to your controller:
164
164
 
165
165
  ```ruby
166
166
  class InvitationsController < ApplicationController
@@ -173,25 +173,27 @@ class InvitationsController < ApplicationController
173
173
 
174
174
  private
175
175
 
176
- def interpolation_options
176
+ def flash_interpolation_options
177
177
  { resource_name: @invitation.email }
178
178
  end
179
179
  end
180
180
  ```
181
181
 
182
- Now you would see the message "bob@bob.com was successfully created" instead of the default "Invitation was successfully created."
182
+ Now you would see the message `"name@example.com was successfully created"` instead of the default `"Invitation was successfully created."`
183
183
 
184
184
  ## Generator
185
185
 
186
186
  This gem also includes a responders controller generator, so your scaffold can be customized
187
187
  to use `respond_with` instead of default `respond_to` blocks. From 2.1, you need to explicitly opt-in to use this generator by adding the following to your `config/application.rb`:
188
188
 
189
- config.app_generators.scaffold_controller :responders_controller
189
+ ```ruby
190
+ config.app_generators.scaffold_controller :responders_controller
191
+ ```
190
192
 
191
193
  ## Failure handling
192
194
 
193
195
  Responders don't use `valid?` to check for errors in models to figure out if
194
- the request was successfull or not, and relies on your controllers to call
196
+ the request was successful or not, and relies on your controllers to call
195
197
  `save` or `create` to trigger the validations.
196
198
 
197
199
  ```ruby
@@ -219,16 +221,16 @@ end
219
221
  ## Verifying request formats
220
222
 
221
223
  `respond_with` will raise an `ActionController::UnknownFormat` if the request
222
- mime type was not configured through the class level `respond_to`, but the
224
+ MIME type was not configured through the class level `respond_to`, but the
223
225
  action will still be executed and any side effects (like creating a new record)
224
226
  will still occur. To raise the `UnknownFormat` exception before your action
225
- is invoked you can set the `verify_request_format!` method as a `before_action`
227
+ is invoked you can set the `verify_requested_format!` method as a `before_action`
226
228
  on your controller.
227
229
 
228
230
  ```ruby
229
231
  class WidgetsController < ApplicationController
230
232
  respond_to :json
231
- before_action :verify_request_format!
233
+ before_action :verify_requested_format!
232
234
 
233
235
  # POST /widgets.html won't reach the `create` action.
234
236
  def create
@@ -241,7 +243,7 @@ end
241
243
 
242
244
  ## Examples
243
245
 
244
- Want more examples ? Check out this blog posts:
246
+ Want more examples ? Check out these blog posts:
245
247
 
246
248
  * [Embracing REST with mind, body and soul](http://blog.plataformatec.com.br/2009/08/embracing-rest-with-mind-body-and-soul/)
247
249
  * [Three reasons to love ActionController::Responder](http://weblog.rubyonrails.org/2009/8/31/three-reasons-love-responder/)
@@ -251,6 +253,6 @@ Want more examples ? Check out this blog posts:
251
253
 
252
254
  If you discover any bugs or want to drop a line, feel free to create an issue on GitHub.
253
255
 
254
- http://github.com/plataformatec/responders/issues
256
+ http://github.com/heartcombo/responders/issues
255
257
 
256
- MIT License. Copyright 2009-2016 Plataformatec. http://plataformatec.com.br
258
+ MIT License. Copyright 2020 Rafael França, Carlos Antônio da Silva. Copyright 2009-2019 Plataformatec.
@@ -1,5 +1,7 @@
1
- require 'active_support/core_ext/array/extract_options'
2
- require 'action_controller/metal/mime_responds'
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/core_ext/array/extract_options"
4
+ require "action_controller/metal/mime_responds"
3
5
 
4
6
  module ActionController #:nodoc:
5
7
  module RespondWith
@@ -37,8 +39,8 @@ module ActionController #:nodoc:
37
39
  def respond_to(*mimes)
38
40
  options = mimes.extract_options!
39
41
 
40
- only_actions = Array(options.delete(:only)).map(&:to_s)
41
- except_actions = Array(options.delete(:except)).map(&:to_s)
42
+ only_actions = Array(options.delete(:only)).map(&:to_sym)
43
+ except_actions = Array(options.delete(:except)).map(&:to_sym)
42
44
 
43
45
  hash = mimes_for_respond_to.dup
44
46
  mimes.each do |mime|
@@ -182,11 +184,17 @@ module ActionController #:nodoc:
182
184
  # to save a resource, e.g. when automatically rendering <tt>:new</tt>
183
185
  # after a post request.
184
186
  #
185
- # Two additional options are relevant specifically to +respond_with+ -
187
+ # Three additional options are relevant specifically to +respond_with+ -
186
188
  # 1. <tt>:location</tt> - overwrites the default redirect location used after
187
189
  # a successful html +post+ request.
188
190
  # 2. <tt>:action</tt> - overwrites the default render action used after an
189
191
  # unsuccessful html +post+ request.
192
+ # 3. <tt>:render</tt> - allows to pass any options directly to the <tt>:render<tt/>
193
+ # call after unsuccessful html +post+ request. Useful if for example you
194
+ # need to render a template which is outside of controller's path or you
195
+ # want to override the default http <tt>:status</tt> code, e.g.
196
+ #
197
+ # respond_with(resource, render: { template: 'path/to/template', status: 422 })
190
198
  def respond_with(*resources, &block)
191
199
  if self.class.mimes_for_respond_to.empty?
192
200
  raise "In order to use respond_with, first you need to declare the " \
@@ -216,9 +224,9 @@ module ActionController #:nodoc:
216
224
  # class PeopleController < ApplicationController
217
225
  # respond_to :html, :xml, :json
218
226
  #
219
- # before_action :verify_request_format!
227
+ # before_action :verify_requested_format!
220
228
  # end
221
- def verify_request_format!
229
+ def verify_requested_format!
222
230
  mimes = collect_mimes_from_class_level
223
231
  collector = ActionController::MimeResponds::Collector.new(mimes, request.variant)
224
232
 
@@ -227,10 +235,12 @@ module ActionController #:nodoc:
227
235
  end
228
236
  end
229
237
 
238
+ alias :verify_request_format! :verify_requested_format!
239
+
230
240
  # Collect mimes declared in the class method respond_to valid for the
231
241
  # current action.
232
242
  def collect_mimes_from_class_level #:nodoc:
233
- action = action_name.to_s
243
+ action = action_name.to_sym
234
244
 
235
245
  self.class.mimes_for_respond_to.keys.select do |mime|
236
246
  config = self.class.mimes_for_respond_to[mime]
@@ -1,4 +1,6 @@
1
- require 'active_support/json'
1
+ # frozen_string_literal: true
2
+
3
+ require "active_support/json"
2
4
 
3
5
  module ActionController #:nodoc:
4
6
  # Responsible for exposing a resource to different mime requests,
@@ -121,12 +123,12 @@ module ActionController #:nodoc:
121
123
  attr_reader :controller, :request, :format, :resource, :resources, :options
122
124
 
123
125
  DEFAULT_ACTIONS_FOR_VERBS = {
124
- :post => :new,
125
- :patch => :edit,
126
- :put => :edit
126
+ post: :new,
127
+ patch: :edit,
128
+ put: :edit
127
129
  }
128
130
 
129
- def initialize(controller, resources, options={})
131
+ def initialize(controller, resources, options = {})
130
132
  @controller = controller
131
133
  @request = @controller.request
132
134
  @format = @controller.formats.first
@@ -142,8 +144,8 @@ module ActionController #:nodoc:
142
144
  end
143
145
  end
144
146
 
145
- delegate :head, :render, :redirect_to, :to => :controller
146
- delegate :get?, :post?, :patch?, :put?, :delete?, :to => :request
147
+ delegate :head, :render, :redirect_to, to: :controller
148
+ delegate :get?, :post?, :patch?, :put?, :delete?, to: :request
147
149
 
148
150
  # Undefine :to_json and :to_yaml since it's defined on Object
149
151
  undef_method(:to_json) if method_defined?(:to_json)
@@ -200,7 +202,7 @@ module ActionController #:nodoc:
200
202
  if get?
201
203
  raise error
202
204
  elsif has_errors? && default_action
203
- render :action => default_action
205
+ render rendering_options
204
206
  else
205
207
  redirect_to navigation_location
206
208
  end
@@ -213,7 +215,7 @@ module ActionController #:nodoc:
213
215
  if get?
214
216
  display resource
215
217
  elsif post?
216
- display resource, :status => :created, :location => api_location
218
+ display resource, status: :created, location: api_location
217
219
  else
218
220
  head :no_content
219
221
  end
@@ -256,7 +258,7 @@ module ActionController #:nodoc:
256
258
  #
257
259
  # render xml: @user, status: :created
258
260
  #
259
- def display(resource, given_options={})
261
+ def display(resource, given_options = {})
260
262
  controller.render given_options.merge!(options).merge!(format => resource)
261
263
  end
262
264
 
@@ -291,11 +293,19 @@ module ActionController #:nodoc:
291
293
  end
292
294
 
293
295
  def json_resource_errors
294
- {:errors => resource.errors}
296
+ { errors: resource.errors }
295
297
  end
296
298
 
297
299
  def response_overridden?
298
300
  @default_response.present?
299
301
  end
302
+
303
+ def rendering_options
304
+ if options[:render]
305
+ options[:render]
306
+ else
307
+ { action: default_action }
308
+ end
309
+ end
300
310
  end
301
311
  end
@@ -1,4 +1,6 @@
1
- require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators/rails/scaffold_controller/scaffold_controller_generator"
2
4
 
3
5
  module Rails
4
6
  module Generators
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Responders
2
4
  module Generators
3
5
  class InstallGenerator < Rails::Generators::Base
@@ -1,18 +1,20 @@
1
- require 'action_controller'
2
- require 'rails/railtie'
1
+ # frozen_string_literal: true
2
+
3
+ require "action_controller"
4
+ require "rails/railtie"
3
5
 
4
6
  module ActionController
5
- autoload :Responder, 'action_controller/responder'
6
- autoload :RespondWith, 'action_controller/respond_with'
7
+ autoload :Responder, "action_controller/responder"
8
+ autoload :RespondWith, "action_controller/respond_with"
7
9
  end
8
10
 
9
11
  module Responders
10
- autoload :FlashResponder, 'responders/flash_responder'
11
- autoload :HttpCacheResponder, 'responders/http_cache_responder'
12
- autoload :CollectionResponder, 'responders/collection_responder'
13
- autoload :LocationResponder, 'responders/location_responder'
12
+ autoload :FlashResponder, "responders/flash_responder"
13
+ autoload :HttpCacheResponder, "responders/http_cache_responder"
14
+ autoload :CollectionResponder, "responders/collection_responder"
15
+ autoload :LocationResponder, "responders/location_responder"
14
16
 
15
- require 'responders/controller_method'
17
+ require "responders/controller_method"
16
18
 
17
19
  class Railtie < ::Rails::Railtie
18
20
  config.responders = ActiveSupport::OrderedOptions.new
@@ -20,8 +22,8 @@ module Responders
20
22
  config.responders.namespace_lookup = false
21
23
 
22
24
  # Add load paths straight to I18n, so engines and application can overwrite it.
23
- require 'active_support/i18n'
24
- I18n.load_path << File.expand_path('../responders/locales/en.yml', __FILE__)
25
+ require "active_support/i18n"
26
+ I18n.load_path << File.expand_path("../responders/locales/en.yml", __FILE__)
25
27
 
26
28
  initializer "responders.flash_responder" do |app|
27
29
  Responders::FlashResponder.flash_keys = app.config.responders.flash_keys
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Responders
2
4
  # This responder modifies your current responder to redirect
3
5
  # to the collection page on POST/PUT/DELETE.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Responders
2
4
  module ControllerMethod
3
5
  # Adds the given responders to the current controller's responder, allowing you to cherry-pick
@@ -18,7 +20,8 @@ module Responders
18
20
  #
19
21
  def responders(*responders)
20
22
  self.responder = responders.inject(Class.new(responder)) do |klass, responder|
21
- responder = case responder
23
+ responder = \
24
+ case responder
22
25
  when Module
23
26
  responder
24
27
  when String, Symbol
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Responders
2
4
  # Responder to automatically set flash messages based on I18n API. It checks for
3
5
  # message based on the current action, but also allows defaults to be set, using
@@ -33,9 +35,9 @@ module Responders
33
35
  # notice: "Hooray! You just tuned your %{car_brand}!"
34
36
  #
35
37
  # Since :car_name is not available for interpolation by default, you have
36
- # to overwrite interpolation_options in your controller.
38
+ # to overwrite `flash_interpolation_options` in your controller.
37
39
  #
38
- # def interpolation_options
40
+ # def flash_interpolation_options
39
41
  # { :car_brand => @car.brand }
40
42
  # end
41
43
  #
@@ -94,7 +96,7 @@ module Responders
94
96
  ActionView::Helpers::TagHelper
95
97
  )
96
98
 
97
- def initialize(controller, resources, options={})
99
+ def initialize(controller, resources, options = {})
98
100
  super
99
101
  @flash = options.delete(:flash)
100
102
  @notice = options.delete(:notice)
@@ -126,7 +128,7 @@ module Responders
126
128
  return if controller.flash[status].present?
127
129
 
128
130
  options = mount_i18n_options(status)
129
- message = Responders::FlashResponder.helper.t options[:default].shift, options
131
+ message = Responders::FlashResponder.helper.t options[:default].shift, **options
130
132
  set_flash(status, message)
131
133
  end
132
134
 
@@ -147,34 +149,46 @@ module Responders
147
149
  end
148
150
 
149
151
  def mount_i18n_options(status) #:nodoc:
150
- resource_name = if resource.class.respond_to?(:model_name)
151
- resource.class.model_name.human
152
- else
153
- resource.class.name.underscore.humanize
154
- end
155
-
156
152
  options = {
157
- :default => flash_defaults_by_namespace(status),
158
- :resource_name => resource_name,
159
- :downcase_resource_name => resource_name.downcase
153
+ default: flash_defaults_by_namespace(status),
154
+ resource_name: resource_name,
155
+ downcase_resource_name: resource_name.downcase
160
156
  }
161
157
 
162
- if controller.respond_to?(:interpolation_options, true)
163
- options.merge!(controller.send(:interpolation_options))
158
+ controller_options = controller_interpolation_options
159
+ if controller_options
160
+ options.merge!(controller_options)
164
161
  end
165
162
 
166
163
  options
167
164
  end
168
165
 
166
+ def controller_interpolation_options
167
+ if controller.respond_to?(:flash_interpolation_options, true)
168
+ controller.send(:flash_interpolation_options)
169
+ elsif controller.respond_to?(:interpolation_options, true)
170
+ ActiveSupport::Deprecation.warn("[responders] `#{controller.class}#interpolation_options` is deprecated, please rename it to `flash_interpolation_options`.")
171
+ controller.send(:interpolation_options)
172
+ end
173
+ end
174
+
175
+ def resource_name
176
+ if resource.class.respond_to?(:model_name)
177
+ resource.class.model_name.human
178
+ else
179
+ resource.class.name.underscore.humanize
180
+ end
181
+ end
182
+
169
183
  def flash_defaults_by_namespace(status) #:nodoc:
170
184
  defaults = []
171
- slices = controller.controller_path.split('/')
185
+ slices = controller.controller_path.split("/")
172
186
  lookup = Responders::FlashResponder.namespace_lookup
173
187
 
174
188
  begin
175
- controller_scope = :"flash.#{slices.fill(controller.controller_name, -1).join('.')}.#{controller.action_name}.#{status}"
189
+ controller_scope = :"flash.#{slices.fill(controller.controller_name, -1).join(".")}.#{controller.action_name}.#{status}"
176
190
 
177
- actions_scope = lookup ? slices.fill('actions', -1).join('.') : :actions
191
+ actions_scope = lookup ? slices.fill("actions", -1).join(".") : :actions
178
192
  actions_scope = :"flash.#{actions_scope}.#{controller.action_name}.#{status}"
179
193
 
180
194
  defaults << :"#{controller_scope}_html"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Responders
2
4
  # Set HTTP Last-Modified headers based on the given resource. It's used only
3
5
  # on API behavior (to_format) and is useful for a client to check in the server
@@ -9,7 +11,7 @@ module Responders
9
11
  # the digest of the body.
10
12
  #
11
13
  module HttpCacheResponder
12
- def initialize(controller, resources, options={})
14
+ def initialize(controller, resources, options = {})
13
15
  super
14
16
  @http_cache = options.delete(:http_cache)
15
17
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Responders
2
4
  module LocationResponder
3
5
  def self.included(_base)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Responders
2
- VERSION = "2.2.0".freeze
4
+ VERSION = "3.0.1"
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: responders
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - José Valim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-29 00:00:00.000000000 Z
11
+ date: 2020-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -16,22 +16,30 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.0
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '5.1'
19
+ version: '5.0'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 4.2.0
30
- - - "<"
26
+ version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: actionpack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
31
39
  - !ruby/object:Gem::Version
32
- version: '5.1'
40
+ version: '5.0'
33
41
  description: A set of Rails responders to dry up your application
34
- email: contact@plataformatec.com.br
42
+ email: heartcombo@googlegroups.com
35
43
  executables: []
36
44
  extensions: []
37
45
  extra_rdoc_files: []
@@ -43,8 +51,8 @@ files:
43
51
  - lib/action_controller/responder.rb
44
52
  - lib/generators/rails/USAGE
45
53
  - lib/generators/rails/responders_controller_generator.rb
46
- - lib/generators/rails/templates/api_controller.rb
47
- - lib/generators/rails/templates/controller.rb
54
+ - lib/generators/rails/templates/api_controller.rb.tt
55
+ - lib/generators/rails/templates/controller.rb.tt
48
56
  - lib/generators/responders/install_generator.rb
49
57
  - lib/responders.rb
50
58
  - lib/responders/collection_responder.rb
@@ -54,7 +62,7 @@ files:
54
62
  - lib/responders/locales/en.yml
55
63
  - lib/responders/location_responder.rb
56
64
  - lib/responders/version.rb
57
- homepage: http://github.com/plataformatec/responders
65
+ homepage: https://github.com/heartcombo/responders
58
66
  licenses:
59
67
  - MIT
60
68
  metadata: {}
@@ -66,15 +74,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
66
74
  requirements:
67
75
  - - ">="
68
76
  - !ruby/object:Gem::Version
69
- version: '0'
77
+ version: 2.4.0
70
78
  required_rubygems_version: !ruby/object:Gem::Requirement
71
79
  requirements:
72
80
  - - ">="
73
81
  - !ruby/object:Gem::Version
74
82
  version: '0'
75
83
  requirements: []
76
- rubyforge_project: responders
77
- rubygems_version: 2.5.1
84
+ rubygems_version: 3.1.2
78
85
  signing_key:
79
86
  specification_version: 4
80
87
  summary: A set of Rails responders to dry up your application