rocket_pants 1.7.0 → 1.8.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: de15f5de1d210d1116562936ec33d58eecb654ee
4
- data.tar.gz: c831b9d27e6eda1965ef891d196e3d706571641e
3
+ metadata.gz: faa4d8c1b00d94400456cf629e82be17e220d9b0
4
+ data.tar.gz: 1483ff1f8246de1ff36d5eb9166e0bf7f9e3829f
5
5
  SHA512:
6
- metadata.gz: b975d08571bec5f214c8263c19809c3d83ff1f270114a98f5a3429f8f2159fa59fcf4941d29cf1860dbbc3c0d92a130a7d5fb64f4cd737ebf6660375d55e9bc3
7
- data.tar.gz: de7bd82ed3aca6bbbf5f469acd5ef93eeb08988f0abc92c66424093a5102bb8f3bd03533d53de4a29166ca5ec5ec77dbbd0aa98b55606c29ea440db2bcc38a0d
6
+ metadata.gz: e13d4dc41f47653b6fe95b5f6d79d194ea89c11776752e52ac70062f27cba8ad792576347361abdfb62b672f9740dcd46ac293ee7d7bface7c4b6ed65e3ff79d
7
+ data.tar.gz: bb9dd86ae4a6dae9baad05fcfa195a851832197f5628c34260e4c23ef48d3115146ec38cad233682a7ea475cd0091a4856281b7ff5527d0b73fe22f85d32a9a1
@@ -21,14 +21,15 @@ module RocketPants
21
21
  HeaderMetadata,
22
22
  Linking,
23
23
  Versioning,
24
- Instrumentation,
25
24
  Caching,
26
25
  # Include earliest as possible in the request.
27
26
  AbstractController::Callbacks,
28
27
  ActionController::Rescue,
29
28
  ErrorHandling,
30
29
  Rescuable,
31
- JSONP
30
+ JSONP,
31
+ StrongParameters,
32
+ Instrumentation
32
33
  # FormatVerification # TODO: Implement Format Verification
33
34
  ].compact
34
35
 
@@ -40,6 +41,15 @@ module RocketPants
40
41
  rescue LoadError => e
41
42
  end
42
43
 
44
+ # If possible, include Honeybadger methods in the Rails controller
45
+ begin
46
+ require 'honeybadger'
47
+ require 'honeybadger/rails/controller_methods'
48
+ MODULES << Honeybadger::Rails::ControllerMethods
49
+ rescue LoadError => e
50
+ end
51
+
52
+
43
53
  MODULES.each do |mixin|
44
54
  include mixin
45
55
  end
@@ -56,4 +66,4 @@ module RocketPants
56
66
  def self.helper_method(*); end
57
67
 
58
68
  end
59
- end
69
+ end
@@ -21,10 +21,17 @@ module RocketPants
21
21
  ActiveSupport::Notifications.instrument("process_action.rocket_pants", raw_payload) do |payload|
22
22
  result = super
23
23
  payload[:status] = response.status
24
+ append_info_to_payload payload
24
25
  result
25
26
  end
26
27
  end
27
28
 
29
+ private
30
+
31
+ def append_info_to_payload(payload) #:nodoc:
32
+ # Append any custom information here.
33
+ end
34
+
28
35
  end
29
36
  ActionController::LogSubscriber.attach_to :rocket_pants
30
37
  end
@@ -16,6 +16,11 @@ module RocketPants
16
16
  unless c.send(:airbrake_local_request?)
17
17
  c.error_identifier = Airbrake.notify(e, c.send(:airbrake_request_data))
18
18
  end
19
+ },
20
+ :honeybadger => lambda { |controller, exception, request|
21
+ if controller.respond_to?(:notify_honeybadger, true)
22
+ controller.send(:notify_honeybadger, exception)
23
+ end
19
24
  }
20
25
  }
21
26
 
@@ -64,4 +69,4 @@ module RocketPants
64
69
  end
65
70
 
66
71
  end
67
- end
72
+ end
@@ -0,0 +1,13 @@
1
+ module RocketPants
2
+ module StrongParameters
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ if defined? ActionController::StrongParameters
7
+ include ActionController::StrongParameters
8
+ map_error! ActionController::ParameterMissing, RocketPants::BadRequest
9
+ map_error! ActionController::UnpermittedParameters, RocketPants::BadRequest
10
+ end
11
+ end
12
+ end
13
+ end
@@ -5,6 +5,8 @@ module RocketPants
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  included do
8
+ require 'action_controller/test_case'
9
+
8
10
  # Extend the response on first include.
9
11
  class_attribute :_default_version
10
12
  unless ActionController::TestResponse < ResponseHelper
@@ -13,7 +15,7 @@ module RocketPants
13
15
  end
14
16
 
15
17
  module ResponseHelper
16
-
18
+
17
19
  def recycle_cached_body!
18
20
  @_parsed_body = @_decoded_body = nil
19
21
  end
@@ -73,13 +75,21 @@ module RocketPants
73
75
  protected
74
76
 
75
77
  # Like process, but automatically adds the api version.
76
- def process(action, parameters = nil, session = nil, flash = nil, http_method = 'GET')
78
+ def process(action, http_method = 'GET', *args)
79
+ # Rails 4 changes the method signature. In rails 3, http_method is actually
80
+ # the parameters.
81
+ if http_method.kind_of?(String)
82
+ parameters = args.shift
83
+ else
84
+ parameters = http_method
85
+ end
86
+
77
87
  response.recycle_cached_body!
78
88
  parameters ||= {}
79
89
  if _default_version.present? && parameters[:version].blank? && parameters['version'].blank?
80
90
  parameters[:version] = _default_version
81
91
  end
82
- super
92
+ super action, parameters, *args
83
93
  end
84
94
 
85
95
  def normalise_value(value)
data/lib/rocket_pants.rb CHANGED
@@ -37,6 +37,7 @@ module RocketPants
37
37
  autoload :Versioning, 'rocket_pants/controller/versioning'
38
38
  autoload :FormatVerification, 'rocket_pants/controller/format_verification'
39
39
  autoload :UrlFor, 'rocket_pants/controller/url_for'
40
+ autoload :StrongParameters, 'rocket_pants/controller/strong_parameters'
40
41
 
41
42
  mattr_accessor :caching_enabled, :header_metadata, :serializers_enabled
42
43
 
@@ -111,4 +112,4 @@ module RocketPants
111
112
 
112
113
  end
113
114
 
114
- end
115
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocket_pants
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darcy Laycock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-02-26 00:00:00.000000000 Z
11
+ date: 2013-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -246,6 +246,7 @@ files:
246
246
  - lib/rocket_pants/controller/linking.rb
247
247
  - lib/rocket_pants/controller/rescuable.rb
248
248
  - lib/rocket_pants/controller/respondable.rb
249
+ - lib/rocket_pants/controller/strong_parameters.rb
249
250
  - lib/rocket_pants/controller/url_for.rb
250
251
  - lib/rocket_pants/controller/versioning.rb
251
252
  - lib/rocket_pants/error.rb
@@ -276,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
276
277
  version: 1.3.6
277
278
  requirements: []
278
279
  rubyforge_project:
279
- rubygems_version: 2.0.0
280
+ rubygems_version: 2.0.2
280
281
  signing_key:
281
282
  specification_version: 4
282
283
  summary: JSON API love for Rails and ActionController