newrelic-grape 2.0.0 → 2.1.0

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
2
  SHA1:
3
- metadata.gz: 560a366131820b64816fde8d7599814a57f516f6
4
- data.tar.gz: 9c31d2b9a3fdf7578f81a9bb9f113a5461f7d6d7
3
+ metadata.gz: 3d1c6a522ac658fdea25afcb6d90fdf1d7d9fb46
4
+ data.tar.gz: 31fc208d6c5433975b6c992ed14aeacefe4a6fdf
5
5
  SHA512:
6
- metadata.gz: e88df3b36b2395d8ffb1c3cbbab940fe02ba2d297ee0142d26677c84b5f6e352468861e654828ee4ca7d0df8a4f92fcc8d68dffd5c3e6f04ad8f00318f1eb3dc
7
- data.tar.gz: 53a411586c756abbada2ecafb03f39fd8d0f840d04d48d5f6ea510efb489865df6f3b0573fb1f7da19f9342aa7329c0d336eeedba13f3fdf6552802c239794fc
6
+ metadata.gz: b20c6e72cc34576c5cd6e24eb77f0e25f23ee1c53761abe11ef45f9d72f1de7268ddb172227565b7beb34881b4ea0e734717daeefdba621ebbd97aed943cea25
7
+ data.tar.gz: 985840a2d20dbb9250dfb191c24c367bd44151a6d3ee4b9df87050c5ad58d8bc3f9305c5ece54dc6d98b18516f89768a6ee2e9393bce877eca3230642b298ed5
@@ -0,0 +1,18 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.2
5
+ - 2.0
6
+ - rbx-2.5.8
7
+ - jruby-19mode
8
+
9
+ env:
10
+ - GRAPE_VERSION=0.8.0
11
+ - GRAPE_VERSION=0.9.0
12
+ - GRAPE_VERSION=0.10.0
13
+ - GRAPE_VERSION=0.10.1
14
+ - GRAPE_VERSION=0.11.0
15
+ - GRAPE_VERSION=0.12.0
16
+ - GRAPE_VERSION=0.13.0
17
+ - GRAPE_VERSION=0.14.0
18
+ - GRAPE_VERSION=HEAD
@@ -1,4 +1,6 @@
1
- # Next Release
1
+ # 2.1.0 (12/08/2014)
2
+
3
+ * Work with grape 0.14.0 [@dblock](https://github.com/dblock)
2
4
 
3
5
  ## 2.0.0 (10/20/2014)
4
6
 
@@ -6,8 +8,7 @@
6
8
 
7
9
  ## 1.4.1 (07/04/2014)
8
10
 
9
- * Fix "uninitialized constant NewRelic::MetricSpec (NameError)" with
10
- newrelic_rpm 3.8.1.221
11
+ * Fix "uninitialized constant NewRelic::MetricSpec (NameError)" with newrelic_rpm 3.8.1.221
11
12
  * Fix "uninitialized constant Grape"
12
13
 
13
14
  ## 1.4.0 (05/09/2014)
data/Gemfile CHANGED
@@ -3,9 +3,16 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in newrelic-grape.gemspec
4
4
  gemspec
5
5
 
6
+ case version = ENV['GRAPE_VERSION'] || '~> 0.14.0'
7
+ when 'HEAD'
8
+ gem 'grape', github: 'ruby-grape/grape'
9
+ else
10
+ gem 'grape', version
11
+ end
12
+
6
13
  group :development, :test do
7
- gem "rake", "~> 10.0"
8
- gem "bundler", "~> 1.0"
9
- gem "rspec", "~> 2.6"
10
- gem "rack-test", "~> 0.6.2"
14
+ gem 'rake', '~> 10.0'
15
+ gem 'bundler', '~> 1.0'
16
+ gem 'rspec', '~> 3.4.0'
17
+ gem 'rack-test', '~> 0.6.3'
11
18
  end
data/README.md CHANGED
@@ -1,10 +1,16 @@
1
1
  # NewRelic::Grape
2
2
 
3
+ ### NewRelic has already officially support grape, see more [here](https://docs.newrelic.com/docs/agents/ruby-agent/frameworks/grape-instrumentation)
4
+
5
+ [![Build Status](https://travis-ci.org/xinminlabs/newrelic-grape.svg)](https://travis-ci.org/xinminlabs/newrelic-grape)
6
+
3
7
  NewRelic instrumentation for the [Grape API DSL][0], inspired by [this blog post][1].
4
8
 
5
9
  If you use newrelic_rpm < 3.9.0, please use newrelic-grape 1.4.x
6
10
  If you use newrelic_rpm >= 3.9.0, please use newrelic-grape >= 2.0.0
7
11
 
12
+ **Please note**: newrelic_rpm 3.9.8 is [incompatible](https://discuss.newrelic.com/t/refusing-to-re-register-dependencydetection-block-with-name-grape/13734)! A fix was [included in 3.9.9](https://docs.newrelic.com/docs/release-notes/agent-release-notes/ruby-release-notes/ruby-agent-399275).
13
+
8
14
  ## Installation
9
15
 
10
16
  Add this line to your application's Gemfile:
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
2
 
3
3
  begin
4
4
  Bundler.setup(:default, :development)
5
5
  rescue Bundler::BundlerError => e
6
6
  $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
7
+ $stderr.puts 'Run `bundle install` to install missing gems'
8
8
  exit e.status_code
9
9
  end
10
10
 
@@ -17,4 +17,4 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
17
17
  spec.pattern = FileList['spec/**/*_spec.rb']
18
18
  end
19
19
 
20
- task :default => :spec
20
+ task default: :spec
@@ -2,10 +2,10 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'rack'
4
4
  gem 'grape'
5
- gem 'newrelic_rpm'
6
- gem 'newrelic-grape'
5
+ gem 'newrelic_rpm', '~> 3.9.0'
6
+ gem 'newrelic-grape', '~> 2.0.0'
7
7
 
8
8
  group :test do
9
- gem "rspec"
10
- gem "rack-test", require: "rack/test"
9
+ gem 'rspec'
10
+ gem 'rack-test', require: 'rack/test'
11
11
  end
@@ -1,7 +1,7 @@
1
1
  require File.expand_path('../config/environment', __FILE__)
2
2
 
3
3
  if ENV['RACK_ENV'] == 'development'
4
- puts "Loading NewRelic in developer mode ..."
4
+ puts 'Loading NewRelic in developer mode ...'
5
5
  require 'new_relic/rack/developer_mode'
6
6
  use NewRelic::Rack::DeveloperMode
7
7
  end
@@ -3,9 +3,9 @@ source 'http://rubygems.org'
3
3
  gem 'rack'
4
4
  gem 'grape'
5
5
  gem 'newrelic_rpm', '~> 3.8.0'
6
- gem 'newrelic-grape'
6
+ gem 'newrelic-grape', '~> 1.4.0'
7
7
 
8
8
  group :test do
9
- gem "rspec"
10
- gem "rack-test", require: "rack/test"
9
+ gem 'rspec'
10
+ gem 'rack-test', require: 'rack/test'
11
11
  end
@@ -1,7 +1,7 @@
1
1
  require File.expand_path('../config/environment', __FILE__)
2
2
 
3
3
  if ENV['RACK_ENV'] == 'development'
4
- puts "Loading NewRelic in developer mode ..."
4
+ puts 'Loading NewRelic in developer mode ...'
5
5
  require 'new_relic/rack/developer_mode'
6
6
  use NewRelic::Rack::DeveloperMode
7
7
  end
@@ -1,2 +1,2 @@
1
- require "newrelic-grape/version"
2
- require "newrelic-grape/instrument"
1
+ require 'newrelic-grape/version'
2
+ require 'newrelic-grape/instrument'
@@ -1,5 +1,5 @@
1
1
  require 'new_relic/agent/instrumentation'
2
- require 'new_relic/agent/instrumentation/controller_instrumentation'
2
+ require 'new_relic/agent/instrumentation/middleware_proxy'
3
3
  require 'grape'
4
4
 
5
5
  module NewRelic
@@ -12,10 +12,10 @@ module NewRelic
12
12
  @env = env
13
13
  @newrelic_request = ::Rack::Request.new(env)
14
14
  trace_options = {
15
- :category => :rack,
16
- :path => "#{request_method} #{request_path}",
17
- :request => @newrelic_request,
18
- :params => @newrelic_request.params
15
+ category: :rack,
16
+ path: "#{request_method} #{request_path}",
17
+ request: @newrelic_request,
18
+ params: @newrelic_request.params
19
19
  }
20
20
  perform_action_with_newrelic_trace(trace_options) do
21
21
  @app_response = @app.call(@env)
@@ -27,7 +27,7 @@ module NewRelic
27
27
  end
28
28
 
29
29
  def request_path
30
- path = route.route_path[1..-1].gsub('/', '-')
30
+ path = route.route_path[1..-1].tr('/', '-')
31
31
  path.sub!(/\(\.:format\)\z/, '')
32
32
  route.route_version && path.sub!(':version', route.route_version)
33
33
 
@@ -46,32 +46,48 @@ DependencyDetection.defer do
46
46
  @name = :grape
47
47
 
48
48
  depends_on do
49
- defined?(::Grape) && ! ::NewRelic::Control.instance['disable_grape'] && ! ENV['DISABLE_NEW_RELIC_GRAPE']
49
+ defined?(::Grape) && ! ::NewRelic::Control.instance['disable_grape'] && !ENV['DISABLE_NEW_RELIC_GRAPE']
50
50
  end
51
51
 
52
52
  executes do
53
- NewRelic::Agent.logger.debug 'Installing Grape instrumentation'
53
+ NewRelic::Agent.logger.info 'Installing Grape instrumentation'
54
54
  end
55
55
 
56
56
  executes do
57
- NewRelic::Agent::Instrumentation::MiddlewareProxy.class_eval do
58
- def self.needs_wrapping?(target)
59
- (
60
- !target.respond_to?(:_nr_has_middleware_tracing) &&
61
- !is_sinatra_app?(target) &&
62
- !target.is_a?(Proc)
63
- )
57
+ begin
58
+ NewRelic::Agent::Instrumentation::MiddlewareProxy.class_eval do
59
+ def self.needs_wrapping?(target)
60
+ (
61
+ !target.respond_to?(:_nr_has_middleware_tracing) &&
62
+ !is_sinatra_app?(target) &&
63
+ !target.is_a?(Proc)
64
+ )
65
+ end
64
66
  end
65
- end
66
67
 
67
- ::Grape::Endpoint.class_eval do
68
- alias_method :origin_build_middleware, :build_middleware
68
+ ::Grape::Endpoint.class_eval do
69
+ if method_defined?(:build_middleware)
70
+ alias_method :_build_middleware, :build_middleware
71
+
72
+ def build_middleware
73
+ b = _build_middleware
74
+ b.use ::NewRelic::Agent::Instrumentation::Grape
75
+ b
76
+ end
77
+ elsif private_method_defined?(:build_stack)
78
+ include Grape::DSL::Middleware::ClassMethods
69
79
 
70
- def build_middleware
71
- b = origin_build_middleware
72
- b.use ::NewRelic::Agent::Instrumentation::Grape
73
- b
80
+ alias_method :_build_stack, :build_stack
81
+
82
+ def build_stack
83
+ use ::NewRelic::Agent::Instrumentation::Grape
84
+ _build_stack
85
+ end
86
+ end
74
87
  end
88
+ rescue Exception => e
89
+ STDERR.puts e
90
+ raise e
75
91
  end
76
92
  end
77
93
  end
@@ -1,5 +1,5 @@
1
1
  module NewRelic
2
2
  module Grape
3
- VERSION = "2.0.0"
3
+ VERSION = '2.1.0'
4
4
  end
5
5
  end
@@ -4,19 +4,19 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'newrelic-grape/version'
5
5
 
6
6
  Gem::Specification.new do |gem|
7
- gem.name = "newrelic-grape"
7
+ gem.name = 'newrelic-grape'
8
8
  gem.version = NewRelic::Grape::VERSION
9
- gem.authors = ["Richard Huang"]
10
- gem.email = ["flyerhzm@gmail.com"]
11
- gem.description = %q{newrelic instrument for grape}
12
- gem.summary = %q{newrelic instrument for grape}
13
- gem.homepage = "https://github.com/flyerhzm/newrelic-grape"
9
+ gem.authors = ['Richard Huang']
10
+ gem.email = ['flyerhzm@gmail.com']
11
+ gem.description = 'newrelic instrument for grape'
12
+ gem.summary = 'newrelic instrument for grape'
13
+ gem.homepage = 'https://github.com/flyerhzm/newrelic-grape'
14
14
 
15
- gem.files = `git ls-files`.split($/)
16
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
+ gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib"]
18
+ gem.require_paths = ['lib']
19
19
 
20
- gem.add_runtime_dependency(%q<grape>)
21
- gem.add_runtime_dependency(%q<newrelic_rpm>)
20
+ gem.add_runtime_dependency('grape')
21
+ gem.add_runtime_dependency('newrelic_rpm')
22
22
  end
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe NewRelic::Agent::Instrumentation::Grape do
4
-
5
4
  subject { Class.new(Grape::API) }
6
5
 
7
6
  def app
@@ -16,8 +15,8 @@ describe NewRelic::Agent::Instrumentation::Grape do
16
15
  end
17
16
 
18
17
  it 'perform_action_with_newrelic_trace' do
19
- NewRelic::Agent::Instrumentation::Grape.any_instance
20
- .should_receive(:perform_action_with_newrelic_trace)
18
+ expect_any_instance_of(NewRelic::Agent::Instrumentation::Grape)
19
+ .to receive(:perform_action_with_newrelic_trace)
21
20
  .with(hash_including(path: 'GET hello'))
22
21
  .and_yield
23
22
 
@@ -38,8 +37,8 @@ describe NewRelic::Agent::Instrumentation::Grape do
38
37
  end
39
38
 
40
39
  it 'perform_action_with_newrelic_trace' do
41
- NewRelic::Agent::Instrumentation::Grape.any_instance
42
- .should_receive(:perform_action_with_newrelic_trace)
40
+ expect_any_instance_of(NewRelic::Agent::Instrumentation::Grape)
41
+ .to receive(:perform_action_with_newrelic_trace)
43
42
  .with(hash_including(path: 'GET v1-hello'))
44
43
  .and_yield
45
44
 
@@ -50,5 +49,4 @@ describe NewRelic::Agent::Instrumentation::Grape do
50
49
  end
51
50
  end
52
51
  end
53
-
54
52
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe NewRelic::Grape do
4
- it "has a version" do
5
- NewRelic::Grape::VERSION.should_not be_nil
4
+ it 'has a version' do
5
+ expect(NewRelic::Grape::VERSION).not_to be_nil
6
6
  end
7
7
  end
@@ -4,6 +4,7 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
4
  require 'rack/test'
5
5
 
6
6
  RSpec.configure do |config|
7
+ config.raise_errors_for_deprecations!
7
8
  config.include Rack::Test::Methods
8
9
  config.before do
9
10
  DependencyDetection.detect!
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: newrelic-grape
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-20 00:00:00.000000000 Z
11
+ date: 2015-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: grape
@@ -47,6 +47,7 @@ extra_rdoc_files: []
47
47
  files:
48
48
  - ".gitignore"
49
49
  - ".rspec"
50
+ - ".travis.yml"
50
51
  - CHANGELOG.md
51
52
  - Gemfile
52
53
  - LICENSE.txt
@@ -101,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
102
  version: '0'
102
103
  requirements: []
103
104
  rubyforge_project:
104
- rubygems_version: 2.2.2
105
+ rubygems_version: 2.4.5.1
105
106
  signing_key:
106
107
  specification_version: 4
107
108
  summary: newrelic instrument for grape